From 329e0b19533f2dae7ba96d8a826d5cf8f435e868 Mon Sep 17 00:00:00 2001 From: ncoronel Date: Thu, 13 Aug 2026 11:06:31 -0300 Subject: [PATCH] feat(desfile): add routes and migration for desfile entries in admin app menu --- app/Domains/Desfile/routes/api.php | 3 + ...0000_add_desfile_entries_adminapp_menu.php | 78 +++++++++++++++++++ ...ix_desfile_entries_adminapp_menu_route.php | 29 +++++++ database/seeders/MenuSeeder.php | 13 ++++ routes/api.php | 1 + 5 files changed, 124 insertions(+) create mode 100644 app/Domains/Desfile/routes/api.php create mode 100644 database/migrations/2026_08_13_000000_add_desfile_entries_adminapp_menu.php create mode 100644 database/migrations/2026_08_13_010000_fix_desfile_entries_adminapp_menu_route.php diff --git a/app/Domains/Desfile/routes/api.php b/app/Domains/Desfile/routes/api.php new file mode 100644 index 0000000..8528bd6 --- /dev/null +++ b/app/Domains/Desfile/routes/api.php @@ -0,0 +1,3 @@ +where('code', 'main.adminapp')->exists()) { + // Reference data is added by seeders on fresh installations. + return; + } + + $now = now(); + + DB::transaction(function () use ($now): void { + DB::table('menues')->updateOrInsert( + ['code' => self::MENU_CODE], + [ + 'label' => 'Entradas', + 'parent_menu_code' => 'main.adminapp', + 'content_type' => 'dynamic', + 'static_content_schema' => null, + 'route' => '/admin/desfile/entradas', + 'created_at' => $now, + 'updated_at' => $now, + ], + ); + + if (DB::table('tenants')->where('codigo', self::TENANT_CODE)->exists()) { + DB::table('tenants_menues')->updateOrInsert( + [ + 'tenant_code' => self::TENANT_CODE, + 'menu_code' => self::MENU_CODE, + ], + [ + 'static_content' => null, + 'created_at' => $now, + 'updated_at' => $now, + ], + ); + } + + DB::table('roles') + ->whereIn('codigo', ['admin', 'adminapp']) + ->pluck('codigo') + ->each(function (string $roleCode): void { + DB::table('roles_menues')->updateOrInsert([ + 'rol_codigo' => $roleCode, + 'menu_codigo' => self::MENU_CODE, + ]); + }); + }); + } + + public function down(): void + { + DB::transaction(function (): void { + DB::table('tenants_menues') + ->where('tenant_code', self::TENANT_CODE) + ->where('menu_code', self::MENU_CODE) + ->delete(); + + DB::table('roles_menues') + ->where('menu_codigo', self::MENU_CODE) + ->delete(); + + DB::table('menues') + ->where('code', self::MENU_CODE) + ->delete(); + }); + } +}; diff --git a/database/migrations/2026_08_13_010000_fix_desfile_entries_adminapp_menu_route.php b/database/migrations/2026_08_13_010000_fix_desfile_entries_adminapp_menu_route.php new file mode 100644 index 0000000..7b11d04 --- /dev/null +++ b/database/migrations/2026_08_13_010000_fix_desfile_entries_adminapp_menu_route.php @@ -0,0 +1,29 @@ +where('code', self::MENU_CODE) + ->update([ + 'route' => '/admin/desfile/entradas', + 'updated_at' => now(), + ]); + } + + public function down(): void + { + DB::table('menues') + ->where('code', self::MENU_CODE) + ->update([ + 'route' => '/admin/entradas', + 'updated_at' => now(), + ]); + } +}; diff --git a/database/seeders/MenuSeeder.php b/database/seeders/MenuSeeder.php index 9ab6d3b..ff99a95 100644 --- a/database/seeders/MenuSeeder.php +++ b/database/seeders/MenuSeeder.php @@ -102,6 +102,12 @@ class MenuSeeder extends Seeder 'parent_menu_code' => 'main.adminapp', 'route' => '/admin/comidas', ], + [ + 'code' => 'adminapp.desfile.entradas', + 'label' => 'Entradas', + 'parent_menu_code' => 'main.adminapp', + 'route' => '/admin/desfile/entradas', + ], [ 'code' => 'account', 'label' => 'Mi cuenta', @@ -272,6 +278,9 @@ class MenuSeeder extends Seeder 'adminapp.categories', 'adminapp.combos', ]; + $desfileMenuCodes = [ + 'adminapp.desfile.entradas', + ]; $frequentlyAskedQuestions = [ [ 'pregunta' => '¿Hay algún límite de compra?', @@ -335,6 +344,10 @@ class MenuSeeder extends Seeder $menuCodes = array_diff($menuCodes, $fiestaExcludedAdminMenuCodes); } + if ($tenant->codigo !== 'desfile_pura_tendencia') { + $menuCodes = array_diff($menuCodes, $desfileMenuCodes); + } + // Usar sync para asociar los menues al tenant $tenant->menues()->sync($menuCodes); diff --git a/routes/api.php b/routes/api.php index f7154be..b865e8a 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,3 +16,4 @@ require __DIR__.'/../app/Domains/Bootstrap/routes/api.php'; require __DIR__.'/../app/Domains/Forms/routes/api.php'; require __DIR__.'/../app/Domains/Staff/routes/api.php'; require __DIR__.'/../app/Domains/FiestaFutbolInfantil/routes/api.php'; +require __DIR__.'/../app/Domains/Desfile/routes/api.php';