diff --git a/database/seeders/FiestaFutbolInfantilProductSeeder.php b/database/seeders/FiestaFutbolInfantilProductSeeder.php index 5a518a7..f6c70dd 100644 --- a/database/seeders/FiestaFutbolInfantilProductSeeder.php +++ b/database/seeders/FiestaFutbolInfantilProductSeeder.php @@ -10,8 +10,11 @@ use App\Domains\Catalog\Models\CatalogItem; use App\Domains\Catalog\Models\Category; use App\Domains\Catalog\Models\FeaturedGroup; use App\Domains\Catalog\Services\CatalogService; +use App\Domains\Event\Models\EventDate; use App\Domains\Tenant\Models\Tenant; use App\Domains\Ticket\Enums\TicketGenerationPolicy; +use App\Domains\Ticket\Enums\ValidityTimeType; +use App\Domains\Ticket\Models\ValidityTime; use Illuminate\Database\Seeder; use RuntimeException; @@ -47,13 +50,30 @@ class FiestaFutbolInfantilProductSeeder extends Seeder 'event_location' => 'Sunchales, Santa Fe', ]); + $existingValidityTimeIds = $tenant->eventDates()->pluck('validity_time_id'); $tenant->eventDates()->delete(); + ValidityTime::query()->whereKey($existingValidityTimeIds)->delete(); + $eventDates = collect(['2026-10-09', '2026-10-10', '2026-10-11', '2026-10-12']) - ->map(fn (string $date) => $tenant->eventDates()->create([ - 'date' => $date, - 'time_start' => '00:00:00', - 'time_end' => '23:59:59', - ])); + ->map(function (string $date) use ($tenant): EventDate { + $validityTime = ValidityTime::query()->create([ + 'type' => ValidityTimeType::FixedWindow, + 'start_time' => null, + 'end_time' => null, + 'fixed_starts_at' => $date.' 00:00:00', + 'fixed_expires_at' => $date.' 23:59:59', + ]); + + $eventDate = new EventDate; + $eventDate->forceFill([ + 'date' => $date, + 'time_start' => '00:00:00', + 'time_end' => '23:59:59', + 'validity_time_id' => $validityTime->id, + ]); + + return $tenant->eventDates()->save($eventDate); + }); $dateIds = $eventDates->pluck('id')->map(fn ($id): int => (int) $id)->values(); $this->createProduct($tenant, [ diff --git a/database/seeders/TenantSeeder.php b/database/seeders/TenantSeeder.php index 3721fc5..6500d33 100644 --- a/database/seeders/TenantSeeder.php +++ b/database/seeders/TenantSeeder.php @@ -128,8 +128,8 @@ class TenantSeeder extends Seeder 'button_text' => 'Comprar entradas', 'button_href' => '/tickets', 'background_image_id' => $this->uploadedImage( - 'images/tennants/fiesta_futbol_infantil/futbol_infantil_hero.jpg', - 'futbol_infantil_hero.jpg', + 'images/tennants/fiesta_futbol_infantil/futbol_infantil_hero.png', + 'futbol_infantil_hero.png', ), ], 'eventConfig' => [ diff --git a/tests/Feature/Seeders/FiestaFutbolInfantilProductSeederTest.php b/tests/Feature/Seeders/FiestaFutbolInfantilProductSeederTest.php index 0a5ceee..4fb1e96 100644 --- a/tests/Feature/Seeders/FiestaFutbolInfantilProductSeederTest.php +++ b/tests/Feature/Seeders/FiestaFutbolInfantilProductSeederTest.php @@ -13,6 +13,8 @@ use App\Domains\Catalog\Models\Category; use App\Domains\Catalog\Models\FeaturedGroup; use App\Domains\Tenant\Models\Tenant; use App\Domains\Ticket\Enums\TicketGenerationPolicy; +use App\Domains\Ticket\Enums\ValidityTimeType; +use App\Domains\Ticket\Models\ValidityTime; use Database\Seeders\AttributeSeeder; use Database\Seeders\FiestaFutbolInfantilProductSeeder; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -44,6 +46,14 @@ class FiestaFutbolInfantilProductSeederTest extends TestCase $this->seed([AttributeSeeder::class, FiestaFutbolInfantilProductSeeder::class]); $this->assertSame('9, 10, 11 y 12 de Octubre 2026', $tenant->fresh()->event_date_text); + $this->assertCount(4, $tenant->eventDates); + $this->assertCount(4, ValidityTime::query()->whereHas('eventDate', fn ($query) => $query + ->where('tenant_code', $tenant->codigo))->get()); + $this->assertTrue($tenant->eventDates()->with('validityTime')->get()->every( + fn ($eventDate): bool => $eventDate->validityTime->type === ValidityTimeType::FixedWindow + && $eventDate->validityTime->fixed_starts_at->format('Y-m-d H:i:s') === $eventDate->date->format('Y-m-d').' 00:00:00' + && $eventDate->validityTime->fixed_expires_at->format('Y-m-d H:i:s') === $eventDate->date->format('Y-m-d').' 23:59:59' + )); $this->assertSame( ['color', 'event_date', 'horario', 'servicio', 'talle', 'tipo_alojamiento'],