get(); return ApiResponse::OK->response([ 'units' => $units ]); } public function show(UnitOfMeasurement $unit) { return ApiResponse::OK->response([ 'unit' => $unit ]); } public function active() { $units = UnitOfMeasurement::active()->orderBy('name')->get(); return ApiResponse::OK->response([ 'units' => $units ]); } public function store(UnitOfMeasurementStoreRequest $request) { $unit = UnitOfMeasurement::create($request->validated()); return ApiResponse::CREATED->response([ 'message' => 'Unidad de medida creada correctamente.', 'unit' => $unit ]); } public function update(UnitOfMeasurementUpdateRequest $request, UnitOfMeasurement $unit) { $unit->update($request->validated()); return ApiResponse::OK->response([ 'message' => 'Unidad de medida actualizada correctamente.' ]); } public function destroy(UnitOfMeasurement $unit) { // Verificar si hay productos asociados a esta unidad de medida if ($unit->inventories()->exists()) { return ApiResponse::BAD_REQUEST->response([ 'message' => 'No se puede eliminar esta unidad de medida porque hay productos asociados a ella.' ]); } $unit->delete(); return ApiResponse::OK->response([ 'message' => 'Unidad de medida eliminada correctamente.' ]); } }