fedi-feed-router/backend/app/Models/Route.php

67 lines
1.5 KiB
PHP

<?php
namespace App\Models;
use Database\Factories\RouteFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\Pivot;
use Illuminate\Support\Carbon;
/**
* @property int $feed_id
* @property int $platform_channel_id
* @property bool $is_active
* @property int $priority
* @property array<string, mixed> $filters
* @property Carbon $created_at
* @property Carbon $updated_at
*/
class Route extends Pivot
{
/** @use HasFactory<RouteFactory> */
use HasFactory;
protected $table = 'routes';
public $incrementing = false;
protected $fillable = [
'feed_id',
'platform_channel_id',
'is_active',
'priority',
'filters'
];
protected $casts = [
'is_active' => 'boolean',
'filters' => 'array'
];
/**
* @return BelongsTo<Feed, $this>
*/
public function feed(): BelongsTo
{
return $this->belongsTo(Feed::class);
}
/**
* @return BelongsTo<PlatformChannel, $this>
*/
public function platformChannel(): BelongsTo
{
return $this->belongsTo(PlatformChannel::class);
}
/**
* @return HasMany<Keyword, $this>
*/
public function keywords(): HasMany
{
return $this->hasMany(Keyword::class, 'feed_id', 'feed_id')
->where('platform_channel_id', $this->platform_channel_id);
}
}