Просмотр исходного кода

feat: :sparkles: feat (plataforma-v1) Implementação da liberação do usuario associado

Realizado a implementação de liberação do usuario associado na parte da loja onde ele pode marca um produto com eu quero, tambem foi ajustado a marcação então apos produto marcado ele podera recarrega a apgina que o produto aparecera co a opção de rmover item

fase:dev | origin:escopo
kayo henrique 3 недель назад
Родитель
Сommit
533afde646

+ 1 - 0
app/Http/Resources/StoreItemResource.php

@@ -21,6 +21,7 @@ class StoreItemResource extends JsonResource
             'supplier_price'  => $this->supplier_price,
             'status'          => $this->status,
             'interests_count' => $this->interests_count ?? 0,
+            'user_interested' => (bool) ($this->user_interested ?? false),
             'variations'      => $this->whenLoaded('variations', fn() => StoreItemVariationResource::collection($this->variations)),
             'media'           => $this->whenLoaded('media', fn() => MediaResource::collection($this->media)),
             'created_at'      => Carbon::parse($this->created_at)->format('Y-m-d H:i:s'),

+ 13 - 1
app/Services/StoreItemService.php

@@ -12,14 +12,26 @@ use Illuminate\Support\Facades\DB;
 
 class StoreItemService
 {
+
     public function getAll(): Collection
     {
+        $userId = Auth::id();
+
         return StoreItem::with(['category', 'media', 'variations'])
             ->withCount('interests')
+            ->withCount([
+                'interests as user_interested' => fn($q) =>
+                $q->where('user_id', $userId)
+            ])
             ->orderBy('name')
-            ->get();
+            ->get()
+            ->map(function ($item) {
+                $item->user_interested = $item->user_interested > 0;
+                return $item;
+            });
     }
 
+
     public function findById(int $id): ?StoreItem
     {
         return StoreItem::with(['category', 'media', 'variations'])->find($id);

+ 2 - 1
database/seeders/UserTypePermissionSeeder.php

@@ -35,7 +35,7 @@ class UserTypePermissionSeeder extends Seeder
                         ['scope' => 'agendamento',            'bits' => Permission::VIEW | Permission::ADD | Permission::EDIT],
                         ['scope' => 'config.user',            'bits' => Permission::VIEW | Permission::EDIT],
                         ['scope' => 'parceiro.convenio',      'bits' => Permission::VIEW],
-                        ['scope' => 'loja.item',              'bits' => Permission::VIEW],
+                        ['scope' => 'loja.item',              'bits' => Permission::VIEW | Permission::MENU],
                         ['scope' => 'categoria',              'bits' => Permission::VIEW],
                         ['scope' => 'config.position',        'bits' => Permission::VIEW],
                         ['scope' => 'config.sector',          'bits' => Permission::VIEW],
@@ -43,6 +43,7 @@ class UserTypePermissionSeeder extends Seeder
                     ];
                     break;
 
+
                 case UserTypeEnum::PARCEIRO:
                     $dataToSync = [
                         ['scope' => 'dashboard',            'bits' => Permission::VIEW | Permission::MENU],