- Create TicketValiditySchemaTest to verify database schema for ticket validity. - Update CatalogModelsTest to include tests for event date attributes and selection options. - Introduce EventDateTextFormatterTest for formatting event dates in Spanish. - Refactor EventModelsTest to include validity time relationships. - Add SaleDetailResourceTest to ensure correct serialization of purchase items. - Enhance TicketTest with validity time checks and status management. - Implement ValidityTimeResourceTest to validate resource output for different validity types. - Add ValidityTimeTest to verify casting and validity checks for validity time types.
37 lines
1.9 KiB
Markdown
37 lines
1.9 KiB
Markdown
# Dominio Auth
|
|
|
|
## Propósito
|
|
|
|
Gestiona identidad y acceso de usuarios de la tienda y del panel administrativo: registro, inicio y cierre de sesión, perfil, autenticación con Google y recuperación de contraseña.
|
|
|
|
## Modelo y servicios
|
|
|
|
- `User`: usuario autenticable, asociado a tenant, rol, intentos de acceso y categorías habilitadas para escaneo.
|
|
- `LoginAttempt` y `ResetPasswordAttempt`: trazabilidad de accesos y recuperación de contraseña.
|
|
- `PasswordLoginService`: autentica tienda y AdminApp, incluyendo bloqueo por intentos.
|
|
- `RegisterUserService` y `ProfileService`: alta y edición del usuario.
|
|
- `ResetPasswordAttemptService`: crea, valida y consume códigos de recuperación.
|
|
- `GoogleAuthService`: redirección, callback e intercambio de código para Google OAuth.
|
|
- `AdminAppContextService`: carga el contexto requerido por un usuario administrativo.
|
|
|
|
## Endpoints públicos
|
|
|
|
- `POST /register`, `POST /login` y `POST /logout`.
|
|
- `GET /me` y `PUT /me`, protegidos por `auth:sanctum`.
|
|
- Creación, validación y aplicación de intentos de recuperación bajo `/password`.
|
|
- `POST /auth/google/exchange` para canjear el código de autenticación.
|
|
- `POST /v1/adminapp/login` y consulta del usuario administrativo dentro del grupo autenticado de AdminApp.
|
|
|
|
## Validación y respuestas
|
|
|
|
Los `FormRequest` validan cada operación. `UserResource` y `AdminAppMeResource` definen las representaciones de salida. Los endpoints sensibles aplican `auth:sanctum` y límites de frecuencia.
|
|
|
|
## Dependencias y eventos
|
|
|
|
Se relaciona con `Tenant` y `Authorization`; el registro y la recuperación disparan flujos atendidos por `Notification`. El carrito invitado puede integrarse al usuario autenticado mediante el dominio `Cart`.
|
|
|
|
## Consideraciones
|
|
|
|
- La resolución del tenant forma parte de la autenticación y no debe omitirse.
|
|
- Los cambios en reglas de login deben conservar los límites de intentos y el manejo de `AccountLockedException`.
|