Files
Virtnet.bond/extensions/Others/ComplianceTools/Models/AccountDeletionRequest.php
2025-11-30 11:57:22 +01:00

64 lines
1.4 KiB
PHP

<?php
namespace Paymenter\Extensions\Others\ComplianceTools\Models;
use App\Models\User;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;
class AccountDeletionRequest extends Model
{
public const STATUS_PENDING = 'pending';
public const STATUS_APPROVED = 'approved';
public const STATUS_DENIED = 'denied';
public const STATUS_COMPLETED = 'completed';
protected $table = 'ext_compliance_deletion_requests';
protected $fillable = [
'user_id',
'status',
'reason',
'admin_notes',
'processed_by',
'processed_at',
'snapshot',
'metadata',
];
protected $casts = [
'processed_at' => 'datetime',
'snapshot' => 'array',
'metadata' => 'array',
];
public function user()
{
return $this->belongsTo(User::class);
}
public function processor()
{
return $this->belongsTo(User::class, 'processed_by');
}
public function isPending(): Attribute
{
return Attribute::make(
get: fn () => $this->status === self::STATUS_PENDING,
);
}
public function isApproved(): Attribute
{
return Attribute::make(
get: fn () => $this->status === self::STATUS_APPROVED,
);
}
public function scopePending($query)
{
return $query->where('status', self::STATUS_PENDING);
}
}