Files
newznab-tmux/app/Models/Invitation.php
T
2018-02-02 13:42:41 +01:00

64 lines
1.4 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Model;
class Invitation extends Model
{
public const DEFAULT_INVITES = 1;
public const DEFAULT_INVITE_EXPIRY_DAYS = 7;
/**
* @var bool
*/
public $timestamps = false;
/**
* @var bool
*/
protected $dateFormat = false;
/**
* @var array
*/
protected $guarded = ['id'];
public function user()
{
return $this->belongsTo(User::class, 'users_id');
}
/**
* @param int $uid
* @param string $inviteToken
*/
public static function addInvite(int $uid, string $inviteToken)
{
self::create(['guid' => $inviteToken, 'users_id' => $uid]);
}
/**
* @param $inviteToken
* @return \Illuminate\Database\Eloquent\Model|null|static
*/
public static function getInvite($inviteToken)
{
//
// Tidy any old invites sent greater than DEFAULT_INVITE_EXPIRY_DAYS days ago.
//
self::query()->where('created_at', '<', Carbon::now()->subDays(self::DEFAULT_INVITE_EXPIRY_DAYS));
return self::query()->where('guid', $inviteToken)->first();
}
/**
* @param $inviteToken
*/
public static function deleteInvite(string $inviteToken): void
{
self::query()->where('guid', $inviteToken)->delete();
}
}