feat: enhance tenant resource to include menues and update seeder for new menu routes
This commit is contained in:
@@ -15,7 +15,7 @@ class BootstrapTenantController extends Controller
|
|||||||
$dominio = $request->validated('dominio');
|
$dominio = $request->validated('dominio');
|
||||||
|
|
||||||
return TenantResource::make(
|
return TenantResource::make(
|
||||||
Tenant::query()->with(['headerLogo', 'footerLogo'])->where('dominio', $dominio)->firstOrFail()
|
Tenant::query()->with(['headerLogo', 'footerLogo', 'menues'])->where('dominio', $dominio)->firstOrFail()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class TenantResource extends JsonResource
|
|||||||
'footer_logo' => $this->footerLogo?->getTemporaryUrl(1440 ),
|
'footer_logo' => $this->footerLogo?->getTemporaryUrl(1440 ),
|
||||||
'hero_config' => $this->hero_config,
|
'hero_config' => $this->hero_config,
|
||||||
'event_config' => $this->event_config,
|
'event_config' => $this->event_config,
|
||||||
|
'menues' => $this->whenLoaded('menues'),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
use App\Domains\Menu\Models\Menu;
|
||||||
|
use App\Domains\Tenant\Models\Tenant;
|
||||||
|
|
||||||
class MenuSeeder extends Seeder
|
class MenuSeeder extends Seeder
|
||||||
{
|
{
|
||||||
@@ -12,6 +13,32 @@ class MenuSeeder extends Seeder
|
|||||||
*/
|
*/
|
||||||
public function run(): void
|
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'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user