Files
SkinbaseNova/.deploy/artwork-evolution-release/app/Models/GroupJoinRequest.php
2026-04-18 17:02:56 +02:00

55 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class GroupJoinRequest extends Model
{
use HasFactory;
public const STATUS_PENDING = 'pending';
public const STATUS_APPROVED = 'approved';
public const STATUS_REJECTED = 'rejected';
public const STATUS_WITHDRAWN = 'withdrawn';
public const STATUS_EXPIRED = 'expired';
protected $fillable = [
'group_id',
'user_id',
'message',
'portfolio_url',
'desired_role',
'skills_json',
'status',
'reviewed_by_user_id',
'review_notes',
'reviewed_at',
'expires_at',
];
protected $casts = [
'skills_json' => 'array',
'reviewed_at' => 'datetime',
'expires_at' => 'datetime',
];
public function group(): BelongsTo
{
return $this->belongsTo(Group::class);
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function reviewedBy(): BelongsTo
{
return $this->belongsTo(User::class, 'reviewed_by_user_id');
}
}