move into sonardesk

This commit is contained in:
Mark Gregory
2026-10-12 14:50:13 +01:00
parent 5f0d2ceb72
commit 38b4a7406f
879 changed files with 24021 additions and 1 deletions
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace Modules\Sites\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
final class Site extends Model
{
protected $fillable = ['name', 'key', 'status', 'theme', 'default_locale', 'timezone', 'is_default'];
protected function casts(): array
{
return ['is_default' => 'boolean'];
}
public function domains(): HasMany
{
return $this->hasMany(SiteDomain::class);
}
public function settings(): HasMany
{
return $this->hasMany(SiteSetting::class);
}
public function assignments(): HasMany
{
return $this->hasMany(SiteContent::class);
}
public function scopeActive(Builder $query): Builder
{
return $query->where('status', 'active');
}
public function setting(string $key, mixed $default = null): mixed
{
$setting = $this->relationLoaded('settings') ? $this->settings->firstWhere('key', $key) : $this->settings()->where('key', $key)->first();
return $setting?->typedValue() ?? $default;
}
}