# 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 - [x] Agregar campo `modo` a tabla `bitacoras` - [x] Actualizar `create_bitacora` para registrar modo de jornada ### Fase 2: Lógica de Herencia - [x] En `BitacoraDB#create_entrada`: leer modo de bitácora activa - [x] Implementar override: si `params[:modo]` existe, usar ese - [x] Regla horario: si modo=presencial y hora > 13:00 → forzar `[R]` ### Fase 3: CLI - [x] `bitacora:crear --modo P|R` → especificar modo - [x] `bitacora:listar` → muestra columna Modo - [x] `evento:crear --modo R` → override manual (para excepciones) ### Fase 4: Consistencia Retroactiva - [x] Corregir 206 eventos existentes según modo de jornada (bitácora) - [x] Regla aplicada: modo bitácora → heredar, con override P+hora>=13 → R ## Progreso ```text 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) - [x] Columna `modo` agregada a tabla `bitacoras.bitacoras` - [x] `create_bitacora` acepta parámetro `--modo` - [x] `list_bitacoras` muestra columna Modo - [x] `create_entrada` hereda modo desde bitácora - [x] Regla implementada: jornada presencial + hora > 13:00 → [R] automático - [x] CLI actualizado: `--modo` en `bitacora:crear` - [x] Test 1: Herencia automática (1218) - [x] Test 2: Herencia automática (1219) - [x] Implementada herencia automática (1220) - [x] 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