'datetime', ]; } /** * Freischein für die Löschung nach Fristende des Beweisarchivs * (Umsetzungsaudit 25.09.2026, 5.1 a). Nie von außen setzen. */ public bool $purgingAfterArchive = false; protected static function booted(): void { static::updating(fn () => throw new \LogicException('image_declaration_corrections ist insert-only.')); static::deleting(function (self $correction): void { if (! $correction->purgingAfterArchive) { throw new \LogicException('image_declaration_corrections wird nicht gelöscht; nur Kopien nach Fristende des Beweisarchivs (purgeAfterArchive) dürfen verschwinden.'); } }); } /** * Löschung nach Fristende des Beweisarchivs (5.1 a). */ public function purgeAfterArchive(): void { $this->purgingAfterArchive = true; $this->delete(); } /** * @return BelongsTo */ public function image(): BelongsTo { return $this->belongsTo(PressReleaseImage::class, 'press_release_image_id'); } /** * @return BelongsTo */ public function admin(): BelongsTo { return $this->belongsTo(User::class, 'admin_id'); } }