Modelo funcional y reglas de negocio
Incorporación de usuarios

Incorporación de usuarios

Formas de incorporación

Un usuario puede ingresar a Interdrugs desde distintos orígenes:

  • una invitación;
  • registro web;
  • registro Android.

El origen queda registrado.

Valores iniciales:

INVITACION
REGISTRO_WEB
REGISTRO_ANDROID

Usuario proveniente de invitación

Cuando el usuario se registra mediante un enlace de invitación:

  1. se valida que la invitación exista;
  2. se valida que esté activa;
  3. se controla su vencimiento, si posee fecha;
  4. se calcula el cupo disponible;
  5. se crea el usuario asociado a esa invitación.

La relación con la invitación se conserva.

Cancelar posteriormente la invitación no elimina ni desactiva a ese usuario.

Registro directo

Un usuario registrado directamente desde web o Android no necesita una invitación.

En esos casos:

idInvitacion = NULL

Email único

El email identifica de forma única al usuario dentro del sistema.

No pueden existir dos cuentas con el mismo email.

Esta decisión permite mantener una identidad consistente y facilita mecanismos como recuperación de contraseña.

Especialidad

La especialidad del usuario es opcional y de texto libre.

Si la invitación posee una especialidad sugerida, la interfaz puede utilizarla para precompletar el registro.

El usuario puede modificarla o quitarla.

La especialidad de la invitación representa el objetivo de la campaña; la especialidad del usuario representa lo declarado por la persona.

Autenticación

El modelo admite contraseña mediante passwordHash.

El campo puede permanecer vacío para permitir posteriormente esquemas de autenticación externos, como OAuth, sin modificar la identidad principal del usuario.

Planes futuros

El origen del usuario y su invitación no deben utilizarse como sustitutos de un sistema de planes.

Si posteriormente existen modalidades Basic, Premium o suscripciones, deben modelarse como una dimensión independiente.