'datetime', ]; } public function registerMediaCollections(): void { $this->addMediaCollection('assignment_attachment')->singleFile(); } public function courseClass(): BelongsTo { return $this->belongsTo(CourseClass::class); } public function submissions(): HasMany { return $this->hasMany(Submission::class); } protected function attachmentUrl(): Attribute { return Attribute::make( get: fn () => $this->getFirstMediaUrl('assignment_attachment') ?: null, ); } protected function attachmentName(): Attribute { return Attribute::make( get: fn () => $this->getFirstMedia('assignment_attachment')?->file_name, ); } }