172 lines
4.5 KiB
Markdown
172 lines
4.5 KiB
Markdown
# US-MMD001-001: Configurar Taller como Tenant
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | US-MMD001-001 |
|
|
| **Epica** | EPIC-MMD-001 - Fundamentos |
|
|
| **Modulo** | fundamentos |
|
|
| **Prioridad** | P0 |
|
|
| **Story Points** | 5 |
|
|
| **Sprint** | Sprint 1 |
|
|
| **Estado** | Backlog |
|
|
| **Asignado a** | Por asignar |
|
|
|
|
---
|
|
|
|
## Historia de Usuario
|
|
|
|
**Como** administrador del taller,
|
|
**quiero** configurar mi taller como un tenant independiente en el sistema,
|
|
**para** operar de forma aislada con mis propios datos, usuarios y configuraciones.
|
|
|
|
## Descripcion Detallada
|
|
|
|
El administrador debe poder registrar su taller en el sistema con todos los datos necesarios para operar. Esto incluye datos basicos del negocio, configuracion de zona horaria, y parametros iniciales.
|
|
|
|
El taller configurado actuara como un tenant independiente, con total aislamiento de datos respecto a otros talleres.
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
**Escenario 1: Registro inicial de taller**
|
|
```gherkin
|
|
DADO que soy un nuevo administrador sin taller configurado
|
|
CUANDO completo el formulario de registro con datos validos
|
|
| Campo | Valor |
|
|
| Nombre del Taller | Diesel Express |
|
|
| Direccion | Av. Principal 123 |
|
|
| Telefono | 555-0100 |
|
|
| Email | contacto@diesel.mx |
|
|
ENTONCES el sistema crea un nuevo tenant para mi taller
|
|
Y me redirige al wizard de configuracion inicial
|
|
```
|
|
|
|
**Escenario 2: Validacion de datos obligatorios**
|
|
```gherkin
|
|
DADO que estoy en el formulario de registro
|
|
CUANDO intento guardar sin completar campos obligatorios
|
|
ENTONCES el sistema muestra errores de validacion
|
|
Y no permite continuar hasta completar los campos
|
|
```
|
|
|
|
**Escenario 3: Configuracion de zona horaria**
|
|
```gherkin
|
|
DADO que estoy configurando mi taller
|
|
CUANDO selecciono mi zona horaria (America/Mexico_City)
|
|
ENTONCES el sistema registra la zona horaria
|
|
Y todas las fechas/horas se muestran en esa zona
|
|
```
|
|
|
|
**Escenario 4: Logo del taller**
|
|
```gherkin
|
|
DADO que estoy en la configuracion del taller
|
|
CUANDO subo un logo (PNG/JPG, max 2MB)
|
|
ENTONCES el sistema almacena el logo
|
|
Y lo muestra en el header y documentos
|
|
```
|
|
|
|
---
|
|
|
|
## Criterios Adicionales
|
|
|
|
- [ ] Nombre del taller unico en el sistema
|
|
- [ ] Logo soporta PNG, JPG, max 2MB
|
|
- [ ] Direccion con campos separados (calle, ciudad, estado, CP)
|
|
- [ ] Telefono con formato validado
|
|
- [ ] Email con formato valido
|
|
- [ ] Wizard de bienvenida al completar
|
|
|
|
---
|
|
|
|
## Tareas Tecnicas
|
|
|
|
**Database:**
|
|
- [ ] DB-001: Crear tabla `workshops` en schema `workshop_core`
|
|
- [ ] DB-002: Crear RLS policy para aislamiento por `workshop_id`
|
|
|
|
**Backend:**
|
|
- [ ] BE-001: Crear WorkshopEntity con campos requeridos
|
|
- [ ] BE-002: Crear WorkshopService con metodo createWorkshop()
|
|
- [ ] BE-003: Crear WorkshopController POST /api/workshops
|
|
- [ ] BE-004: Implementar validaciones con class-validator
|
|
|
|
**Frontend:**
|
|
- [ ] FE-001: Crear WorkshopSetupPage con formulario
|
|
- [ ] FE-002: Crear WorkshopForm component
|
|
- [ ] FE-003: Implementar upload de logo
|
|
- [ ] FE-004: Crear welcomeWizard component
|
|
|
|
**Tests:**
|
|
- [ ] TEST-001: Test unitario WorkshopService
|
|
- [ ] TEST-002: Test e2e flujo de registro
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
**Depende de:**
|
|
- [ ] MGN-004 Tenants (Core) - Completado
|
|
|
|
**Bloquea:**
|
|
- [ ] US-MMD001-002: Configurar roles
|
|
- [ ] US-MMD001-003: Catalogo servicios
|
|
- [ ] Todas las demas US del modulo
|
|
|
|
---
|
|
|
|
## Notas Tecnicas
|
|
|
|
**Endpoints involucrados:**
|
|
| Metodo | Endpoint | Descripcion |
|
|
|--------|----------|-------------|
|
|
| POST | /api/workshops | Crear nuevo taller |
|
|
| GET | /api/workshops/me | Obtener taller actual |
|
|
| PATCH | /api/workshops/me | Actualizar taller |
|
|
| POST | /api/workshops/me/logo | Subir logo |
|
|
|
|
**Entidades/Tablas:**
|
|
- `workshop_core.workshops`: Datos del taller
|
|
|
|
**Componentes UI:**
|
|
- `WorkshopSetupPage`: Pagina de configuracion
|
|
- `WorkshopForm`: Formulario principal
|
|
- `LogoUpload`: Componente de subida de logo
|
|
|
|
---
|
|
|
|
## Definition of Ready (DoR)
|
|
|
|
- [x] Historia claramente escrita
|
|
- [x] Criterios de aceptacion definidos
|
|
- [x] Story points estimados
|
|
- [x] Dependencias identificadas
|
|
- [ ] Diseno UI disponible
|
|
- [ ] MGN-004 Tenants completado
|
|
|
|
## Definition of Done (DoD)
|
|
|
|
- [ ] Codigo implementado segun criterios
|
|
- [ ] Tests unitarios escritos y pasando
|
|
- [ ] Tests de integracion pasando
|
|
- [ ] Code review aprobado
|
|
- [ ] Documentacion actualizada
|
|
- [ ] RLS verificado
|
|
- [ ] Demo realizada
|
|
|
|
---
|
|
|
|
## Historial de Cambios
|
|
|
|
| Fecha | Cambio | Autor |
|
|
|-------|--------|-------|
|
|
| 2025-12-06 | Creacion | Requirements-Analyst |
|
|
|
|
---
|
|
|
|
**Creada por:** Requirements-Analyst
|
|
**Fecha:** 2025-12-06
|
|
**Ultima actualizacion:** 2025-12-06
|