<?php
// +----------------------------------------------------------------------
// | onezan-admin 快速开发的管理平台
// +----------------------------------------------------------------------
// | 官方网址：https://www.onezan.cn
// +----------------------------------------------------------------------
// | onezan团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: 543885307@qq.com
// +----------------------------------------------------------------------
namespace app\model;

use think\Model;


/**
 * 用户地址模型
 * @package app\model
 */
class UserAddress extends Model
{
    protected $name = 'sys_user_addresses';
    protected $autoWriteTimestamp = true;
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';

    protected $json = ['extends'];

    protected $jsonAssoc = true;


    /**
     * 设置扩展属性（修改器）
     * @param mixed $value
     * @return string JSON字符串
     */
    public function setExtendsAttr($value): string
    {
        if (is_array($value)) {
            return json_encode($value, JSON_UNESCAPED_UNICODE) ?: '[]';
        }

        return is_string($value) && $value !== '' ? $value : '[]';
    }


    /**
     * 获取扩展属性（获取器）
     * 自动将JSON字符串解码为数组
     * @param mixed $value
     * @return array
     */
    public function getExtendsAttr($value): array
    {
        if (is_array($value)) {
            return $value;
        }

        $decoded = json_decode((string)$value, true);
        return is_array($decoded) ? $decoded : [];
    }
}
