<?php

namespace App\Models\Blog;

use App\Models\Base;
use App\Models\News\NewsExtendInfo;
use App\Models\User\User;

class Blog extends Base
{
    const STATUS_DRAFT = 0;
    const STATUS_ONE = 1;
    protected $table = 'gl_blog';
    //连接数据库
    protected $connection = 'custom_mysql';
    public function user(){
        return $this->hasMany(User::class,'operator_id','id');
    }

    public function getReleaseAtAttribute($value){
        if(!$value){
            return date('Y-m-d H:i:s', strtotime($this->getAttribute('created_at')));
        }
        return $value;
    }

    /**
     * @remark :保存扩展字段
     * @name   :saveExtend
     * @author :lyh
     * @method :post
     * @time   :2023/11/9 15:02
     */
    public function saveExtendInfo($news_id,$extend,$project_id){
        //先删除以前的数据
        $extendInfoModel = new NewsExtendInfo();
        $extendInfoModel->del(['news_id'=>$news_id]);
        if(empty($extend)) {
            return true;
        }
        foreach ($extend as $k => $v){
            if(empty($v['values'])){
                continue;
            }
            $v = $this->saveHandleExtend($v,$news_id,$project_id);
            $extendInfoModel->add($v);
        }
        return true;
    }

    /**
     * @remark :保存扩展字段时处理数据
     * @name   :saveHandleExtend
     * @author :lyh
     * @method :post
     * @time   :2023/12/6 15:11
     */
    public function saveHandleExtend(&$v,$news_id,$project_id){
        unset($v['title']);
        if($v['type'] == 3){
            foreach ($v['values'] as $k1=>$v1){
                $v1['url'] = str_replace_url($v1['url']);
                $v['values'][$k1] = $v1;
            }
            $v['values'] = json_encode($v['values']);
        }elseif ($v['type'] == 4){
            foreach ($v['values'] as $k1=>$v1){
                $v1['url'] = str_replace_url($v1['url']);
                $v['values'][$k1] = $v1;
            }
            $v['values'] = json_encode($v['values']);
        }
        $v['project_id'] = $project_id;
        $v['news_id'] = $news_id;
        return $v;
    }
}