trove/app/Models/PageCrawl.php

41 lines
896 B
PHP

<?php
declare(strict_types=1);
namespace App\Models;
use App\Enums\CrawlOutcomeEnum;
use Database\Factories\PageCrawlFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class PageCrawl extends Model
{
/** @use HasFactory<PageCrawlFactory> */
use HasFactory;
protected $fillable = [
'page_id',
'domain',
'priority',
'scheduled_for',
'completed_at',
'outcome',
'status_code',
'error_message',
'locked_at',
];
protected $casts = [
'scheduled_for' => 'datetime',
'completed_at' => 'datetime',
'outcome' => CrawlOutcomeEnum::class,
'locked_at' => 'datetime',
];
public function page(): BelongsTo
{
return $this->belongsTo(Page::class);
}
}