API PHP · Contratos · Integración
Pantalla Empleados — Go y React

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:

  1. Vincular una persona existente a la organización.
  2. Crear una persona y luego vincularla.
  3. Editar puesto y fechaIngreso.
  4. 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 idOrganizacion o idPersona sin 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).