File: /home/xedaptot/be.naniguide.com/app/Model/AdPublishLog.php
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class AdPublishLog extends Model
{
use HasFactory;
const ACTION_PUBLISH = 'publish';
const ACTION_PAUSE = 'pause';
const ACTION_RESUME = 'resume';
const ACTION_UPDATE = 'update';
const ACTION_DELETE = 'delete';
const STATUS_PENDING = 'pending';
const STATUS_SUCCESS = 'success';
const STATUS_ERROR = 'error';
const STATUS_REJECTED = 'rejected';
protected $table = 'ad_publish_logs';
protected $fillable = [
'ad_campaign_id',
'ad_platform_id',
'platform',
'action',
'status',
'idempotency_key',
'request_data',
'response_data',
'error_message',
];
protected $casts = [
'request_data' => 'json',
'response_data' => 'json',
];
public function campaign()
{
return $this->belongsTo(AdCampaign::class, 'ad_campaign_id');
}
public function adPlatform()
{
return $this->belongsTo(AdPlatform::class, 'ad_platform_id');
}
public function scopeOfCampaign($query, $campaignId)
{
return $query->where('ad_campaign_id', $campaignId);
}
public function isSuccess(): bool
{
return $this->status === self::STATUS_SUCCESS;
}
public function isError(): bool
{
return $this->status === self::STATUS_ERROR;
}
protected static function newFactory()
{
return \Database\Factories\AdPublishLogFactory::new();
}
}