@startuml uml-activity-onboarding-prestador !include _style.iuml title 5. Onboarding de prestador con validación de documentos start partition "RRHH" { :Capturar datos básicos del candidato\n(nombre, email, zona, especialidad); :Generar invitación con código único\ny vigencia (72 horas); :Enviar email de invitación; } partition "Sistema" { :INSERT invitaciones_prestador\n(estatus = 'enviada',\nexpira_at = now() + 72h); } partition "Prestador" { :Recibir email con enlace + código; if (¿valida código antes de expirar?) then (sí) :Completar formulario de registro; :Subir documentos\n(INE, CURP, comprobante de domicilio,\nantecedentes, certificaciones); else (no) partition "Sistema" { :Job de expiración:\nUPDATE invitaciones_prestador\nSET estatus = 'expirada'; :Notificar a RRHH; stop } endif } partition "Admin operaciones" { repeat :Revisar cada documento\nen consola RBAC; if (¿documento cumple requisitos?) then (sí) :Marcar 'aprobado'; else (no) :Marcar 'rechazado'\ncon motivo; partition "Sistema" { :Notificar al prestador con\nlista de archivos a re-subir; } partition "Prestador" { :Re-subir documento corregido; } endif repeat while (¿quedan documentos pendientes?) is (sí) not (no) } partition "Sistema" { if (¿todos los documentos aprobados?) then (sí) :UPDATE usuarios_admin\nSET activo = TRUE; :UPDATE prestadores\nSET activo = TRUE,\nrecibe_ordenes = TRUE; :Asignar zona y servicios contratados; :Enviar email de bienvenida\ncon credenciales y guía; note right Habilita disparo del trigger asignar_prestador_auto en próximas órdenes. end note stop else (no) :Mantener estatus 'en_revision'; stop endif } footer Fuente: 00.sql (usuarios, prestadores, documentos_prestador), apps/web/src/lib/dashboard/actions/invitaciones.ts, prestadores.ts @enduml