Configuración de tiempo estimado (ETA) de preparación y entrega para los productos de un
BranchGroup (o de una Branch concreta). Se asigna a los Good y calcula,
con calculateEta(), cuánto tardará un pedido teniendo en cuenta la carga de trabajo actual
de la sucursal.
manufacturing_delay (preparación de un ítem), manufacturing_count (ítems que se preparan en
paralelo antes de encolar), manufacturing_cooldown (intervalo entre tandas), delivery_delay
(tiempo adicional de entrega).
mode)delay (retraso dinámico; por defecto), fixed (días fijos de la semana), time_range
(franja horaria + días), time_available (disponible solo en cierta franja). Puede llevar
parámetros tras : (p. ej. fixed:1,3,5). fixed_label es la etiqueta a mostrar en modo
fijo.
checkValid() exige delivery_delay >= manufacturing_delay y
manufacturing_cooldown <= manufacturing_delay.eta_config_id = null).| Atributo | Tipo | Descripción |
|---|---|---|
id |
int |
|
branch_group_id |
int |
{@link BranchGroup} al que pertenece la configuración |
branch_id |
int\|null |
{@link Branch} concreta a la que aplica (opcional) |
name |
string |
Nombre de la configuración |
manufacturing_delay |
int |
Tiempo de preparación de un ítem, en minutos |
manufacturing_count |
int |
Ítems que se preparan en paralelo antes de encolar |
manufacturing_cooldown |
int |
Intervalo entre tandas de preparación, en minutos |
delivery_delay |
int |
Tiempo adicional de entrega, en minutos |
created_at |
datetime\|null |
|
updated_at |
datetime\|null |
|
mode |
string |
Modo de cálculo del ETA (delay, fixed, time_range, time_available) |
fixed_label |
string\|null |
Etiqueta a mostrar en modo fijo |
allLogs |
ApiLog> |
|
branch |
Branch\|null |
{@link Branch} a la que aplica |
branchGoods |
BranchGood> |
Productos de sucursal que usan esta configuración |
branchGroup |
BranchGroup |
{@link BranchGroup} al que pertenece |
goods |
Good> |
Productos que usan esta configuración |
logs |
ApiLog> |
|
orderedGoods |
OrderedGood> |
Ítems de orden asociados |
{
"id": 3,
"branch_group_id": 26,
"branch_id": null,
"name": "Lun a Vie de 8pm a 11pm",
"manufacturing_delay": 0,
"manufacturing_count": 0,
"manufacturing_cooldown": 0,
"delivery_delay": 0,
"created_at": "2022-03-17 17:58:41",
"updated_at": "2022-03-18 20:54:11",
"mode": "time_available:12:00-13:00",
"fixed_label": "Cena Laboral"
}
Crear configuración de ETA
Crea una EtaConfig para el BranchGroup (tiempos de preparación y entrega,
mode). Los tiempos no enviados se inicializan en 0 y el modo por defecto es delay.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/branch-groups/{branchGroupId}/eta-configs |
Authorization |
{
"name": "required|string|max:255",
"manufacturing_delay": "nullable|integer|min:0",
"manufacturing_count": "nullable|integer|min:0",
"manufacturing_cooldown": "nullable|integer|min:0",
"delivery_delay": "nullable|integer|min:0",
"fixed_label": "nullable|string|max:32",
"mode": {
"required": true,
"string": true,
"max": "64",
"regex": "/^(delay)|(fixed:[0-6](,[0-6])*)|(time_range:(([0-1][0-9])|(2[0-3])):[03]0-(([0-1][0-9])|(2[0-3])):[03]0(;[0-6](,[0-6])*)?)|(time_available:(([0-1][0-9])|(2[0-3])):[03]0-(([0-1][0-9])|(2[0-3])):[03]0(;[0-6](,[0-6])*)?)$/"
}
}
{info} Soporta: Paginación Filters Carga dinámica
Listar configuraciones de ETA
Devuelve las EtaConfig del BranchGroup indicado.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/branch-groups/{branchGroupId}/eta-configs |
Authorization |
{info} Soporta: Carga dinámica
Mostrar configuración de ETA
Devuelve la EtaConfig por su id.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/eta-configs/{etaConfigId} |
Authorization |
Actualizar configuración de ETA
Modifica los tiempos, el mode y el fixed_label de la EtaConfig.
| Método | URI | Cabeceras |
|---|---|---|
| PATCH | /companies/{companyId}/eta-configs/{etaConfigId} |
Authorization |
{
"name": "nullable|string|max:255",
"manufacturing_delay": "nullable|integer|min:0",
"manufacturing_count": "nullable|integer|min:0",
"manufacturing_cooldown": "nullable|integer|min:0",
"delivery_delay": "nullable|integer|min:0",
"fixed_label": "nullable|string|max:32",
"mode": {
"nullable": true,
"string": true,
"max": "64",
"regex": "/^(delay)|(fixed:[0-6](,[0-6])*)|(time_range:(([0-1][0-9])|(2[0-3])):[03]0-(([0-1][0-9])|(2[0-3])):[03]0(;[0-6](,[0-6])*)?)|(time_available:(([0-1][0-9])|(2[0-3])):[03]0-(([0-1][0-9])|(2[0-3])):[03]0(;[0-6](,[0-6])*)?)$/"
}
}
Eliminar configuración de ETA
Borra la EtaConfig. Los Good que la usaban quedan sin ETA
(eta_config_id = null).
| Método | URI | Cabeceras |
|---|---|---|
| DELETE | /companies/{companyId}/eta-configs/{etaConfigId} |
Authorization |
allLogs HasMany ApiLogbranch BelongsTo BranchbranchGoods HasMany BranchGoodbranchGroup BelongsTo BranchGroupgoods HasMany Goodlogs HasMany ApiLogorderedGoods HasMany OrderedGood