132 lines
3.2 KiB
Markdown
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
|