*/ use ErbtZuordnung, HasFactory; /** * @return array */ protected function casts(): array { return [ 'land' => Land::class, 'vertrag_vom' => 'date', ]; } protected static function booted(): void { static::saving(function (Vertrag $vertrag): void { $auftragnehmer = $vertrag->auftragnehmer()->first(); if ($auftragnehmer !== null) { $vertrag->gleicheZuordnungAn($auftragnehmer, [ 'mandant_id' => $auftragnehmer->mandant_id, 'land' => $auftragnehmer->land, ]); } }); } protected function zuordnungsEltern(): ?Model { return $this->abschnitt()->first(); } /** @return BelongsTo */ public function projekt(): BelongsTo { return $this->belongsTo(Projekt::class); } /** @return BelongsTo */ public function abschnitt(): BelongsTo { return $this->belongsTo(Abschnitt::class); } /** @return BelongsTo */ public function auftragnehmer(): BelongsTo { return $this->belongsTo(Auftragnehmer::class); } /** @return HasMany */ public function leistungsverzeichnisse(): HasMany { return $this->hasMany(Leistungsverzeichnis::class); } /** @return HasMany */ public function nachtraege(): HasMany { return $this->hasMany(Nachtrag::class); } /** @return MorphMany */ public function dokumente(): MorphMany { return $this->morphMany(Dokument::class, 'dokumentable'); } }