Keyword.php
5.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?php
namespace App\Models;
use App\Models\Pivots\GoalKeyword;
use App\Models\Pivots\GoalKeywordDelete;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Collection;
/**
* App\Models\Keyword
*
* @property int $id
* @property int $external_id
* @property int $ad_group_external_id
* @property int $campaign_external_id
* @property int $ad_group_id
* @property int $campaign_id
* @property string|null $keyword
* @property string|null $user_param_1
* @property string|null $user_param_2
* @property int|null $bid
* @property int|null $context_bid
* @property string|null $strategy_priority
* @property string|null $state
* @property string|null $status
* @property string|null $serving_status
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Models\Campaigns $campaign
* @property-read \Illuminate\Database\Eloquent\Collection|GoalKeyword[] $goalKeywords
* @property-read int|null $goal_keywords_count
* @property-read \App\Models\AdGroup $group
* @method static \Illuminate\Database\Eloquent\Builder|Keyword newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Keyword newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Keyword query()
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereAdGroupExternalId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereAdGroupId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereBid($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereCampaignExternalId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereCampaignId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereContextBid($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereExternalId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereKeyword($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereServingStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereState($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereUserParam1($value)
* @method static \Illuminate\Database\Eloquent\Builder|Keyword whereUserParam2($value)
* @mixin \Eloquent
*/
class Keyword extends Model
{
use SoftDeletes;
const STRATEGY_PRIORITY_LOW = 'LOW';
const STRATEGY_PRIORITY_NORMAL = 'NORMAL';
const STRATEGY_PRIORITY_HIGH = 'HIGH';
const STATE_OFF = 'OFF';
const STATE_ON = 'ON';
const STATE_SUSPENDED = 'SUSPENDED';
const STATUS_ACCEPTED = 'ACCEPTED';
const STATUS_DRAFT = 'DRAFT';
const STATUS_REJECTED = 'REJECTED';
const STATUS_UNKNOWN = 'UNKNOWN';
const SERVING_STATUS_ELIGIBLE = 'ELIGIBLE';
const SERVING_STATUS_RARELY_SERVED = 'RARELY_SERVED';
protected $fillable = [
'external_id',
'ad_group_external_id',
'campaign_external_id',
'ad_group_id',
'campaign_id',
'keyword',
'user_param_1',
'user_param_2',
'bid',
'context_bid',
'state',
'status',
'serving_status',
'updated_self',
'updated_at',
'deleted_at',
];
protected $casts = [
'updated_self' => 'datetime',
];
/**
* @return Collection
*/
static public function getPropertiesWatch()
{
return collect([
'keyword',
'user_param_1',
'user_param_2',
]);
}
public static function boot()
{
parent::boot();
// static::deleted(function (Keyword $keyword) {
//
// if (!$keyword->isForceDeleting()) {
//
// $keyword->goalKeywords->each(function (GoalKeyword $goalKeyword) {
//
// GoalKeywordDelete::updateOrCreateByMain($goalKeyword);
//
// $goalKeyword->delete();
//
// });
//
// }
//
// });
}
public function goalKeywords()
{
return $this->hasMany(GoalKeyword::class, 'keyword_id');
}
public function group()
{
return $this->belongsTo(AdGroup::class, 'ad_group_id');
}
public function campaign()
{
return $this->belongsTo(Campaigns::class, 'campaign_id');
}
public function equals($data){
return $data['keyword'] == $this->keyword
&& $data['user_param_1'] == $this->user_param_1
&& $data['user_param_2'] == $this->user_param_2
&& $data['bid'] == $this->bid
&& $data['context_bid'] == $this->context_bid
&& $data['state'] == $this->state
&& $data['status'] == $this->status
&& $data['serving_status'] == $this->serving_status
&& $data['deleted_at'] == $this->deleted_at
;
}
}