CrawlTargetModule::class, 'enabled' => 'boolean', 'entry_urls' => 'array', 'headers' => 'array', 'cookies' => 'array', 'extractor_config' => 'array', 'mapping_config' => 'array', 'dedupe_config' => 'array', 'render_js' => 'boolean', 'ai_fallback_enabled' => 'boolean', 'last_run_at' => 'datetime', 'next_run_at' => 'datetime', ]; } public function runs(): HasMany { return $this->hasMany(CrawlRun::class, 'rule_id'); } public function alerts(): HasMany { return $this->hasMany(CrawlAlert::class, 'rule_id'); } }