Actores y roles
Idea principal
En Cutlyy no todas las personas ven el mismo sistema ni pueden hacer las mismas acciones. El acceso depende de:
- quien es la persona
- a que negocio pertenece
- si su membresia esta activa
- que rol tiene asignado
Actores del negocio en lenguaje simple
| Actor | Que hace en la vida real | Como se representa en el sistema |
|---|---|---|
| Cliente o visitante | Reserva, consulta o califica servicios | Usuario publico o usuario interno con rol base de cliente |
| Persona del negocio | Administra el negocio o atiende clientes | Usuario interno con membresia a un negocio |
| Empleado | Presta servicios y ocupa agenda | Membresia activa con isEmployee = true |
| Administrador del negocio | Configura operacion, equipo y catalogo | Membresia activa con rol administrativo |
| Super admin del negocio | Tiene control total dentro de ese negocio | Membresia activa con rol SUPER_ADMIN |
| Root user | Administra negocios y planes a nivel plataforma | Usuario especial controlado por email/documento |
La pieza clave: la membresia
La membresia (BusinessMembership) es el vinculo entre una persona y un negocio.
Sin membresia activa, una persona puede existir en el sistema, pero no necesariamente puede operar dentro del panel del negocio.
La membresia define:
- a que negocio pertenece la persona
- si esta activa o no
- que rol tiene
- si actua como empleado
- a que sede puede quedar asociada
Estados de una membresia
| Estado | Significado operativo |
|---|---|
PENDING | La relacion existe pero aun no esta lista para operar |
ACTIVE | La persona puede actuar segun su rol |
INACTIVE | La relacion existe pero queda suspendida |
DELETED | La relacion fue eliminada logicamente |
Roles y permisos
Un rol no es solo un nombre decorativo. Es la lista de permisos que habilita acciones concretas dentro del panel.
Ejemplos:
- ver usuarios del negocio
- crear servicios
- editar bookings
- consultar metricas
- administrar roles y permisos
Esto significa que dos personas del mismo negocio pueden ver experiencias distintas segun su rol.
Jerarquia practica
Root user
- administra negocios y planes a nivel plataforma
- no representa una persona del dia a dia del salon
- tiene acceso a secciones globales que no dependen del contexto activo de un negocio
Super admin del negocio
- es la maxima autoridad dentro de un negocio puntual
- puede configurar estructura, equipo, catalogo y permisos
- el sistema protege que no se pierda accidentalmente el ultimo super admin activo
Administrador u operador
- gestiona operacion diaria
- normalmente trabaja con bookings, citas, clientes, servicios o sedes
- su alcance depende del rol configurado
Empleado
- puede aparecer en agenda
- puede tener acceso parcial a sus propias citas
- no todo empleado tiene necesariamente acceso amplio al panel
Cliente
- puede reservar y gestionar su servicio
- puede terminar teniendo un registro interno para historial, reviews o comunicacion
Regla importante sobre empleados
Para que una persona pueda recibir citas como empleado, el sistema exige varias condiciones:
- su membresia debe estar
ACTIVE - debe tener
isEmployee = true - puede requerir una sede asignada
- no debe quedar en estados incompatibles con citas activas
Esto evita que se agenden servicios con personas deshabilitadas o mal configuradas.
Acceso en frontend y backend
En frontend
El panel usa guards y verificacion de permisos para decidir:
- que pagina puede abrir una persona
- que menu ve
- si puede ver toda la agenda o solo su propia agenda
En backend
El backend valida el token de sesion y el contexto del negocio, y luego aplica reglas sobre la informacion recibida.
En otras palabras:
- el frontend orienta la experiencia
- el backend protege la regla final
Ejemplos practicos
Caso 1: persona logueada sin membresia activa
Puede tener sesion valida, pero no podra operar la mayoria del panel porque falta el contexto activo del negocio.
Caso 2: empleado con permisos limitados
Puede ver y administrar solo sus citas si su rol no le permite acceder a toda la agenda.
Caso 3: super admin que intenta quitarse su propio acceso
El sistema protege que el negocio no se quede sin una persona con control total.