- Added `ticket_generation_policy` column to `catalog_items` table to manage ticket generation strategies. - Created `ticket_validity_times` table to allow multiple validity times per ticket. - Introduced `validity_time_id` column in `event_dates` table to associate event dates with validity times. - Established `ticket_validity_groups` and `ticket_validity_group_times` tables to group validity times for tickets. - Updated seeder to set default ticket generation policy for specific tenant. - Enhanced tests to cover new functionality, including ticket generation based on event dates and validity times. - Refactored ticket validity checks to accommodate multiple validity times in a group.
25 lines
737 B
PHP
25 lines
737 B
PHP
<?php
|
|
|
|
namespace App\Domains\Ticket\Resources;
|
|
|
|
use App\Domains\Ticket\Models\TicketValidityGroup;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
|
|
/** @mixin TicketValidityGroup */
|
|
class TicketValidityGroupResource extends JsonResource
|
|
{
|
|
/** @return array<string, mixed> */
|
|
public function toArray(Request $request): array
|
|
{
|
|
return [
|
|
'id' => $this->id,
|
|
'validity_times' => ValidityTimeResource::collection($this->resolvedValidityTimes()),
|
|
'starts_at' => $this->effectiveStartsAt(),
|
|
'expires_at' => $this->effectiveExpiresAt(),
|
|
'is_valid' => $this->isValid(),
|
|
'is_expired' => $this->isExpired(),
|
|
];
|
|
}
|
|
}
|