MLAPP — Integración de Empleados en Entidades (Go + React)
Estado: Contrato orientativo de integración. No define ni implementa rutas de Go.
Dependencia backend: Consulta de empleados por organización
Objetivo del primer circuito
En el detalle de una entidad/organización, mostrar su pestaña Empleados, permitiendo consultar empleados vinculados y preparar las acciones de vinculación y edición. La entidad de base de datos es organizaciones_personas; el registro maestro de la persona permanece en personas.
Distribución de responsabilidades
- PHP: persistencia, verificaciones de tenant, consulta DBAL y operaciones sobre la relación.
- Go: endpoints públicos explícitos, autorización por rol/contexto, validación de entradas y transformación al contrato que use React. No generar CRUD público universal.
- React: tabla, paginación, formularios, feedback y navegación, sin aplicar criterios de seguridad como única barrera.
Consumo de PHP
GET /organizaciones/8/empleados?page=1&limit=50
Authorization: Bearer <token-interno-valido>
El token y su tenant deben derivarse de una identidad validada. No reenviar arbitrariamente idTenant del cliente.
Vista Empleados
Columnas iniciales sugeridas: Apellido y nombres, identificador, puesto, fecha de ingreso, estado y acciones. puesto y fechaIngreso son opcionales. El listado principal muestra vínculos activos.
Flujos a contemplar:
- Vincular una persona existente a la organización.
- Crear una persona y luego vincularla.
- Editar
puestoyfechaIngreso. - Desactivar y, si corresponde, reactivar el vínculo.
Por el índice único (idOrganizacion, idPersona), la re-vinculación de alguien previamente desactivado debe reactivar el vínculo existente, no insertar uno duplicado.
Cuidados de seguridad
- Nunca mostrar al usuario datos de otro tenant.
- No permitir modificar
idOrganizacionoidPersonasin una operación de negocio y validaciones específicas. - Autorizar lectura, vinculación, edición y desactivación individualmente en Go.
- Mantener PHP accesible únicamente por los canales internos previstos.
- No asumir que un empleado tiene registro en
pacientes: esa relación se administra aparte.
Pendientes por definir con Flavio
- Rutas, nombres de DTO y convenciones de respuesta de la API Go.
- Operaciones públicas autorizadas y permisos por rol.
- Búsqueda de personas por identificador y alta desde la pestaña.
- Eventual listado específico con tipo de identificador (hoy PHP devuelve solo el valor).