Files
ploi-core/app/Models/Server.php

71 lines
1.4 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Server extends Model
{
const STATUS_BUSY = 'busy';
const STATUS_ACTIVE = 'active';
public $fillable = [
'ploi_id',
'status',
'name',
'ip',
'internal_ip',
'ssh_port',
'maximum_sites',
'available_php_versions',
'database_type'
];
protected $casts = [
'available_php_versions' => 'array'
];
public function sites()
{
return $this->hasMany(Site::class);
}
public function users()
{
return $this->morphToMany(User::class, 'service', 'user_service')
->using(UserService::class)
->withTimestamps();
}
public function logs()
{
return $this->morphMany(SystemLog::class, 'model');
}
public function provider()
{
return $this->belongsTo(Provider::class);
}
public function providerRegion()
{
return $this->belongsTo(ProviderRegion::class);
}
public function providerPlan()
{
return $this->belongsTo(ProviderPlan::class);
}
public static function booted()
{
static::deleting(function (self $server) {
foreach ($server->sites as $site) {
$site->delete();
}
$server->logs()->delete();
});
}
}