AdGroup.php 3.86 KB
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

/**
 * App\Models\AdGroup
 *
 * @property int $id
 * @property int $campaign_id
 * @property int $external_id
 * @property int $campaign_external_id
 * @property string|null $name
 * @property string|null $tracking_params
 * @property string|null $status
 * @property string|null $serving_status
 * @property string|null $type
 * @property string|null $sub_type
 * @property array|null $restricted_region_ids
 * @property array|null $region_ids
 * @property array|null $negative_keywords
 * @property array|null $negative_keyword_shared_set_ids
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup query()
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereCampaignExternalId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereCampaignId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereExternalId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereName($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereNegativeKeywordSharedSetIds($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereNegativeKeywords($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereRegionIds($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereRestrictedRegionIds($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereServingStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereSubType($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereTrackingParams($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereType($value)
 * @method static \Illuminate\Database\Eloquent\Builder|AdGroup whereUpdatedAt($value)
 * @mixin \Eloquent
 */
class AdGroup extends Model
{
    const STATUS_ACCEPTED = 'ACCEPTED';
    const STATUS_DRAFT = 'DRAFT';
    const STATUS_MODERATION = 'MODERATION';
    const STATUS_PREACCEPTED = 'PREACCEPTED';
    const STATUS_REJECTED = 'REJECTED';

    const SERVING_ELIGIBLE = 'ELIGIBLE';
    const SERVING_RARELY_SERVED = 'RARELY_SERVED';

    const TYPE_TEXT_AD_GROUP = 'TEXT_AD_GROUP';
    const TYPE_MOBILE_APP_AD_GROUP = 'MOBILE_APP_AD_GROUP';
    const TYPE_DYNAMIC_TEXT_AD_GROUP = 'DYNAMIC_TEXT_AD_GROUP';
    const TYPE_CPM_BANNER_AD_GROUP = 'CPM_BANNER_AD_GROUP';
    const TYPE_CPM_VIDEO_AD_GROUP = 'CPM_VIDEO_AD_GROUP';
    const TYPE_SMART_AD_GROUP = 'SMART_AD_GROUP';


    const SUB_TYPE_WEBPAGE = 'WEBPAGE';
    const SUB_TYPE_FEED = 'FEED';
    const SUB_TYPE_NONE = 'NONE';
    const SUB_TYPE_KEYWORDS = 'KEYWORDS';
    const SUB_TYPE_USER_PROFILE = 'USER_PROFILE';


    protected $fillable = [
        'campaign_id',
        'external_id',
        'campaign_external_id',
        'name',
        'status',
        'type',
        'sub_type',
        'serving_status',
        'restricted_region_ids',
        'region_ids',
        'negative_keywords',
        'negative_keyword_shared_set_ids',
        'tracking_params',
    ];

    protected $casts = [
        'campaign_id' => 'int',
        'external_id' => 'int',
        'campaign_external_id' => 'int',
        'restricted_region_ids' => 'json',
        'region_ids' => 'array',
        'negative_keywords' => 'json',
        'negative_keyword_shared_set_ids' => 'json',
    ];
}