Saltar al contenido principal

Registro y Onboarding

Versión: 1.0
Estado: 🎨 Prototipado (Miro)
Alcance: Creación de cuentas, Validación de identidad y Configuración inicial de perfil.

El registro es polimórfico: la interfaz y los requisitos de datos mutan según el rol elegido por el usuario en el primer paso.


1. Flujo de Registro (Miro)


2. Procesos de Validación

2.1 Verificación de Correo (Todos)

  • Envío automático de enlace de activación.
  • Regla UX: El enlace debe realizar el login automático del usuario al ser pulsado.

2.2 Verificación de Teléfono (OTP)

  • Obligatorio para Pacientes antes de realizar su primera interacción (cita/consulta).
  • Canal: WhatsApp o SMS.

2.3 Validación Profesional (Doctores)

  • El número de colegiado entra en una cola de revisión.
  • Estado de Cuenta: PENDING_VALIDATION. El doctor puede entrar a su dashboard pero su perfil es invisible en el directorio público.

3. Requisitos de Datos por Rol

CampoPacienteDoctorEntidad
Nombre / Razón Social
Correo / Teléfono
Número de Colegiado
NIT / Tax ID⚠️
Especialidad Primaria
Documentos Legales

4. Detalles Críticos (No olvidar)

  • Términos y Condiciones: Checkbox obligatorio con enlace a la Política de Privacidad y Manejo de Datos Médicos.
  • Onboarding Progress: Si un doctor no completa su perfil al 100%, mostrar un recordatorio persistente en su dashboard.
  • Notificaciones de Sistema:
    • Email de bienvenida.
    • Notificación al administrador cuando un nuevo Doctor o Entidad requiere validación manual.
  • Prevención de Duplicados: Validar que el Número de Colegiado o NIT no existan ya en la base de datos antes de permitir el registro.

5. Especificaciones Técnicas (Pre-vía Swagger)

El registro utiliza una lógica de Onboarding por Pasos. El primer paso crea la identidad base; los pasos siguientes completan la data según el rol.

Endpoints de Registro

RecursoMétodoDescripción
/api/v1/auth/registerPOSTCrea usuario inicial. Body requiere: email, password, role.
/api/v1/auth/verify-email/:tokenGETValida el correo electrónico.
/api/v1/auth/otp/sendPOSTEnvía código a phone_number vía WhatsApp/SMS.
/api/v1/auth/otp/verifyPOSTValida código y marca el teléfono como verified: true.

Endpoints de Perfil (Post-Registro)

RecursoMétodoDescripción
/api/v1/profiles/doctorPATCHSube numero_colegiado y especialidad.
/api/v1/profiles/entityPATCHSube NIT, razon_social y documentos legales.

Ejemplo de Body (Registro Doctor)

{
"email": "clinica.central@med.com",
"password": "Password123!",
"role": "DOCTOR",
"metadata": {
"first_name": "Juan",
"last_name": "Pérez",
"license_number": "12345",
"primary_specialty": "id-cardio"
}
}