panels-origin/docs/padron-v2.md
2026-08-21 16:55:01 -05:00

50 lines
2.4 KiB
Markdown

# Padrón v2
## Alcance
Padrón conserva el modelo actual: la persona es el registro maestro, los proyectos son asignaciones y el estado de expediente/gafete se deriva de documentos, impresiones y asignaciones. Esta fase no cambia la nómina ni el generador fijo de gafetes.
## Arquitectura
- `web-panel/pages/padron/index.vue`: orquesta carga, selección, árbol y comandos de cinta.
- `web-panel/components/padron/PadronTable.vue`: tabla, filtros y acciones por persona.
- `web-panel/components/padron/WorkerFormDialog.vue`: alta y edición de datos maestros.
- `web-panel/components/padron/WorkerImportDialog.vue`: importación de Excel y reporte.
- `web-panel/components/WorkerFicha.vue`: ficha lateral y navegación por secciones.
- `web-panel/components/padron/WorkerDocuments.vue`: expediente obligatorio/opcional.
- `web-panel/components/padron/WorkerAssignments.vue`: altas, reactivaciones y bajas de asignación.
- `web-panel/types/padron.ts`: contratos del frontend para persona, proyecto, riesgo e importación.
- `api/main.ts`: reglas HTTP; `api/db.ts` conserva el cálculo de pipeline.
## Invariantes
1. Una persona no se elimina: `status=baja` conserva su historial.
2. Solo se asigna o importa personal a proyectos activos.
3. Una asignación repetida se reactiva; al finalizarla se conserva su fecha de fin.
4. `pipeline_status` no es un dato editable. Solo la baja es manual; el resto se recalcula.
5. CURP, RFC y NSS son únicos.
6. Foto, INE, CURP, NSS/IMSS y RFC forman el expediente obligatorio.
7. El código exacto de riesgo se conserva porque define el color del gafete; Alto/Medio/Bajo es una lectura semántica para la interfaz.
## Contratos usados por Padrón
- `GET /v1/workers`: lista maestra con proyectos activos agregados, faltantes y saldo.
- `GET /v1/workers/:id`: persona, documentos, checklist, asignaciones y préstamos.
- `POST /v1/workers/validate`: validación de formato y unicidad.
- `POST /v1/workers` / `PATCH /v1/workers/:id`: alta y edición.
- `POST /v1/workers/:id/assign`: asignar, reactivar o finalizar.
- `POST /v1/workers/:id/documents`: guardar una nueva versión cifrada.
- `PATCH /v1/workers/:id/pipeline`: baja manual o recálculo/reactivación.
## Verificación
```bash
cd api
deno task check
deno task test
cd ../web-panel
npm run build
```
La siguiente fase puede reutilizar estos contratos para el editor de plantillas; no debe acoplar el layout del gafete a la ficha de Padrón.