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
| Campo | Paciente | Doctor | Entidad |
|---|---|---|---|
| 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
| Recurso | Método | Descripción |
|---|---|---|
/api/v1/auth/register | POST | Crea usuario inicial. Body requiere: email, password, role. |
/api/v1/auth/verify-email/:token | GET | Valida el correo electrónico. |
/api/v1/auth/otp/send | POST | Envía código a phone_number vía WhatsApp/SMS. |
/api/v1/auth/otp/verify | POST | Valida código y marca el teléfono como verified: true. |
Endpoints de Perfil (Post-Registro)
| Recurso | Método | Descripción |
|---|---|---|
/api/v1/profiles/doctor | PATCH | Sube numero_colegiado y especialidad. |
/api/v1/profiles/entity | PATCH | Sube 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"
}
}