Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,13 @@ medir algo nuevo no obliga a migrar el esquema a las tres de la mañana.
Vistas: `v_run_summary`, `v_episode_summary`, `v_failure_breakdown`. Realtime está
publicado en `events`, `pallet_states` y `episodes`; Live se alimenta de ahí.

`task` es un campo (`induction` | `palletizing`), no una rama del código: así la línea
base de inducción sigue siendo comparable cuando entre el paletizado, y el jurado ve
evolución en vez de borrón y cuenta nueva.
`task` es un campo, no una rama del código: así la línea base sigue siendo comparable
cuando entra una tarea nueva, y el jurado ve evolución en vez de borrón y cuenta nueva.
En el paletizado real la tarea es **de dónde se coge** el paquete —`table` | `conveyor`
| `truck`, el mismo identificador que `runs.config.source`—, que es lo que permite
comparar mesa, cinta y camión entre sí. `induction`, `palletizing` y
`paletizado-guionizado` se quedan en el CHECK como histórico: dice qué se puede
ALMACENAR, no qué se produce hoy.

---

Expand Down
6 changes: 5 additions & 1 deletion backend/sql/001_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,11 @@ begin
loop
execute format('alter table %I drop constraint if exists %I', t, t || '_task_check');
execute format(
'alter table %I add constraint %I check (task in (''induction'', ''palletizing'', ''paletizado-guionizado''))',
'alter table %I add constraint %I check (task in ('
-- Vigentes: la fuente de la que se coge el paquete, igual que config.source.
'''table'', ''conveyor'', ''truck'', '
-- Histórico: lo que ya está subido. Este CHECK dice qué se puede ALMACENAR.
'''induction'', ''palletizing'', ''paletizado-guionizado''))',
t, t || '_task_check');
end loop;
end $$;
Expand Down
10 changes: 9 additions & 1 deletion backend/theker_telemetry/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,15 @@

# Tareas que el repo sabe medir. La tarea es un campo, no una rama del código: así la
# línea base de inducción sigue siendo comparable cuando entre el paletizado.
TASKS = frozenset({"induction", "palletizing", "paletizado-guionizado"})
#
# En el paletizado real la tarea es DE DÓNDE SE COGE el paquete —mesa, cinta o camión,
# con el mismo identificador que `runs.config.source`—, y no una etiqueta única para los
# nueve niveles: son tres tareas distintas y compararlas entre sí es justo lo que se le
# pide a la plataforma. Los otros tres son histórico y siguen siendo almacenables.
TASKS = frozenset({
"table", "conveyor", "truck",
"induction", "palletizing", "paletizado-guionizado",
})


@dataclass
Expand Down
6 changes: 6 additions & 0 deletions frontend/lib/ui.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,13 @@ export function clockTime(iso: string | null | undefined): string {
});
}

/* La tarea es de dónde se coge el paquete. El identificador viaja en inglés —el mismo
* que `runs.config.source`— y se traduce aquí: la pantalla no lo enseña crudo. */
export const TASK_TEXT: Record<string, string> = {
table: "mesa",
conveyor: "cinta",
truck: "camión",
// Histórico, de antes de separar la tarea por fuente.
induction: "inducción",
palletizing: "paletizado",
"paletizado-guionizado": "paletizado guionizado",
Expand Down
Loading