Files
dtic-DIIAA/docs/ambito/dtic-BITACORAs/P2603.04_Herencia-Modo-Jornada.md
T

3.9 KiB

P2603.04 - Plan: Herencia Automática de Modo de Jornada

Objetivo

Eliminar la fricción de especificar manualmente el modo ([P], [R], [S]) en cada evento. El modo se define una sola vez al iniciar la jornada y se hereda automáticamente.

Problema Identificado

  • Fricción actual: Registrar modo en cada evento es repetitivo y propenso a errores
  • 4 eventos corregidos hoy (1186, 1210, 1211, 1213) por modo incorrecto
  • El modo debería ser contexto de jornada, no dato por evento

Diseño Propuesto

Concepto: Jornada Define el Modo

┌─────────────────────────────────────────────────────────────┐
│ JORNADA PRESENCIAL (8:00-13:00)                            │
│ ├── Evento 1: 08:00-09:00 → [P] automático                 │
│ ├── Evento 2: 09:00-10:00 → [P] automático                 │
│ ├── Evento 3: 11:00-12:00 → [R] override manual           │
│ └── Evento 4: 13:00-18:00 → [R] automático (fuera horario) │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│ JORNADA REMOTA                                             │
│ └── Todos los eventos → [R] automático                      │
└─────────────────────────────────────────────────────────────┘

Reglas de Herencia

  1. Modo de jornada: Definido al iniciar (jornada --iniciar --modo presencial)
  2. Heredar por defecto: Todo evento nuevo usa el modo de la jornada
  3. Override manual: Si se especifica --modo explícitamente, se usa ese
  4. Horario presencial: Eventos fuera de 8:00-13:00 → [R] automático

Implementación

Fase 1: Modelo de Datos

  • Agregar campo modo a tabla bitacoras
  • Actualizar create_bitacora para registrar modo de jornada

Fase 2: Lógica de Herencia

  • En BitacoraDB#create_entrada: leer modo de bitácora activa
  • Implementar override: si params[:modo] existe, usar ese
  • Regla horario: si modo=presencial y hora > 13:00 → forzar [R]

Fase 3: CLI

  • bitacora:crear --modo P|R → especificar modo
  • bitacora:listar → muestra columna Modo
  • evento:crear --modo R → override manual (para excepciones)

Fase 4: Consistencia Retroactiva

  • Corregir 206 eventos existentes según modo de jornada (bitácora)
  • Regla aplicada: modo bitácora → heredar, con override P+hora>=13 → R

Progreso

Fase 1:  ██████████ 100%  Modelo de Datos
Fase 2:  ██████████ 100%  Lógica de Herencia
Fase 3:  ██████████ 100%  CLI
Fase 4:  ██████████ 100%  Consistencia Retroactiva

Registro de Implementación (19/03 - 20:35)

  • Columna modo agregada a tabla bitacoras.bitacoras
  • create_bitacora acepta parámetro --modo
  • list_bitacoras muestra columna Modo
  • create_entrada hereda modo desde bitácora
  • Regla implementada: jornada presencial + hora > 13:00 → [R] automático
  • CLI actualizado: --modo en bitacora:crear
  • Test 1: Herencia automática (1218)
  • Test 2: Herencia automática (1219)
  • Implementada herencia automática (1220)
  • Consistencia retroactiva: 206 entradas corregidas según modo de bitácora (1221)

Beneficios Esperados

  • Menos fricción: 0 errores de modo por descuido
  • Trazabilidad: Un lugar donde se define el contexto de trabajo
  • Menos es más: Elimina dato redundante de cada evento