feat: Integrate DataForSEO for indexed pages tracking

- Updated CRON documentation to include DataForSEO metrics synchronization.
- Enhanced SettingsController to manage DataForSEO API credentials and settings.
- Modified SiteController to handle DataForSEO domain input.
- Updated Site model to accommodate DataForSEO data handling.
- Added methods in SiteSeoMetric model for DataForSEO data retrieval and validation.
- Implemented SiteSeoSyncService to synchronize SEO metrics from both SEMSTORM and DataForSEO.
- Enhanced dashboard templates to display indexed pages data.
- Updated settings and site creation/edit templates to include DataForSEO fields.
- Created migration for adding DataForSEO related columns in the database.
- Developed DataForSeoService to fetch indexed pages count from DataForSEO API.
This commit is contained in:
2026-02-21 11:41:17 +01:00
parent 10ddd2ac1c
commit b2aead1fbe
15 changed files with 541 additions and 219 deletions

View File

@@ -68,6 +68,7 @@ class SiteController extends Controller
'name' => $this->input('name'),
'url' => rtrim($this->input('url'), '/'),
'semstorm_domain' => $this->input('semstorm_domain') ?: null,
'dataforseo_domain' => $this->input('dataforseo_domain') ?: null,
'api_user' => $this->input('api_user'),
'api_token' => $this->input('api_token'),
'publish_interval_hours' => (int) ($this->input('publish_interval_hours', 24)),
@@ -149,6 +150,7 @@ class SiteController extends Controller
'name' => $this->input('name'),
'url' => rtrim($this->input('url'), '/'),
'semstorm_domain' => $this->input('semstorm_domain') ?: null,
'dataforseo_domain' => $this->input('dataforseo_domain') ?: null,
'api_user' => $this->input('api_user'),
'api_token' => $this->input('api_token'),
'publish_interval_hours' => (int) ($this->input('publish_interval_hours', 24)),