feat(menu): update contact menu to dynamic content type and preserve legacy data for rollback
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
DB::table('menues')->where('code', 'help.contact')->update([
|
||||
'content_type' => 'dynamic',
|
||||
'static_content_schema' => null,
|
||||
]);
|
||||
// Preserve legacy pivot content for rollback; dynamic menus do not expose it.
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
DB::table('menues')->where('code', 'help.contact')->update([
|
||||
'content_type' => 'static',
|
||||
'static_content_schema' => json_encode([
|
||||
'whatsapp' => 'required|array',
|
||||
'whatsapp.whatsapp_url' => 'required|url',
|
||||
'whatsapp.whatsapp_label' => 'required|string',
|
||||
'phone' => 'required|string',
|
||||
'locations' => 'required|array|min:1',
|
||||
'locations.*.label' => 'required|string',
|
||||
'locations.*.addresses' => 'required|array|min:1',
|
||||
'locations.*.addresses.*' => 'required|array:label,address,coordinates',
|
||||
'locations.*.addresses.*.label' => 'required|string',
|
||||
'locations.*.addresses.*.address' => 'required|string',
|
||||
'locations.*.addresses.*.coordinates' => 'required|array|size:2',
|
||||
'locations.*.addresses.*.coordinates.0' => 'required|numeric|between:-90,90',
|
||||
'locations.*.addresses.*.coordinates.1' => 'required|numeric|between:-180,180',
|
||||
'map_locations' => 'prohibited',
|
||||
], JSON_THROW_ON_ERROR),
|
||||
]);
|
||||
}
|
||||
};
|
||||
@@ -224,23 +224,8 @@ class MenuSeeder extends Seeder
|
||||
'code' => 'help.contact',
|
||||
'label' => 'Contacto',
|
||||
'parent_menu_code' => 'help',
|
||||
'content_type' => Menu::CONTENT_TYPE_STATIC,
|
||||
'static_content_schema' => [
|
||||
'whatsapp' => 'required|array',
|
||||
'whatsapp.whatsapp_url' => 'required|url',
|
||||
'whatsapp.whatsapp_label' => 'required|string',
|
||||
'phone' => 'required|string',
|
||||
'locations' => 'required|array|min:1',
|
||||
'locations.*.label' => 'required|string',
|
||||
'locations.*.addresses' => 'required|array|min:1',
|
||||
'locations.*.addresses.*' => 'required|array:label,address,coordinates',
|
||||
'locations.*.addresses.*.label' => 'required|string',
|
||||
'locations.*.addresses.*.address' => 'required|string',
|
||||
'locations.*.addresses.*.coordinates' => 'required|array|size:2',
|
||||
'locations.*.addresses.*.coordinates.0' => 'required|numeric|between:-90,90',
|
||||
'locations.*.addresses.*.coordinates.1' => 'required|numeric|between:-180,180',
|
||||
'map_locations' => 'prohibited',
|
||||
],
|
||||
'content_type' => Menu::CONTENT_TYPE_DYNAMIC,
|
||||
'static_content_schema' => null,
|
||||
'route' => '/ayuda/contacto',
|
||||
],
|
||||
[
|
||||
@@ -399,30 +384,6 @@ class MenuSeeder extends Seeder
|
||||
'is_active' => false,
|
||||
],
|
||||
];
|
||||
$contactContent = [
|
||||
'whatsapp' => [
|
||||
'whatsapp_url' => 'https://wa.me/543412602222',
|
||||
'whatsapp_label' => 'Chatea con nosotros',
|
||||
],
|
||||
'phone' => '+54 9 (0341) 6658247',
|
||||
'locations' => [
|
||||
'rosario' => [
|
||||
'label' => 'Rosario',
|
||||
'addresses' => [
|
||||
[
|
||||
'label' => 'Gigante de Arroyito',
|
||||
'address' => 'Av. Génova 640, Rosario',
|
||||
'coordinates' => [-32.913997, -60.674567],
|
||||
],
|
||||
[
|
||||
'label' => 'Telepagos',
|
||||
'address' => 'Rioja 1150, piso 12, dpto. 3, Rosario',
|
||||
'coordinates' => [-32.946820, -60.639320],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
$mutualSmepFrequentlyAskedQuestions = [
|
||||
[
|
||||
'pregunta' => '¿Hay algún límite de compra?',
|
||||
@@ -440,25 +401,6 @@ class MenuSeeder extends Seeder
|
||||
'is_active' => false,
|
||||
],
|
||||
];
|
||||
$mutualSmepContactContent = [
|
||||
'whatsapp' => [
|
||||
'whatsapp_url' => 'https://wa.me/5493412474530',
|
||||
'whatsapp_label' => 'Chateá con Mutual SMEP',
|
||||
],
|
||||
'phone' => '+54 9 341 247-4530',
|
||||
'locations' => [
|
||||
'rosario' => [
|
||||
'label' => 'Rosario',
|
||||
'addresses' => [
|
||||
[
|
||||
'label' => 'Mutual SMEP',
|
||||
'address' => 'San Lorenzo 1543, Rosario, Santa Fe',
|
||||
'coordinates' => [-32.9431184, -60.6437991],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($tenants as $tenant) {
|
||||
$menuCodes = $allMenus;
|
||||
@@ -511,11 +453,6 @@ class MenuSeeder extends Seeder
|
||||
? $mutualSmepFrequentlyAskedQuestions
|
||||
: $frequentlyAskedQuestions,
|
||||
]);
|
||||
$tenant->menues()->updateExistingPivot('help.contact', [
|
||||
'static_content' => $tenant->codigo === 'mutual_smep'
|
||||
? $mutualSmepContactContent
|
||||
: $contactContent,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user