mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 14:33:17 +00:00
50 lines
2.4 KiB
Markdown
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.
|