erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-001-fundamentos/historias-usuario/US-MMD001-008-cambiar-bahia.md

132 lines
3.2 KiB
Markdown

# US-MMD001-008: Cambiar de Bahia sin Cerrar Sesion
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | US-MMD001-008 |
| **Epica** | EPIC-MMD-001 - Fundamentos |
| **Modulo** | fundamentos |
| **Prioridad** | P1 |
| **Story Points** | 3 |
| **Sprint** | Sprint 2 |
| **Estado** | Backlog |
| **Asignado a** | Por asignar |
---
## Historia de Usuario
**Como** mecanico o jefe de taller,
**quiero** cambiar de bahia de trabajo sin cerrar sesion,
**para** poder moverme entre estaciones y ver las ordenes de cada una rapidamente.
## Descripcion Detallada
En talleres grandes, un mecanico puede atender multiples bahias o un supervisor necesita revisar el trabajo en diferentes estaciones. El sistema debe permitir cambiar el contexto de bahia actual sin requerir logout/login.
---
## Criterios de Aceptacion
**Escenario 1: Selector de bahia en header**
```gherkin
DADO que estoy logueado como mecanico
CUANDO veo el header de la aplicacion
ENTONCES veo un selector con mi bahia actual: "Bahia 1"
Y puedo hacer clic para ver otras bahias disponibles
```
**Escenario 2: Cambiar bahia activa**
```gherkin
DADO que estoy en "Bahia 1"
CUANDO selecciono "Bahia 3" del selector
ENTONCES el sistema cambia mi contexto a Bahia 3
Y la vista se actualiza mostrando ordenes de Bahia 3
Y el selector muestra "Bahia 3" como activa
```
**Escenario 3: Ver solo bahias autorizadas**
```gherkin
DADO que soy mecanico asignado a Bahia 1 y Bahia 2
CUANDO abro el selector de bahias
ENTONCES solo veo Bahia 1 y Bahia 2
Y no veo Bahia 3 (no estoy autorizado)
```
**Escenario 4: Jefe de taller ve todas las bahias**
```gherkin
DADO que soy Jefe de Taller
CUANDO abro el selector de bahias
ENTONCES veo todas las bahias del taller
Y puedo cambiar a cualquiera para supervisar
```
**Escenario 5: Indicador visual de bahia**
```gherkin
DADO que cambio a Bahia 3
CUANDO navego por la aplicacion
ENTONCES todas las vistas muestran contexto de Bahia 3
Y hay un indicador visible de la bahia actual
```
---
## Tareas Tecnicas
**Backend:**
- [ ] BE-029: Endpoint GET /api/users/me/bays (bahias autorizadas)
- [ ] BE-030: Endpoint POST /api/users/me/current-bay (cambiar bahia)
- [ ] BE-031: Almacenar bahia actual en sesion/token
**Frontend:**
- [ ] FE-025: Crear BaySelector component en header
- [ ] FE-026: Actualizar contexto global al cambiar bahia
- [ ] FE-027: Refrescar vistas al cambiar bahia
- [ ] FE-028: Indicador visual de bahia actual
---
## Dependencias
**Depende de:**
- [ ] US-MMD001-002: Configurar roles
- [ ] US-MMD001-005: Configurar bahias
**Bloquea:**
- [ ] Vista de ordenes filtrada por bahia
---
## Notas Tecnicas
**Contexto de bahia:**
```typescript
interface UserContext {
user_id: string;
workshop_id: string;
current_bay_id: string | null; // Bahia activa
authorized_bays: string[]; // Bahias autorizadas
}
```
**Almacenamiento:**
- Bahia actual se guarda en localStorage
- Se envia en header `X-Current-Bay-Id` en cada request
- Backend valida que usuario tenga acceso a esa bahia
---
## Definition of Done (DoD)
- [ ] Selector de bahia en header
- [ ] Cambio de bahia sin logout
- [ ] Filtro por bahias autorizadas
- [ ] Contexto persiste en navegacion
- [ ] Tests pasando
---
**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06