Campaigns.php 1.26 KB
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Campaigns extends Model
{
    use HasFactory;

    protected $fillable = [
        'external_id',
        'token',
        'name',
        'time_targeting',
        'negative_keywords',
        'blocked_ips',
        'excluded_sites',
        'daily_budget',
        'text_campaign_strategy_search',
        'text_campaign_strategy_network',
        'settings',
        'counter_ids',
        'relevant_keywords_setting_budget_percent',
        'relevant_keywords_setting_optimize_goal_id',
        'attribution_model',
        'updated',
        'manage',
        'enabled',
    ];

    protected $casts = [
        'external_id' => 'int',
        'manage' => 'boolean',
        'enabled' => 'boolean',
        'groups_loaded_at' => 'datetime',
    ];

    public function scopeForUpdated($query)
    {
        $query->whereNotNull('updated');
    }

    public function scopeForGroupsLoadable($query)
    {
        $query->whereNull('groups_loaded_at');
    }

    public function scopeForManaged($query)
    {
        $query->where('manage', true);
    }

    public function scopeNotForManaged($query)
    {
        $query->where('manage', false);
    }
}