erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-001-fundamentos/historias-usuario/US-MMD001-001-configurar-taller.md

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