|null $mka_bezug * @property NachtragStatus $status * @property int|null $zugewiesen_an * @property CarbonImmutable|null $created_at * @property CarbonImmutable|null $updated_at */ #[Table('nachtraege')] #[Fillable(['vertrag_id', 'nummer', 'eingang_am', 'betreff', 'mka_bezug', 'status', 'zugewiesen_an'])] class Nachtrag extends Model { /** @use HasFactory */ use ErbtZuordnung, HasFactory; /** * @return array */ protected function casts(): array { return [ 'land' => Land::class, 'eingang_am' => 'date', 'mka_bezug' => 'array', 'status' => NachtragStatus::class, ]; } protected function zuordnungsEltern(): ?Model { return $this->vertrag()->first(); } /** @return BelongsTo */ public function projekt(): BelongsTo { return $this->belongsTo(Projekt::class); } /** @return BelongsTo */ public function vertrag(): BelongsTo { return $this->belongsTo(Vertrag::class); } /** @return BelongsTo */ public function zugewiesenAn(): BelongsTo { return $this->belongsTo(User::class, 'zugewiesen_an'); } /** @return HasMany */ public function positionen(): HasMany { return $this->hasMany(Nachtragsposition::class)->orderBy('sortierung')->orderBy('id'); } /** @return MorphMany */ public function dokumente(): MorphMany { return $this->morphMany(Dokument::class, 'dokumentable'); } }