diff --git a/app/Domains/Tenant/Controllers/BootstrapTenantController.php b/app/Domains/Tenant/Controllers/BootstrapTenantController.php index f9803b2..dfe990e 100644 --- a/app/Domains/Tenant/Controllers/BootstrapTenantController.php +++ b/app/Domains/Tenant/Controllers/BootstrapTenantController.php @@ -15,7 +15,7 @@ class BootstrapTenantController extends Controller $dominio = $request->validated('dominio'); return TenantResource::make( - Tenant::query()->with(['headerLogo', 'footerLogo'])->where('dominio', $dominio)->firstOrFail() + Tenant::query()->with(['headerLogo', 'footerLogo', 'menues'])->where('dominio', $dominio)->firstOrFail() ); } } diff --git a/app/Domains/Tenant/Resources/TenantResource.php b/app/Domains/Tenant/Resources/TenantResource.php index 9242602..9cc78b0 100644 --- a/app/Domains/Tenant/Resources/TenantResource.php +++ b/app/Domains/Tenant/Resources/TenantResource.php @@ -31,6 +31,7 @@ class TenantResource extends JsonResource 'footer_logo' => $this->footerLogo?->getTemporaryUrl(1440 ), 'hero_config' => $this->hero_config, 'event_config' => $this->event_config, + 'menues' => $this->whenLoaded('menues'), ]; } } diff --git a/database/seeders/MenuSeeder.php b/database/seeders/MenuSeeder.php index b3b1793..ee86545 100644 --- a/database/seeders/MenuSeeder.php +++ b/database/seeders/MenuSeeder.php @@ -2,8 +2,9 @@ namespace Database\Seeders; -use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use App\Domains\Menu\Models\Menu; +use App\Domains\Tenant\Models\Tenant; class MenuSeeder extends Seeder { @@ -12,6 +13,32 @@ class MenuSeeder extends Seeder */ public function run(): void { - // + $menus = [ + ['code' => 'index', 'route' => '/'], + ['code' => 'product.detail', 'route' => '/product/:id'], + ['code' => 'checkout', 'route' => '/checkout'], + ['code' => 'profile', 'route' => '/profile'], + ['code' => 'purchases', 'route' => '/purchases'], + ['code' => 'tickets', 'route' => '/tickets'], + ]; + + foreach ($menus as $menuData) { + Menu::firstOrCreate(['code' => $menuData['code']], $menuData); + } + + $tenants = Tenant::all(); + + foreach ($tenants as $tenant) { + $menuCodes = ['index', 'checkout', 'profile', 'purchases']; + + if ($tenant->codigo === 'sonder') { + $menuCodes[] = 'product.detail'; + } else { + $menuCodes[] = 'tickets'; + } + + // Usar sync para asociar los menues al tenant + $tenant->menues()->sync(Menu::whereIn('code', $menuCodes)->pluck('code')); + } } }