feat: Introduce source type for featured groups; add category association and implement FeaturedGroupService for item sourcing

This commit is contained in:
2026-08-04 13:17:00 -03:00
parent 8aa3a26ee7
commit 84e45bb964
13 changed files with 260 additions and 136 deletions

View File

@@ -2,6 +2,7 @@
namespace Database\Seeders;
use App\Domains\Catalog\Enums\FeaturedGroupSource;
use App\Domains\Catalog\Enums\GroupLayout;
use App\Domains\Catalog\Enums\InventoryPolicy;
use App\Domains\Catalog\Enums\ProductLayout;
@@ -168,30 +169,18 @@ class ProductCatalogFromImagesSeeder extends Seeder
{
FeaturedGroup::query()->where('tenant_code', $tenant->codigo)->delete();
$paginatedGroup = FeaturedGroup::query()->create([
FeaturedGroup::query()->create([
'tenant_code' => $tenant->codigo,
'source_type' => FeaturedGroupSource::All,
'product_layout' => ProductLayout::ColumnWithImage,
'group_layout' => GroupLayout::Paginated,
'group_name' => 'Productos',
'group_order' => 2,
]);
$items = CatalogItem::query()
->where('tenant_code', $tenant->codigo)
->orderBy('id')
->get('id');
$paginatedGroup->featuredItems()->createMany(
$items->values()->map(
fn (CatalogItem $item, int $order): array => [
'catalog_item_id' => $item->id,
'order' => $order,
]
)->all()
);
$carouselGroup = FeaturedGroup::query()->create([
'tenant_code' => $tenant->codigo,
'source_type' => FeaturedGroupSource::Manual,
'product_layout' => ProductLayout::ColumnWithImage,
'group_layout' => GroupLayout::Carousel,
'group_name' => 'Productos destacados',