YandexError.php 1.07 KB
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletes;

class YandexError extends Model
{
    use SoftDeletes;

    protected $table = 'yandex_errors';

    protected $fillable = [
        'token_id',
        'cause_type',
        'cause_id',
        'service',
        'method',
        'params',
        'errors',
    ];

    protected $casts = [
        'params' => 'json',
        'errors' => 'array',
    ];

    public function token()
    {
        return $this->belongsTo(Tokens::class, 'token_id');
    }

    public function cause()
    {
        return $this->morphTo('cause');
    }

    /**
     * @param Builder $query
     * @param array $filters
     * @return Builder
     */
    public function scopeFilter($query, array $filters)
    {
        return $query->when($filters['service'] ?? null, function ($query, $service) {
            $query->where('service', $service);
        })->when($filters['method'] ?? null, function ($query, $method) {
            $query->where('method', $method);
        });
    }

}