# 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