presseportale/app/Models/WithdrawalRequest.php
Kevin Adametz d6461f5c5e Admin: Widerrufe laufen in der Recht-&-Compliance-Queue auf
Eigene Widerrufe-Sektion unter der Anfragen-Tabelle in
/admin/legal-requests: Vorgangsnummer, Zuordnungsdaten, Statusfilter
(offen/alle/erledigt, eigener Paginator), Erledigt/Wieder-oeffnen-Aktion
mit resolved_at; KPI-Karte "Offene Widerrufe". Dazu
WithdrawalRequest-Factory (+resolved-State) fuer die Tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:29:32 +00:00

40 lines
907 B
PHP

<?php
namespace App\Models;
use Database\Factories\WithdrawalRequestFactory;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
/**
* Online-Widerruf über den gesetzlichen Widerrufsbutton (ohne Login).
* Enthält nur Zuordnungsdaten — ein Widerrufsgrund darf nicht erhoben werden.
*/
class WithdrawalRequest extends Model
{
/** @use HasFactory<WithdrawalRequestFactory> */
use HasFactory;
protected $fillable = [
'name',
'email',
'order_reference',
'host',
'requester_ip',
'status',
'resolved_at',
];
protected function casts(): array
{
return [
'resolved_at' => 'datetime',
];
}
public function scopeOpen(Builder $query): Builder
{
return $query->where('status', 'open');
}
}