fedi-feed-router/backend/src/Domains/Settings/Models/Language.php
2025-08-15 21:54:44 +02:00

62 lines
1.5 KiB
PHP

<?php
namespace Domains\Settings\Models;
use Domains\Feed\Models\Feed;
use Domains\Platform\Models\PlatformChannel;
use Domains\Platform\Models\PlatformInstance;
use Domains\Settings\Factories\LanguageFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Language extends Model
{
/** @use HasFactory<LanguageFactory> */
use HasFactory;
protected static function newFactory()
{
return \Domains\Settings\Factories\LanguageFactory::new();
}
protected $fillable = [
'short_code',
'name',
'native_name',
'is_active'
];
protected $casts = [
'is_active' => 'boolean'
];
/**
* @return BelongsToMany<PlatformInstance, $this>
*/
public function platformInstances(): BelongsToMany
{
return $this->belongsToMany(PlatformInstance::class)
->withPivot(['platform_language_id', 'is_default'])
->withTimestamps();
}
/**
* @return HasMany<PlatformChannel, $this>
*/
public function platformChannels(): HasMany
{
return $this->hasMany(PlatformChannel::class);
}
/**
* @return BelongsToMany<Feed, $this>
*/
public function feeds(): BelongsToMany
{
return $this->belongsToMany(Feed::class, 'feed_languages')
->withPivot(['url', 'settings', 'is_active', 'is_primary'])
->withTimestamps();
}
}