feat(desfile): add routes and migration for desfile entries in admin app menu

This commit is contained in:
2026-08-13 11:06:31 -03:00
parent 97995ae728
commit 329e0b1953
5 changed files with 124 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
<?php
// Desfile tenant routes will be registered here.

View File

@@ -0,0 +1,78 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
private const MENU_CODE = 'adminapp.desfile.entradas';
private const TENANT_CODE = 'desfile_pura_tendencia';
public function up(): void
{
if (! DB::table('menues')->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();
});
}
};

View File

@@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
private const MENU_CODE = 'adminapp.desfile.entradas';
public function up(): void
{
DB::table('menues')
->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(),
]);
}
};

View File

@@ -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);

View File

@@ -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';