feat: Add event management to tenant and catalog

- Introduced Event and EventDate models with relationships to Tenant and CatalogItem.
- Added active_event_id to Tenant model to track the currently active event.
- Updated TenantResource to include active event details in the response.
- Enhanced Ticket model to link to CatalogItem and Variant, allowing for event-specific ticketing.
- Implemented migrations to create events and link them to catalog items and variants.
- Updated seeders to populate events and their associated dates for the Fiesta Futbol Infantil tenant.
- Modified Ticket generation logic to respect event dates over standard ticket dates.
- Added tests for event and ticket functionalities, ensuring proper relationships and date handling.
This commit is contained in:
2026-08-03 12:01:20 -03:00
parent 4a51f3afde
commit c3713c62a6
30 changed files with 736 additions and 107 deletions

View File

@@ -128,7 +128,8 @@ class TicketGeneratorServiceTest extends TestCase
$tickets = $this->service->generate($bundle, $this->user, 2);
$this->assertCount(6, $tickets);
$this->assertCount(6, $tickets->where('source_catalog_item_id', $bundle->id));
$this->assertCount(4, $tickets->where('source_catalog_item_id', $first->id));
$this->assertCount(2, $tickets->where('source_catalog_item_id', $second->id));
$this->assertCount(4, $tickets->where('name', $first->nombre));
$this->assertCount(2, $tickets->where('name', $second->nombre));
}
@@ -157,6 +158,8 @@ class TicketGeneratorServiceTest extends TestCase
->generate($bundle, $this->user)
->firstOrFail();
$this->assertSame($component->id, $ticket->source_catalog_item_id);
$this->assertSame($variant->id, $ticket->source_variant_id);
$this->assertTrue($ticket->starts_at->equalTo($variant->minimum_use_date));
$this->assertTrue($ticket->expires_at->equalTo($variant->maximum_use_date));
}