Files
ploi-core/app/Models/Package.php
2021-07-12 12:26:21 +02:00

54 lines
1.2 KiB
PHP

<?php
namespace App\Models;
use App\Casts\PermissionCast;
use Illuminate\Database\Eloquent\Model;
class Package extends Model
{
const CURRENCY_EURO = 'eur';
const CURRENCY_USD = 'usd';
const CURRENCY_NOK = 'nok';
const CURRENCY_AUD = 'aud';
const CURRENCY_CAD = 'cad';
const CURRENCY_GBP = 'gbp';
const CURRENCY_INR = 'inr';
const CURRENCY_THB = 'thb';
public $fillable = [
'name',
'plan_id', // This does not reflect a internal database relation, it reflects the plan ID from the PSP
'currency',
'price_hourly',
'price_monthly',
'price_yearly',
'maximum_sites',
'maximum_servers',
'site_permissions',
'server_permissions'
];
public $casts = [
'site_permissions' => PermissionCast::class,
'server_permissions' => PermissionCast::class,
];
public function users()
{
return $this->hasMany(User::class);
}
public function providers()
{
return $this->belongsToMany(Provider::class);
}
protected static function booted()
{
static::deleting(function ($package) {
$package->users()->update(['package_id' => null]);
});
}
}