From b8eb71896c2517ff8556ad22734048c8b776042b Mon Sep 17 00:00:00 2001 From: ncoronel Date: Fri, 17 Jul 2026 14:42:53 -0300 Subject: [PATCH] feat: refactor featured variants to group items, including new controller and resource implementations --- ...Controller.php => GroupItemController.php} | 28 +++++++++---------- ...tRequest.php => StoreGroupItemRequest.php} | 2 +- ...Request.php => UpdateGroupItemRequest.php} | 2 +- .../Resources/FeaturedGroupResource.php | 2 +- ...iantResource.php => GroupItemResource.php} | 2 +- app/Domains/Catalog/routes/api.php | 12 ++++---- 6 files changed, 24 insertions(+), 24 deletions(-) rename app/Domains/Catalog/Controllers/{FeaturedVariantController.php => GroupItemController.php} (55%) rename app/Domains/Catalog/Requests/{StoreFeaturedVariantRequest.php => StoreGroupItemRequest.php} (95%) rename app/Domains/Catalog/Requests/{UpdateFeaturedVariantRequest.php => UpdateGroupItemRequest.php} (84%) rename app/Domains/Catalog/Resources/{FeaturedVariantResource.php => GroupItemResource.php} (93%) diff --git a/app/Domains/Catalog/Controllers/FeaturedVariantController.php b/app/Domains/Catalog/Controllers/GroupItemController.php similarity index 55% rename from app/Domains/Catalog/Controllers/FeaturedVariantController.php rename to app/Domains/Catalog/Controllers/GroupItemController.php index a195754..684f28c 100644 --- a/app/Domains/Catalog/Controllers/FeaturedVariantController.php +++ b/app/Domains/Catalog/Controllers/GroupItemController.php @@ -6,23 +6,23 @@ use App\Domains\Bundle\Models\Bundle; use App\Domains\Catalog\Models\FeaturedGroup; use App\Domains\Catalog\Models\GroupItem; use App\Domains\Catalog\Models\ProductVariant; -use App\Domains\Catalog\Requests\StoreFeaturedVariantRequest; -use App\Domains\Catalog\Requests\UpdateFeaturedVariantRequest; -use App\Domains\Catalog\Resources\FeaturedVariantResource; +use App\Domains\Catalog\Requests\StoreGroupItemRequest; +use App\Domains\Catalog\Requests\UpdateGroupItemRequest; +use App\Domains\Catalog\Resources\GroupItemResource; use Illuminate\Http\JsonResponse; use Illuminate\Http\Resources\Json\AnonymousResourceCollection; use Illuminate\Routing\Controller; -class FeaturedVariantController extends Controller +class GroupItemController extends Controller { public function index(string $tenant, FeaturedGroup $featuredGroup): AnonymousResourceCollection { abort_if($featuredGroup->tenant_codigo !== $tenant, 404); - return FeaturedVariantResource::collection($featuredGroup->groupItems); + return GroupItemResource::collection($featuredGroup->groupItems); } - public function store(StoreFeaturedVariantRequest $request, string $tenant, FeaturedGroup $featuredGroup): FeaturedVariantResource + public function store(StoreGroupItemRequest $request, string $tenant, FeaturedGroup $featuredGroup): GroupItemResource { abort_if($featuredGroup->tenant_codigo !== $tenant, 404); @@ -41,21 +41,21 @@ class FeaturedVariantController extends Controller 'order' => $request->validated('order'), ]); - return new FeaturedVariantResource($groupItem); + return new GroupItemResource($groupItem); } - public function update(UpdateFeaturedVariantRequest $request, string $tenant, FeaturedGroup $featuredGroup, GroupItem $featuredVariant): FeaturedVariantResource + public function update(UpdateGroupItemRequest $request, string $tenant, FeaturedGroup $featuredGroup, GroupItem $groupItem): GroupItemResource { - abort_if($featuredGroup->tenant_codigo !== $tenant || $featuredVariant->featured_group_id !== $featuredGroup->id, 404); - $featuredVariant->update($request->validated()); + abort_if($featuredGroup->tenant_codigo !== $tenant || $groupItem->featured_group_id !== $featuredGroup->id, 404); + $groupItem->update($request->validated()); - return new FeaturedVariantResource($featuredVariant); + return new GroupItemResource($groupItem); } - public function destroy(string $tenant, FeaturedGroup $featuredGroup, GroupItem $featuredVariant): JsonResponse + public function destroy(string $tenant, FeaturedGroup $featuredGroup, GroupItem $groupItem): JsonResponse { - abort_if($featuredGroup->tenant_codigo !== $tenant || $featuredVariant->featured_group_id !== $featuredGroup->id, 404); - $featuredVariant->delete(); + abort_if($featuredGroup->tenant_codigo !== $tenant || $groupItem->featured_group_id !== $featuredGroup->id, 404); + $groupItem->delete(); return response()->json(null, 204); } diff --git a/app/Domains/Catalog/Requests/StoreFeaturedVariantRequest.php b/app/Domains/Catalog/Requests/StoreGroupItemRequest.php similarity index 95% rename from app/Domains/Catalog/Requests/StoreFeaturedVariantRequest.php rename to app/Domains/Catalog/Requests/StoreGroupItemRequest.php index b29ac67..8368fd5 100644 --- a/app/Domains/Catalog/Requests/StoreFeaturedVariantRequest.php +++ b/app/Domains/Catalog/Requests/StoreGroupItemRequest.php @@ -7,7 +7,7 @@ use App\Domains\Catalog\Models\ProductVariant; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; -class StoreFeaturedVariantRequest extends FormRequest +class StoreGroupItemRequest extends FormRequest { public function authorize(): bool { diff --git a/app/Domains/Catalog/Requests/UpdateFeaturedVariantRequest.php b/app/Domains/Catalog/Requests/UpdateGroupItemRequest.php similarity index 84% rename from app/Domains/Catalog/Requests/UpdateFeaturedVariantRequest.php rename to app/Domains/Catalog/Requests/UpdateGroupItemRequest.php index 8123db9..bae952b 100644 --- a/app/Domains/Catalog/Requests/UpdateFeaturedVariantRequest.php +++ b/app/Domains/Catalog/Requests/UpdateGroupItemRequest.php @@ -4,7 +4,7 @@ namespace App\Domains\Catalog\Requests; use Illuminate\Foundation\Http\FormRequest; -class UpdateFeaturedVariantRequest extends FormRequest +class UpdateGroupItemRequest extends FormRequest { public function authorize(): bool { diff --git a/app/Domains/Catalog/Resources/FeaturedGroupResource.php b/app/Domains/Catalog/Resources/FeaturedGroupResource.php index d43a72a..73d3f6e 100644 --- a/app/Domains/Catalog/Resources/FeaturedGroupResource.php +++ b/app/Domains/Catalog/Resources/FeaturedGroupResource.php @@ -15,7 +15,7 @@ class FeaturedGroupResource extends JsonResource 'group_name' => $this->group_name, 'product_layout' => $this->product_layout, 'group_order' => $this->group_order, - 'featured_variants' => FeaturedVariantResource::collection($this->whenLoaded('groupItems')), + 'group_items' => GroupItemResource::collection($this->whenLoaded('groupItems')), ]; } } diff --git a/app/Domains/Catalog/Resources/FeaturedVariantResource.php b/app/Domains/Catalog/Resources/GroupItemResource.php similarity index 93% rename from app/Domains/Catalog/Resources/FeaturedVariantResource.php rename to app/Domains/Catalog/Resources/GroupItemResource.php index 8f2b5b5..45aacdf 100644 --- a/app/Domains/Catalog/Resources/FeaturedVariantResource.php +++ b/app/Domains/Catalog/Resources/GroupItemResource.php @@ -7,7 +7,7 @@ use App\Domains\Catalog\Models\ProductVariant; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; -class FeaturedVariantResource extends JsonResource +class GroupItemResource extends JsonResource { public function toArray(Request $request): array { diff --git a/app/Domains/Catalog/routes/api.php b/app/Domains/Catalog/routes/api.php index 51633c5..f86796e 100644 --- a/app/Domains/Catalog/routes/api.php +++ b/app/Domains/Catalog/routes/api.php @@ -1,13 +1,13 @@ group(function (): void { @@ -22,10 +22,10 @@ Route::prefix('tenants/{tenant:codigo}')->group(function (): void { 'variants' => 'productVariant', ]); Route::apiResource('featured-groups', FeaturedGroupController::class); - Route::apiResource('featured-groups.variants', FeaturedVariantController::class) + Route::apiResource('featured-groups.items', GroupItemController::class) ->only(['index', 'store', 'update', 'destroy']) ->parameters([ 'featured-groups' => 'featuredGroup', - 'variants' => 'featuredVariant', + 'items' => 'groupItem', ]); });