Saltearse al contenido

Emergency Plants

Tag: emergency-plants
Descripción: Operaciones para gestión de plantas de emergencia asociadas a servicios de sucursal


1. Crear nueva planta de emergencia (POST /emergency-plants)

Sección titulada «1. Crear nueva planta de emergencia (POST /emergency-plants)»
  • Descripción: Registra una nueva planta de emergencia en el sistema
  • Operation ID: EmergencyPlantsController_create
  • Autenticación requerida: 🔒 Sí (ROLE_MAINTENANCE_MANAGER)
{
"branchServiceId": 1,
"brand": "Cummins",
"model": "Diesel 500kVA",
"serialNumber": "CMM-2023-001",
"capacity": "500",
"fuelType": "diesel",
"lastMaintenanceDate": "2023-05-01",
"nextMaintenanceDate": "2023-11-01",
"isActive": true
}
CódigoDescripción
201Planta creada exitosamente
400Datos de entrada inválidos
401No autorizado
404Servicio de sucursal no encontrado

2. Listar todas las plantas de emergencia (GET /emergency-plants)

Sección titulada «2. Listar todas las plantas de emergencia (GET /emergency-plants)»
  • Descripción: Obtiene todas las plantas de emergencia con filtros avanzados
  • Operation ID: EmergencyPlantsController_findAll
  • Autenticación requerida: 🔒 Sí (ROLE_MAINTENANCE_TECH)
ParámetroTipoRequeridoDescripción
pageinteger❌ NoNúmero de página (default: 1)
limitinteger❌ NoLímite por página (default: 20)
branchServiceIdinteger❌ NoFiltrar por ID de servicio
brandstring❌ NoFiltrar por marca
activeOnlyboolean❌ NoFiltrar solo activas
needsMaintenanceboolean❌ NoFiltrar por mantenimiento pendiente
CódigoDescripción
200Lista de plantas obtenida
401No autorizado

3. Obtener planta por ID (GET /emergency-plants/:id)

Sección titulada «3. Obtener planta por ID (GET /emergency-plants/:id)»
  • Descripción: Obtiene los detalles completos de una planta específica
  • Operation ID: EmergencyPlantsController_findOne
  • Autenticación requerida: 🔒 Sí (ROLE_MAINTENANCE_TECH)
ParámetroTipoDescripción
idintegerID de la planta
CódigoDescripción
200Planta obtenida exitosamente
401No autorizado
404Planta no encontrada

4. Actualizar planta (PATCH /emergency-plants/:id)

Sección titulada «4. Actualizar planta (PATCH /emergency-plants/:id)»
  • Descripción: Actualiza los datos de una planta existente
  • Operation ID: EmergencyPlantsController_update
  • Autenticación requerida: 🔒 Sí (ROLE_MAINTENANCE_MANAGER)
ParámetroTipoDescripción
idintegerID de la planta
{
"lastMaintenanceDate": "2023-06-15",
"nextMaintenanceDate": "2023-12-15",
"isActive": true
}
CódigoDescripción
200Planta actualizada exitosamente
400Datos de entrada inválidos
401No autorizado
404Planta no encontrada

5. Eliminar planta (DELETE /emergency-plants/:id)

Sección titulada «5. Eliminar planta (DELETE /emergency-plants/:id)»
  • Descripción: Desactiva una planta de emergencia (soft delete)
  • Operation ID: EmergencyPlantsController_remove
  • Autenticación requerida: 🔒 Sí (ROLE_MAINTENANCE_ADMIN)
ParámetroTipoDescripción
idintegerID de la planta
CódigoDescripción
204Planta desactivada exitosamente
401No autorizado
404Planta no encontrada

6. Registrar prueba de funcionamiento (POST /emergency-plants/:id/tests)

Sección titulada «6. Registrar prueba de funcionamiento (POST /emergency-plants/:id/tests)»
  • Descripción: Registra una prueba de funcionamiento de la planta
  • Operation ID: EmergencyPlantsController_recordTest
  • Autenticación requerida: 🔒 Sí (ROLE_MAINTENANCE_TECH)
ParámetroTipoDescripción
idintegerID de la planta
{
"testDate": "2023-06-01",
"durationMinutes": 30,
"result": "success",
"technician": "John Doe",
"notes": "Prueba rutinaria - todo en orden"
}
CódigoDescripción
201Prueba registrada exitosamente
400Datos de entrada inválidos
401No autorizado
404Planta no encontrada

MétodoEndpointDescripciónPermiso Requerido
POST/emergency-plantsCrear nueva plantaROLE_MAINTENANCE_MANAGER
GET/emergency-plantsListar plantasROLE_MAINTENANCE_TECH
GET/emergency-plants/:idObtener planta por IDROLE_MAINTENANCE_TECH
PATCH/emergency-plants/:idActualizar plantaROLE_MAINTENANCE_MANAGER
DELETE/emergency-plants/:idDesactivar plantaROLE_MAINTENANCE_ADMIN
POST/emergency-plants/:id/testsRegistrar prueba de funcionamientoROLE_MAINTENANCE_TECH
interface EmergencyPlant {
id: number;
branchServiceId: number;
brand: string;
model: string;
serialNumber: string;
capacity: number;
fuelType: string;
installationDate: string; // ISO 8601
lastMaintenanceDate?: string; // ISO 8601
nextMaintenanceDate?: string; // ISO 8601
isActive: boolean;
createdAt: string; // ISO 8601
updatedAt: string; // ISO 8601
branchService?: BranchService; // Relación opcional
tests?: PlantTest[]; // Relación opcional
}
interface PlantTest {
id: number;
testDate: string; // ISO 8601
durationMinutes: number;
result: 'success' | 'failed' | 'partial';
technician: string;
notes?: string;
plantId: number;
}
ValorDescripción
dieselMotor diésel
gasolineMotor a gasolina
gasMotor a gas
hybridSistema híbrido
{
"id": 1,
"branchServiceId": 1,
"brand": "Cummins",
"model": "Diesel 500kVA",
"serialNumber": "CMM-2023-001",
"capacity": 500,
"fuelType": "diesel",
"installationDate": "2023-01-15T00:00:00.000Z",
"lastMaintenanceDate": "2023-06-15T00:00:00.000Z",
"nextMaintenanceDate": "2023-12-15T00:00:00.000Z",
"isActive": true,
"createdAt": "2023-01-10T14:30:00.000Z",
"updatedAt": "2023-06-16T09:15:00.000Z",
"branchService": {
"id": 1,
"serviceType": "emergency_power"
},
"tests": [
{
"id": 1,
"testDate": "2023-06-01T00:00:00.000Z",
"durationMinutes": 30,
"result": "success",
"technician": "John Doe"
}
]
}
  1. Control de acceso:

    • Diferentes roles para operaciones técnicas vs administrativas
    • Validar pertenencia a sucursal para técnicos
  2. Datos técnicos:

    • Números de serie deben ser únicos en el sistema
    • Historial de pruebas debe ser inmutable
  3. Notificaciones:

    • Alertar cuando se acerque fecha de mantenimiento
    • Registrar quién realiza cada prueba
  4. Integridad de datos:

    • Validar fechas coherentes (instalación < mantenimiento)
    • No permitir desactivar plantas con mantenimientos pendientes