orderBy('date', 'desc') ->get(); return response()->json($maintenances); } public function getPendingAlerts() { $alerts = Maintenance::with('vehicle') ->where('status', 'Pendiente') ->where('next_maintenance_date', '<=', now()->addDays(30)) ->orderBy('next_maintenance_date', 'asc') ->get(); return response()->json($alerts); } public function store(Request $request) { $validated = $request->validate([ 'vehicle_id' => 'required|exists:vehicles,id', 'maintenance_type' => 'required|string', 'date' => 'required|date', 'description' => 'required|string', 'cost' => 'required|numeric|min:0', 'status' => 'required|in:Pendiente,En Proceso,Completado', 'next_maintenance_date' => 'nullable|date' ]); $maintenance = Maintenance::create($validated); return response()->json([ 'message' => 'Mantenimiento registrado exitosamente', 'maintenance' => $maintenance ], 201); } public function update(Request $request, Maintenance $maintenance) { $validated = $request->validate([ 'vehicle_id' => 'required|exists:vehicles,id', 'maintenance_type' => 'required|string', 'date' => 'required|date', 'description' => 'required|string', 'cost' => 'required|numeric|min:0', 'status' => 'required|in:Pendiente,En Proceso,Completado', 'next_maintenance_date' => 'nullable|date' ]); $maintenance->update($validated); return response()->json([ 'message' => 'Mantenimiento actualizado exitosamente', 'maintenance' => $maintenance ]); } public function getVehicles() { $vehicles = Vehicle::where('status', 'Activo')->get(); return response()->json($vehicles); } }