Ver Fonte

feat: adiciona pacotes para franqueado

ebagabee há 1 mês atrás
pai
commit
9b8ad581b0

+ 11 - 0
app/Http/Controllers/ClassPackageController.php

@@ -6,6 +6,7 @@
 use App\Http\Requests\ClassPackageRequest;
 use App\Http\Resources\ClassPackageResource;
 use Illuminate\Http\JsonResponse;
+use Illuminate\Support\Facades\Auth;
 
 class ClassPackageController extends Controller
 {
@@ -19,6 +20,16 @@ public function index(): JsonResponse
         return $this->successResponse(payload: ClassPackageResource::collection($items));
     }
 
+    public function byUnit(): JsonResponse
+    {
+        $unitId = Auth::user()->load('units')->units->first()?->id;
+        if (!$unitId) {
+            return $this->successResponse(payload: []);
+        }
+        $items = $this->service->getByUnit($unitId);
+        return $this->successResponse(payload: ClassPackageResource::collection($items));
+    }
+
     public function store(ClassPackageRequest $request): JsonResponse
     {
         $item = $this->service->create($request->validated());

+ 7 - 0
app/Services/ClassPackageService.php

@@ -13,6 +13,13 @@ public function getAll(): Collection
         return ClassPackage::orderBy('created_at', 'desc')->get();
     }
 
+    public function getByUnit(int $unitId): Collection
+    {
+        return ClassPackage::whereHas('units', fn($q) => $q->where('units.id', $unitId)->where('visible', true))
+            ->orderBy('name')
+            ->get();
+    }
+
     public function findById(int $id): ?ClassPackage
     {
         return ClassPackage::with(['units', 'products'])->find($id);

+ 1 - 1
app/Services/UserService.php

@@ -15,7 +15,7 @@ class UserService
 {
     public function authUser(): ?User
     {
-        return Auth::user();
+        return Auth::user()->load('units');
     }
 
     public function getAll(): Collection

+ 1 - 0
routes/authRoutes/class_package.php

@@ -5,6 +5,7 @@
 
 Route::controller(ClassPackageController::class)->prefix('class-package')->group(function () {
     Route::get('/', 'index');
+    Route::get('/by-unit', 'byUnit');
     Route::post('/', 'store');
     Route::get('/{id}', 'show');
     Route::put('/{id}', 'update');