<?php

namespace App\Models;

use App\Models\traits\Filter;

class GoodsSku extends Model
{
    use Filter;

    //查询字段
    public $fieldSearchable = [
        'sku_title',
        'status',
        'exclude_ids'
    ];

    protected $fillable = [
        'goods_id',
        'title',
        'sku_code',
        'status',
        'num',
        'stock',
        'cost',
        'two_days_ago_num',
        'yesterday_num',
        'reference_price',
        'reserve',
        'thumb_url'
    ];

    protected $hidden = ['created_at'];

    /**
     * 获取状态
     *
     * @param string $value
     * @return string
     */
    public function getStatusAttribute($value)
    {
        $map = [
            0 => '下架',
            1 => '在售',
            2 => '预警',
        ];
        return $map[$value];
    }

    public function setThumbUrlAttribute($value)
    {
        $this->attributes['thumb_url'] = json_encode($value, 256);
    }

    public function getThumbUrlAttribute($value)
    {

        return json_decode($value, true);
    }

    /**
     * 此规格从属于一个商品
     */
    public function goods()
    {
        return $this->hasOne(Goods::class, 'id', 'goods_id');
    }

    /**
     * 此规格每日记录
     */
    public function daily()
    {
        return $this->hasOne(DailyStockRecord::class, 'sku_id', 'id');
    }

    public function order()
    {
        return $this->hasOne(BusinessOrderItem::class, 'external_sku_id', 'id');
    }
}
