'string', 'reference_number' => 'string', 'description' => 'string', 'start_datetime' => 'datetime', 'end_datetime' => 'datetime', 'organizer' => 'string', 'location' => 'string', 'is_active' => 'boolean', ]; } public function activityType(): BelongsTo { return $this->belongsTo(ActivityType::class); } public function reports(): HasMany { return $this->hasMany(ActivityReport::class)->orderByDesc('created_at'); } public function galleryImages(): MorphMany { return $this->documents()->where('type', self::GALLERY_DOCUMENT_TYPE); } public function attachments(): MorphMany { return $this->documents()->where('type', '!=', self::GALLERY_DOCUMENT_TYPE); } }