*/ use HasFactory; protected $fillable = [ 'feed_id', 'platform_channel_id', 'article_id', 'approval_status', 'validated_at', ]; protected $casts = [ 'validated_at' => 'datetime', ]; /** * @return BelongsTo */ public function route(): BelongsTo { return $this->belongsTo(Route::class, 'feed_id', 'feed_id') ->where('platform_channel_id', $this->platform_channel_id); } /** * @return BelongsTo */ public function article(): BelongsTo { return $this->belongsTo(Article::class); } /** * @return BelongsTo */ public function feed(): BelongsTo { return $this->belongsTo(Feed::class); } /** * @return BelongsTo */ public function platformChannel(): BelongsTo { return $this->belongsTo(PlatformChannel::class); } public function isPending(): bool { return $this->approval_status === 'pending'; } public function isApproved(): bool { return $this->approval_status === 'approved'; } public function isRejected(): bool { return $this->approval_status === 'rejected'; } public function approve(): void { $this->update(['approval_status' => 'approved']); } public function reject(): void { $this->update(['approval_status' => 'rejected']); } }