Saltar al contenido principal

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
  • que membresias tiene
  • si la membresia esta activa
  • que rol tiene asignado
  • en que contexto esta operando: negocio o plataforma

Actores del negocio en lenguaje simple

ActorQue hace en la vida realComo se representa en el sistema
Cliente o visitanteReserva, consulta o califica serviciosUsuario publico o usuario interno con rol base de cliente
Persona del negocioAdministra el negocio o atiende clientesUsuario interno con membresia a un negocio
EmpleadoPresta servicios y ocupa agendaMembresia activa con isEmployee = true
Administrador del negocioConfigura operacion, equipo y catalogoMembresia activa con rol BUSINESS o CROSS_BUSINESS
Administrador transversalOpera varios negocios con un mismo set de permisosMembresias de negocio con rol CROSS_BUSINESS
Administrador globalAdministra capacidades transversales de la plataformaMembresia global sin businessId y rol GLOBAL

La pieza clave: la membresia

La membresia (BusinessMembership) es el vinculo operativo entre una persona y un contexto autorizado.

Hoy puede existir de dos formas:

  • membresia de negocio: tiene businessId
  • membresia global: no tiene businessId

Sin una membresia activa, una persona puede existir en el sistema, pero no necesariamente puede operar dentro del panel del negocio ni dentro del Panel de control.

La membresia define:

  • a que contexto pertenece la persona
  • si esta activa o no
  • que rol tiene
  • si actua como empleado
  • a que sede puede quedar asociada en el contexto de negocio

Estados de una membresia

EstadoSignificado operativo
PENDINGLa relacion existe pero aun no esta lista para operar
ACTIVELa persona puede actuar segun su rol
INACTIVELa relacion existe pero queda suspendida
DELETEDLa relacion fue eliminada logicamente

Roles y permisos

Un rol no es solo un nombre decorativo. Es la lista de permisos que habilita acciones concretas.

Tipos de rol

TipoAlcance
BUSINESSSolo opera dentro de un negocio especifico
CROSS_BUSINESSSe administra globalmente, pero se asigna a membresias de negocio
GLOBALSolo opera fuera del negocio, en el Panel de control

Tipos de permisos y modulos

TipoUso
BUSINESSSolo negocio
GLOBALSolo Panel de control
HYBRIDCompartido entre negocio y Panel de control

Esto significa que dos personas del mismo negocio pueden ver experiencias distintas segun su rol, y que el acceso a funciones globales ya no depende de hardcodes sino de permisos reales.

Jerarquia practica

Administrador global

  • administra negocios, planes, roles globales, modulos y permisos desde Panel de control
  • no representa la operacion diaria de un salon
  • usa una membresia global sin businessId

Administrador transversal

  • puede reutilizar un rol comun entre varios negocios
  • sigue operando dentro del contexto de cada negocio
  • no sustituye la necesidad de una membresia por negocio

Administrador u operador de negocio

  • 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

Reglas importantes del modelo

  • una membresia global no da acceso automatico a un negocio
  • el Panel de control y el panel de negocio usan permisos distintos
  • una persona no puede tener mas de una membresia global
  • las membresias de negocio siguen dependiendo del negocio correspondiente
  • borrar una membresia no borra necesariamente al usuario; la relacion pasa a DELETED
  • una membresia eliminada puede conservar trazabilidad y no debe aparecer como acceso operativo normal

Reactivacion especial de administrador

Existe un caso operativo acotado para superadmin global:

  • puede consultar negocios donde su propia membresia de negocio este pendiente, inactiva o eliminada
  • puede reactivar esa membresia como admin del negocio
  • el flujo no convierte una membresia global en membresia de negocio; reutiliza o restaura una relacion existente con ese negocio

Esto sirve para recuperar acceso administrativo sin romper la separacion entre Panel de control y operacion diaria del negocio.

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

Acceso en frontend y backend

En frontend

La UI usa guards y verificacion de permisos para decidir:

  • que pagina puede abrir una persona
  • que menu ve
  • si puede entrar al negocio o al Panel de control
  • si puede ver toda la agenda o solo su propia agenda

En backend

El backend valida el token de sesion, el contexto de negocio cuando aplica y la membresia correcta para cada operacion.

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 autorizado.

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: administrador global sin membresia de negocio

Puede operar el Panel de control, pero no entrar a un negocio puntual si no tiene una membresia de negocio para ese negocio.

Documentos relacionados