feat(event): restore event model and migrate tenant event data

This commit is contained in:
2026-09-18 11:31:51 -03:00
parent 1e67d27a90
commit 0170a2eabb
13 changed files with 339 additions and 81 deletions

View File

@@ -20,6 +20,7 @@ use Illuminate\Support\Carbon;
#[Fillable([
'tenant_code',
'event_id',
'date',
'time_start',
'time_end',
@@ -37,16 +38,16 @@ class EventDate extends Model
protected static function booted(): void
{
static::creating(fn (self $eventDate) => $eventDate->syncValidityTime());
static::created(fn (self $eventDate) => $eventDate->syncTenantDateText());
static::created(fn (self $eventDate) => $eventDate->syncEventDateText());
static::updated(function (self $eventDate): void {
if ($eventDate->wasChanged(['date', 'time_start', 'time_end'])) {
$eventDate->syncValidityTime();
}
$eventDate->syncTenantDateText();
$eventDate->syncEventDateText();
});
static::deleted(function (self $eventDate): void {
$eventDate->syncTenantDateText();
$eventDate->syncEventDateText();
ValidityTime::query()
->whereKey($eventDate->validity_time_id)
->delete();
@@ -58,6 +59,7 @@ class EventDate extends Model
return [
'date' => 'date:Y-m-d',
'validity_time_id' => 'integer',
'event_id' => 'integer',
'rescheduled_to_event_date_id' => 'integer',
'suspended_at' => 'datetime',
];
@@ -69,6 +71,12 @@ class EventDate extends Model
return $this->belongsTo(Tenant::class, 'tenant_code', 'codigo');
}
/** @return BelongsTo<Event, $this> */
public function event(): BelongsTo
{
return $this->belongsTo(Event::class);
}
/** @return BelongsTo<ValidityTime, $this> */
public function validityTime(): BelongsTo
{
@@ -156,17 +164,17 @@ class EventDate extends Model
return EventDateStatus::Completed;
}
private function syncTenantDateText(): void
private function syncEventDateText(): void
{
$tenant = $this->tenant()->first();
$event = $this->event()->first();
if (! $tenant) {
if (! $event) {
return;
}
$tenant->update([
'event_date_text' => app(EventDateTextFormatter::class)->format(
$tenant->eventDates()
$event->update([
'date_text' => app(EventDateTextFormatter::class)->format(
$event->dates()
->whereNull('rescheduled_to_event_date_id')
->whereNull('suspended_at')
->pluck('date')