authentikate/app/Models/Invitation.php
Javier Feliz 8c3c2105dd
Some checks failed
linter / quality (push) Successful in 3m22s
tests / ci (push) Failing after 7m42s
Ability to remove invitations
2025-08-02 00:28:49 -04:00

42 lines
850 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Invitation extends Model
{
protected $guarded = ['id'];
protected $casts = [
'expires_at' => 'datetime',
'accepted_at' => 'datetime'
];
public function status(): string
{
return !empty($this->accepted_at) ? 'accepted' : 'pending';
}
public function isPending(): bool
{
return empty($this->accepted_at);
}
public function accept(): void
{
$this->accepted_at = now();
$this->save();
}
public function creator(): BelongsTo
{
return $this->belongsTo(User::class, 'invited_by', 'id');
}
public function getInviteUrl(): string
{
return route('register', ['code' => $this->code]);
}
}