# US-MMD002-003: Asignar Orden a Mecanico y Bahia ## Metadata | Campo | Valor | |-------|-------| | **ID** | US-MMD002-003 | | **Epica** | EPIC-MMD-002 - Ordenes de Servicio | | **Modulo** | ordenes-servicio | | **Prioridad** | P0 | | **Story Points** | 5 | | **Sprint** | Sprint 4 | | **Estado** | Backlog | --- ## Historia de Usuario **Como** jefe de taller, **quiero** asignar una orden a un mecanico y una bahia de trabajo, **para** distribuir el trabajo equitativamente y tener control de la capacidad. ## Descripcion Detallada El jefe de taller revisa las ordenes pendientes y las asigna a los mecanicos disponibles segun su especialidad y carga de trabajo. Tambien selecciona la bahia donde se realizara el servicio. --- ## Criterios de Aceptacion **Escenario 1: Ver ordenes sin asignar** ```gherkin DADO que hay ordenes en estado RECIBIDO CUANDO accedo a "Ordenes pendientes de asignar" ENTONCES veo lista de ordenes sin mecanico asignado Y veo hace cuanto tiempo llegaron ``` **Escenario 2: Asignar mecanico y bahia** ```gherkin DADO que selecciono una orden pendiente CUANDO asigno a "Juan Perez" en "Bahia 2" ENTONCES la orden cambia a estado EN_DIAGNOSTICO Y Juan recibe notificacion de nueva orden Y Bahia 2 se marca como ocupada ``` **Escenario 3: Ver disponibilidad de mecanicos** ```gherkin DADO que quiero asignar una orden CUANDO veo la lista de mecanicos ENTONCES veo su carga actual: | Mecanico | Ordenes activas | Disponibilidad | | Juan Perez | 2 | Media | | Pedro Lopez | 0 | Alta | | Carlos Ruiz | 4 | Baja | ``` **Escenario 4: Ver disponibilidad de bahias** ```gherkin DADO que quiero asignar una bahia CUANDO veo el selector de bahias ENTONCES veo solo bahias disponibles Y las ocupadas aparecen deshabilitadas con la orden actual ``` **Escenario 5: Reasignar orden** ```gherkin DADO que una orden ya esta asignada a Juan CUANDO la reasigno a Pedro ENTONCES Juan deja de ver la orden Y Pedro la ve en sus ordenes asignadas Y se registra el cambio en historial ``` --- ## Tareas Tecnicas **Backend:** - [ ] BE-045: Endpoint PATCH /api/orders/:id/assign - [ ] BE-046: Calcular carga de trabajo por mecanico - [ ] BE-047: Actualizar estado de bahia automaticamente - [ ] BE-048: Registrar asignaciones en historial - [ ] BE-049: Enviar notificacion a mecanico **Frontend:** - [ ] FE-044: Crear AssignmentPanel component - [ ] FE-045: Crear MechanicSelector con disponibilidad - [ ] FE-046: Crear BaySelector con estado - [ ] FE-047: Vista de ordenes pendientes --- ## Dependencias **Depende de:** - [ ] US-MMD002-001: Crear orden - [ ] US-MMD001-002: Roles (mecanicos) - [ ] US-MMD001-005: Bahias **Bloquea:** - [ ] US-MMD002-004: Ver ordenes asignadas - [ ] US-MMD002-005: Registrar trabajos --- ## Definition of Done (DoD) - [ ] Asignar mecanico y bahia - [ ] Ver disponibilidad de recursos - [ ] Notificacion a mecanico - [ ] Historial de asignaciones - [ ] Tests pasando --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-06