feat: implement FeaturedGroup and FeaturedVariant controllers, models, requests, resources, and routes for managing featured groups and variants

This commit is contained in:
2026-07-14 14:58:28 -03:00
parent c2efec8906
commit 13bdb436ed
15 changed files with 33 additions and 39 deletions

View File

@@ -3,7 +3,7 @@
namespace App\Domains\Catalog\Controllers; namespace App\Domains\Catalog\Controllers;
use App\Domains\Catalog\Resources\CatalogFeaturedGroupResource; use App\Domains\Catalog\Resources\CatalogFeaturedGroupResource;
use App\Domains\Product\Models\FeaturedGroup; use App\Domains\Catalog\Models\FeaturedGroup;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection; use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
use Illuminate\Routing\Controller; use Illuminate\Routing\Controller;

View File

@@ -1,12 +1,12 @@
<?php <?php
namespace App\Domains\Product\Controllers; namespace App\Domains\Catalog\Controllers;
use App\Domains\Product\Models\FeaturedGroup; use App\Domains\Catalog\Models\FeaturedGroup;
use App\Domains\Product\Requests\StoreFeaturedGroupRequest; use App\Domains\Catalog\Requests\StoreFeaturedGroupRequest;
use App\Domains\Product\Requests\UpdateFeaturedGroupRequest; use App\Domains\Catalog\Requests\UpdateFeaturedGroupRequest;
use App\Domains\Product\Resources\FeaturedGroupResource; use App\Domains\Catalog\Resources\FeaturedGroupResource;
use App\Domains\Product\Services\FeaturedGroupService; use App\Domains\Catalog\Services\FeaturedGroupService;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection; use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
use Illuminate\Routing\Controller; use Illuminate\Routing\Controller;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;

View File

@@ -1,12 +1,12 @@
<?php <?php
namespace App\Domains\Product\Controllers; namespace App\Domains\Catalog\Controllers;
use App\Domains\Product\Models\FeaturedGroup; use App\Domains\Catalog\Models\FeaturedGroup;
use App\Domains\Product\Models\FeaturedVariant; use App\Domains\Catalog\Models\FeaturedVariant;
use App\Domains\Product\Requests\StoreFeaturedVariantRequest; use App\Domains\Catalog\Requests\StoreFeaturedVariantRequest;
use App\Domains\Product\Requests\UpdateFeaturedVariantRequest; use App\Domains\Catalog\Requests\UpdateFeaturedVariantRequest;
use App\Domains\Product\Resources\FeaturedVariantResource; use App\Domains\Catalog\Resources\FeaturedVariantResource;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection; use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
use Illuminate\Routing\Controller; use Illuminate\Routing\Controller;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Models; namespace App\Domains\Catalog\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Models; namespace App\Domains\Catalog\Models;
use App\Domains\Catalog\Models\ProductVariant; use App\Domains\Catalog\Models\ProductVariant;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Requests; namespace App\Domains\Catalog\Requests;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Requests; namespace App\Domains\Catalog\Requests;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Requests; namespace App\Domains\Catalog\Requests;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Requests; namespace App\Domains\Catalog\Requests;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;

View File

@@ -4,7 +4,7 @@ namespace App\Domains\Catalog\Resources;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
use App\Domains\Product\Models\FeaturedVariant; use App\Domains\Catalog\Models\FeaturedVariant;
class CatalogFeaturedGroupResource extends JsonResource class CatalogFeaturedGroupResource extends JsonResource
{ {

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Resources; namespace App\Domains\Catalog\Resources;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace App\Domains\Product\Resources; namespace App\Domains\Catalog\Resources;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;

View File

@@ -1,8 +1,8 @@
<?php <?php
namespace App\Domains\Product\Services; namespace App\Domains\Catalog\Services;
use App\Domains\Product\Models\FeaturedGroup; use App\Domains\Catalog\Models\FeaturedGroup;
class FeaturedGroupService class FeaturedGroupService
{ {

View File

@@ -6,6 +6,8 @@ use App\Domains\Catalog\Controllers\CategoryController;
use App\Domains\Catalog\Controllers\ProductController; use App\Domains\Catalog\Controllers\ProductController;
use App\Domains\Catalog\Controllers\AttributeController; use App\Domains\Catalog\Controllers\AttributeController;
use App\Domains\Catalog\Controllers\ProductVariantController; use App\Domains\Catalog\Controllers\ProductVariantController;
use App\Domains\Catalog\Controllers\FeaturedGroupController;
use App\Domains\Catalog\Controllers\FeaturedVariantController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::prefix('tenants/{tenant:codigo}')->group(function (): void { Route::prefix('tenants/{tenant:codigo}')->group(function (): void {
@@ -19,4 +21,11 @@ Route::prefix('tenants/{tenant:codigo}')->group(function (): void {
'productos' => 'producto', 'productos' => 'producto',
'variants' => 'productVariant', 'variants' => 'productVariant',
]); ]);
Route::apiResource('featured-groups', FeaturedGroupController::class);
Route::apiResource('featured-groups.variants', FeaturedVariantController::class)
->only(['index', 'store', 'update', 'destroy'])
->parameters([
'featured-groups' => 'featuredGroup',
'variants' => 'featuredVariant',
]);
}); });

View File

@@ -1,15 +0,0 @@
<?php
use App\Domains\Product\Controllers\FeaturedGroupController;
use App\Domains\Product\Controllers\FeaturedVariantController;
use Illuminate\Support\Facades\Route;
Route::prefix('tenants/{tenant:codigo}')->group(function (): void {
Route::apiResource('featured-groups', FeaturedGroupController::class);
Route::apiResource('featured-groups.variants', FeaturedVariantController::class)
->only(['index', 'store', 'update', 'destroy'])
->parameters([
'featured-groups' => 'featuredGroup',
'variants' => 'featuredVariant',
]);
});