'date', 'end_date' => 'date', ]; } public function organisation(): BelongsTo { return $this->belongsTo(Organisation::class); } public function users(): BelongsToMany { return $this->belongsToMany(User::class, 'event_user_roles') ->withPivot('role') ->withTimestamps(); } public function invitations(): HasMany { return $this->hasMany(UserInvitation::class); } public function locations(): HasMany { return $this->hasMany(Location::class); } public function festivalSections(): HasMany { return $this->hasMany(FestivalSection::class); } public function timeSlots(): HasMany { return $this->hasMany(TimeSlot::class); } public function persons(): HasMany { return $this->hasMany(Person::class); } public function crowdLists(): HasMany { return $this->hasMany(CrowdList::class); } public function scopeDraft(Builder $query): Builder { return $query->where('status', 'draft'); } public function scopePublished(Builder $query): Builder { return $query->where('status', 'published'); } public function scopeActive(Builder $query): Builder { return $query->whereIn('status', ['showday', 'buildup', 'teardown']); } }