'array',
        'social_result' => 'array'
    ];
    //内部人员yingyingli
    const INSIDER = 60;
    //特殊时效人员
    const IS_EXPIRED = 442;
    /**
     * 筛选出 除超管用户自己所分配的站点下的文章
     * @param Builder $query
     * @return Builder
     */
    public function scopeUser(Builder $query)
    {
        $user = auth()->user();
        if ($user->is_super || in_array($user->role_id, [
                Role::TYPE_PROPAGANDA,
                Role::TYPE_ARTICLE,
                Role::TYPE_LINK,
                Role::TYPE_MANAGE_LEADER,
                Role::TYPE_CHONGQING_MANAGER
            ])) {
            return $query;
        }
        return $query->whereExists(function (\Illuminate\Database\Query\Builder $builder) use ($user) {
            $builder->select(DB::raw(1))->from('user_has_sites')
                ->whereRaw(sprintf('user_id=%s AND user_has_sites.site_id=articles.site_id', $user->id));
        });
    }
    public function site()
    {
        return $this->hasOne(
            Site::class,
            'id',
            'site_id'
        );
    }
    public function translator()
    {
        return $this->hasOne(
            User::class,
            'id',
            'translator_id'
        );
    }
    public function auditor()
    {
        return $this->hasOne(
            User::class,
            'id',
            'auditor_id'
        );
    }
    const STATUS_PENDING = 1;
    const STATUS_TRANSLATING = 2;
    const STATUS_AUDITING = 3;
    const STATUS_FAILED = 4;
    const STATUS_PASSED = 5;
    const STATUS_CALC = 6;
//    public function identifier()
//    {
//        return sprintf('A%s%s-%s', date('ym'), $this->newQuery()->max('id') + 1, mt_rand(100, 999));
//    }
    public function getStatusWithCssAttribute()
    {
        $format = '';
        switch ($this->status ?? 0) {
            case 1:
                return sprintf($format, '待翻译');
            case 2:
                return sprintf($format, '翻译中');
            case 3:
                return sprintf($format, '待审核');
            case 4:
                return sprintf($format, '未通过');
            case 5:
                return sprintf($format, '已通过');
            case 6:
                return sprintf($format, '已结算');
            default:
                return '';
        }
    }
    public function getCheckStatusWithCssAttribute()
    {
        $format = '';
        switch ($this->be_applicable ?? 0) {
            case 0:
                return sprintf($format, '待定');
            case 1:
                return sprintf($format, '适用');
            case 2:
                return sprintf($format, '不适用');
            default:
                return '';
        }
    }
    public function scopeFilter($query, DemoFilter $filters)
    {
        return $filters->apply($query);
    }
}