v3/src/Model/AlipayUserUserinfoShareResponseModel.php
<?php
/**
 * AlipayUserUserinfoShareResponseModel
 *
 * PHP version 7.4
 *
 * @category Class
 * @package  Alipay\OpenAPISDK
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 */

/**
 * 支付宝开放平台API
 *
 * 支付宝开放平台v3协议文档
 *
 * The version of the OpenAPI document: 2025-08-26
 * Generated by: https://openapi-generator.tech
 * OpenAPI Generator version: 6.2.1
 */

/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

namespace Alipay\OpenAPISDK\Model;

use \ArrayAccess;
use \Alipay\OpenAPISDK\ObjectSerializer;

/**
 * AlipayUserUserinfoShareResponseModel Class Doc Comment
 *
 * @category Class
 * @package  Alipay\OpenAPISDK
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 * @implements \ArrayAccess<TKey, TValue>
 * @template TKey int|null
 * @template TValue mixed|null
 */
class AlipayUserUserinfoShareResponseModel implements ModelInterface, ArrayAccess, \JsonSerializable
{
    public const DISCRIMINATOR = null;

    /**
      * The original name of the model.
      *
      * @var string
      */
    protected static $openAPIModelName = 'AlipayUserUserinfoShareResponseModel';

    /**
      * Array of property to type mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $openAPITypes = [
        'address' => 'string',
        'addressCode' => 'string',
        'alipayUserId' => 'string',
        'area' => 'string',
        'avatar' => 'string',
        'balanceFreezeType' => 'string',
        'birthday' => 'string',
        'certNo' => 'string',
        'certTypeValue' => 'string',
        'city' => 'string',
        'defaultDeliverAddress' => 'string',
        'deliverAddressList' => '\Alipay\OpenAPISDK\Model\DeliverAddress[]',
        'deliverArea' => 'string',
        'deliverCity' => 'string',
        'deliverFullname' => 'string',
        'deliverMobile' => 'string',
        'deliverPhone' => 'string',
        'deliverProvince' => 'string',
        'email' => 'string',
        'familyName' => 'string',
        'firmName' => 'string',
        'gender' => 'string',
        'isBalanceFrozen' => 'string',
        'isBankAuth' => 'string',
        'isCertified' => 'string',
        'isCertifyGradeA' => 'string',
        'isIdAuth' => 'string',
        'isLicenceAuth' => 'string',
        'isMobileAuth' => 'string',
        'isStudentCertified' => 'string',
        'mobile' => 'string',
        'nickName' => 'string',
        'phone' => 'string',
        'province' => 'string',
        'realName' => 'string',
        'reducedBirthday' => 'string',
        'userId' => 'string',
        'userStatus' => 'string',
        'userTypeValue' => 'string',
        'zip' => 'string'
    ];

    /**
      * Array of property to format mappings. Used for (de)serialization
      *
      * @var string[]
      * @phpstan-var array<string, string|null>
      * @psalm-var array<string, string|null>
      */
    protected static $openAPIFormats = [
        'address' => null,
        'addressCode' => null,
        'alipayUserId' => null,
        'area' => null,
        'avatar' => null,
        'balanceFreezeType' => null,
        'birthday' => null,
        'certNo' => null,
        'certTypeValue' => null,
        'city' => null,
        'defaultDeliverAddress' => null,
        'deliverAddressList' => null,
        'deliverArea' => null,
        'deliverCity' => null,
        'deliverFullname' => null,
        'deliverMobile' => null,
        'deliverPhone' => null,
        'deliverProvince' => null,
        'email' => null,
        'familyName' => null,
        'firmName' => null,
        'gender' => null,
        'isBalanceFrozen' => null,
        'isBankAuth' => null,
        'isCertified' => null,
        'isCertifyGradeA' => null,
        'isIdAuth' => null,
        'isLicenceAuth' => null,
        'isMobileAuth' => null,
        'isStudentCertified' => null,
        'mobile' => null,
        'nickName' => null,
        'phone' => null,
        'province' => null,
        'realName' => null,
        'reducedBirthday' => null,
        'userId' => null,
        'userStatus' => null,
        'userTypeValue' => null,
        'zip' => null
    ];

    /**
     * Array of property to type mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function openAPITypes()
    {
        return self::$openAPITypes;
    }

    /**
     * Array of property to format mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function openAPIFormats()
    {
        return self::$openAPIFormats;
    }

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @var string[]
     */
    protected static $attributeMap = [
        'address' => 'address',
        'addressCode' => 'address_code',
        'alipayUserId' => 'alipay_user_id',
        'area' => 'area',
        'avatar' => 'avatar',
        'balanceFreezeType' => 'balance_freeze_type',
        'birthday' => 'birthday',
        'certNo' => 'cert_no',
        'certTypeValue' => 'cert_type_value',
        'city' => 'city',
        'defaultDeliverAddress' => 'default_deliver_address',
        'deliverAddressList' => 'deliver_address_list',
        'deliverArea' => 'deliver_area',
        'deliverCity' => 'deliver_city',
        'deliverFullname' => 'deliver_fullname',
        'deliverMobile' => 'deliver_mobile',
        'deliverPhone' => 'deliver_phone',
        'deliverProvince' => 'deliver_province',
        'email' => 'email',
        'familyName' => 'family_name',
        'firmName' => 'firm_name',
        'gender' => 'gender',
        'isBalanceFrozen' => 'is_balance_frozen',
        'isBankAuth' => 'is_bank_auth',
        'isCertified' => 'is_certified',
        'isCertifyGradeA' => 'is_certify_grade_a',
        'isIdAuth' => 'is_id_auth',
        'isLicenceAuth' => 'is_licence_auth',
        'isMobileAuth' => 'is_mobile_auth',
        'isStudentCertified' => 'is_student_certified',
        'mobile' => 'mobile',
        'nickName' => 'nick_name',
        'phone' => 'phone',
        'province' => 'province',
        'realName' => 'real_name',
        'reducedBirthday' => 'reduced_birthday',
        'userId' => 'user_id',
        'userStatus' => 'user_status',
        'userTypeValue' => 'user_type_value',
        'zip' => 'zip'
    ];

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @var string[]
     */
    protected static $setters = [
        'address' => 'setAddress',
        'addressCode' => 'setAddressCode',
        'alipayUserId' => 'setAlipayUserId',
        'area' => 'setArea',
        'avatar' => 'setAvatar',
        'balanceFreezeType' => 'setBalanceFreezeType',
        'birthday' => 'setBirthday',
        'certNo' => 'setCertNo',
        'certTypeValue' => 'setCertTypeValue',
        'city' => 'setCity',
        'defaultDeliverAddress' => 'setDefaultDeliverAddress',
        'deliverAddressList' => 'setDeliverAddressList',
        'deliverArea' => 'setDeliverArea',
        'deliverCity' => 'setDeliverCity',
        'deliverFullname' => 'setDeliverFullname',
        'deliverMobile' => 'setDeliverMobile',
        'deliverPhone' => 'setDeliverPhone',
        'deliverProvince' => 'setDeliverProvince',
        'email' => 'setEmail',
        'familyName' => 'setFamilyName',
        'firmName' => 'setFirmName',
        'gender' => 'setGender',
        'isBalanceFrozen' => 'setIsBalanceFrozen',
        'isBankAuth' => 'setIsBankAuth',
        'isCertified' => 'setIsCertified',
        'isCertifyGradeA' => 'setIsCertifyGradeA',
        'isIdAuth' => 'setIsIdAuth',
        'isLicenceAuth' => 'setIsLicenceAuth',
        'isMobileAuth' => 'setIsMobileAuth',
        'isStudentCertified' => 'setIsStudentCertified',
        'mobile' => 'setMobile',
        'nickName' => 'setNickName',
        'phone' => 'setPhone',
        'province' => 'setProvince',
        'realName' => 'setRealName',
        'reducedBirthday' => 'setReducedBirthday',
        'userId' => 'setUserId',
        'userStatus' => 'setUserStatus',
        'userTypeValue' => 'setUserTypeValue',
        'zip' => 'setZip'
    ];

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @var string[]
     */
    protected static $getters = [
        'address' => 'getAddress',
        'addressCode' => 'getAddressCode',
        'alipayUserId' => 'getAlipayUserId',
        'area' => 'getArea',
        'avatar' => 'getAvatar',
        'balanceFreezeType' => 'getBalanceFreezeType',
        'birthday' => 'getBirthday',
        'certNo' => 'getCertNo',
        'certTypeValue' => 'getCertTypeValue',
        'city' => 'getCity',
        'defaultDeliverAddress' => 'getDefaultDeliverAddress',
        'deliverAddressList' => 'getDeliverAddressList',
        'deliverArea' => 'getDeliverArea',
        'deliverCity' => 'getDeliverCity',
        'deliverFullname' => 'getDeliverFullname',
        'deliverMobile' => 'getDeliverMobile',
        'deliverPhone' => 'getDeliverPhone',
        'deliverProvince' => 'getDeliverProvince',
        'email' => 'getEmail',
        'familyName' => 'getFamilyName',
        'firmName' => 'getFirmName',
        'gender' => 'getGender',
        'isBalanceFrozen' => 'getIsBalanceFrozen',
        'isBankAuth' => 'getIsBankAuth',
        'isCertified' => 'getIsCertified',
        'isCertifyGradeA' => 'getIsCertifyGradeA',
        'isIdAuth' => 'getIsIdAuth',
        'isLicenceAuth' => 'getIsLicenceAuth',
        'isMobileAuth' => 'getIsMobileAuth',
        'isStudentCertified' => 'getIsStudentCertified',
        'mobile' => 'getMobile',
        'nickName' => 'getNickName',
        'phone' => 'getPhone',
        'province' => 'getProvince',
        'realName' => 'getRealName',
        'reducedBirthday' => 'getReducedBirthday',
        'userId' => 'getUserId',
        'userStatus' => 'getUserStatus',
        'userTypeValue' => 'getUserTypeValue',
        'zip' => 'getZip'
    ];

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @return array
     */
    public static function attributeMap()
    {
        return self::$attributeMap;
    }

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @return array
     */
    public static function setters()
    {
        return self::$setters;
    }

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @return array
     */
    public static function getters()
    {
        return self::$getters;
    }

    /**
     * The original name of the model.
     *
     * @return string
     */
    public function getModelName()
    {
        return self::$openAPIModelName;
    }


    /**
     * Associative array for storing property values
     *
     * @var mixed[]
     */
    protected $container = [];

    /**
     * Constructor
     *
     * @param mixed[] $data Associated array of property values
     *                      initializing the model
     */
    public function __construct(array $data = null)
    {
        $this->container['address'] = $data['address'] ?? null;
        $this->container['addressCode'] = $data['addressCode'] ?? null;
        $this->container['alipayUserId'] = $data['alipayUserId'] ?? null;
        $this->container['area'] = $data['area'] ?? null;
        $this->container['avatar'] = $data['avatar'] ?? null;
        $this->container['balanceFreezeType'] = $data['balanceFreezeType'] ?? null;
        $this->container['birthday'] = $data['birthday'] ?? null;
        $this->container['certNo'] = $data['certNo'] ?? null;
        $this->container['certTypeValue'] = $data['certTypeValue'] ?? null;
        $this->container['city'] = $data['city'] ?? null;
        $this->container['defaultDeliverAddress'] = $data['defaultDeliverAddress'] ?? null;
        $this->container['deliverAddressList'] = $data['deliverAddressList'] ?? null;
        $this->container['deliverArea'] = $data['deliverArea'] ?? null;
        $this->container['deliverCity'] = $data['deliverCity'] ?? null;
        $this->container['deliverFullname'] = $data['deliverFullname'] ?? null;
        $this->container['deliverMobile'] = $data['deliverMobile'] ?? null;
        $this->container['deliverPhone'] = $data['deliverPhone'] ?? null;
        $this->container['deliverProvince'] = $data['deliverProvince'] ?? null;
        $this->container['email'] = $data['email'] ?? null;
        $this->container['familyName'] = $data['familyName'] ?? null;
        $this->container['firmName'] = $data['firmName'] ?? null;
        $this->container['gender'] = $data['gender'] ?? null;
        $this->container['isBalanceFrozen'] = $data['isBalanceFrozen'] ?? null;
        $this->container['isBankAuth'] = $data['isBankAuth'] ?? null;
        $this->container['isCertified'] = $data['isCertified'] ?? null;
        $this->container['isCertifyGradeA'] = $data['isCertifyGradeA'] ?? null;
        $this->container['isIdAuth'] = $data['isIdAuth'] ?? null;
        $this->container['isLicenceAuth'] = $data['isLicenceAuth'] ?? null;
        $this->container['isMobileAuth'] = $data['isMobileAuth'] ?? null;
        $this->container['isStudentCertified'] = $data['isStudentCertified'] ?? null;
        $this->container['mobile'] = $data['mobile'] ?? null;
        $this->container['nickName'] = $data['nickName'] ?? null;
        $this->container['phone'] = $data['phone'] ?? null;
        $this->container['province'] = $data['province'] ?? null;
        $this->container['realName'] = $data['realName'] ?? null;
        $this->container['reducedBirthday'] = $data['reducedBirthday'] ?? null;
        $this->container['userId'] = $data['userId'] ?? null;
        $this->container['userStatus'] = $data['userStatus'] ?? null;
        $this->container['userTypeValue'] = $data['userTypeValue'] ?? null;
        $this->container['zip'] = $data['zip'] ?? null;
    }

    /**
     * Show all the invalid properties with reasons.
     *
     * @return array invalid properties with reasons
     */
    public function listInvalidProperties()
    {
        $invalidProperties = [];

        return $invalidProperties;
    }

    /**
     * Validate all the properties in the model
     * return true if all passed
     *
     * @return bool True if all properties are valid
     */
    public function valid()
    {
        return count($this->listInvalidProperties()) === 0;
    }


    /**
     * Gets address
     *
     * @return string|null
     */
    public function getAddress()
    {
        return $this->container['address'];
    }

    /**
     * Sets address
     *
     * @param string|null $address 详细地址。
     *
     * @return self
     */
    public function setAddress($address)
    {
        $this->container['address'] = $address;

        return $this;
    }

    /**
     * Gets addressCode
     *
     * @return string|null
     */
    public function getAddressCode()
    {
        return $this->container['addressCode'];
    }

    /**
     * Sets addressCode
     *
     * @param string|null $addressCode 区域编码，暂时不返回值
     *
     * @return self
     */
    public function setAddressCode($addressCode)
    {
        $this->container['addressCode'] = $addressCode;

        return $this;
    }

    /**
     * Gets alipayUserId
     *
     * @return string|null
     */
    public function getAlipayUserId()
    {
        return $this->container['alipayUserId'];
    }

    /**
     * Sets alipayUserId
     *
     * @param string|null $alipayUserId 支付宝用户ID
     *
     * @return self
     */
    public function setAlipayUserId($alipayUserId)
    {
        $this->container['alipayUserId'] = $alipayUserId;

        return $this;
    }

    /**
     * Gets area
     *
     * @return string|null
     */
    public function getArea()
    {
        return $this->container['area'];
    }

    /**
     * Sets area
     *
     * @param string|null $area 区县名称。
     *
     * @return self
     */
    public function setArea($area)
    {
        $this->container['area'] = $area;

        return $this;
    }

    /**
     * Gets avatar
     *
     * @return string|null
     */
    public function getAvatar()
    {
        return $this->container['avatar'];
    }

    /**
     * Sets avatar
     *
     * @param string|null $avatar 用户头像
     *
     * @return self
     */
    public function setAvatar($avatar)
    {
        $this->container['avatar'] = $avatar;

        return $this;
    }

    /**
     * Gets balanceFreezeType
     *
     * @return string|null
     */
    public function getBalanceFreezeType()
    {
        return $this->container['balanceFreezeType'];
    }

    /**
     * Sets balanceFreezeType
     *
     * @param string|null $balanceFreezeType 【注意】当is_balance_frozen为“F”时，改字段不会返回.  CTU ---- CTU冻结，允许用户开启  ALIBABA ---- ALIBABA冻结，允许用户开启  SERVER ---- 后台冻结，允许用户开启  USER ----  用户冻结   CTU_N---- CTU冻结，不允许用户开启  ALIBABA_N ---- ALIBABA冻结，不允许用户开启  SERVER_N ---- 后台冻结，不允许用户开启  UNKNOWN ---- 降级、或查询超时
     *
     * @return self
     */
    public function setBalanceFreezeType($balanceFreezeType)
    {
        $this->container['balanceFreezeType'] = $balanceFreezeType;

        return $this;
    }

    /**
     * Gets birthday
     *
     * @return string|null
     */
    public function getBirthday()
    {
        return $this->container['birthday'];
    }

    /**
     * Sets birthday
     *
     * @param string|null $birthday 用户生日
     *
     * @return self
     */
    public function setBirthday($birthday)
    {
        $this->container['birthday'] = $birthday;

        return $this;
    }

    /**
     * Gets certNo
     *
     * @return string|null
     */
    public function getCertNo()
    {
        return $this->container['certNo'];
    }

    /**
     * Sets certNo
     *
     * @param string|null $certNo 证件号码
     *
     * @return self
     */
    public function setCertNo($certNo)
    {
        $this->container['certNo'] = $certNo;

        return $this;
    }

    /**
     * Gets certTypeValue
     *
     * @return string|null
     */
    public function getCertTypeValue()
    {
        return $this->container['certTypeValue'];
    }

    /**
     * Sets certTypeValue
     *
     * @param string|null $certTypeValue 0:身份证  1:护照  2:军官证  3:士兵证  4:回乡证  5:临时身份证  6:户口簿  7:警官证  8:台胞证  9:营业执照  10其它证件
     *
     * @return self
     */
    public function setCertTypeValue($certTypeValue)
    {
        $this->container['certTypeValue'] = $certTypeValue;

        return $this;
    }

    /**
     * Gets city
     *
     * @return string|null
     */
    public function getCity()
    {
        return $this->container['city'];
    }

    /**
     * Sets city
     *
     * @param string|null $city 市名称。
     *
     * @return self
     */
    public function setCity($city)
    {
        $this->container['city'] = $city;

        return $this;
    }

    /**
     * Gets defaultDeliverAddress
     *
     * @return string|null
     */
    public function getDefaultDeliverAddress()
    {
        return $this->container['defaultDeliverAddress'];
    }

    /**
     * Sets defaultDeliverAddress
     *
     * @param string|null $defaultDeliverAddress 是否默认收货地址，暂时不返回值
     *
     * @return self
     */
    public function setDefaultDeliverAddress($defaultDeliverAddress)
    {
        $this->container['defaultDeliverAddress'] = $defaultDeliverAddress;

        return $this;
    }

    /**
     * Gets deliverAddressList
     *
     * @return \Alipay\OpenAPISDK\Model\DeliverAddress[]|null
     */
    public function getDeliverAddressList()
    {
        return $this->container['deliverAddressList'];
    }

    /**
     * Sets deliverAddressList
     *
     * @param \Alipay\OpenAPISDK\Model\DeliverAddress[]|null $deliverAddressList 收货人地址列表
     *
     * @return self
     */
    public function setDeliverAddressList($deliverAddressList)
    {
        $this->container['deliverAddressList'] = $deliverAddressList;

        return $this;
    }

    /**
     * Gets deliverArea
     *
     * @return string|null
     */
    public function getDeliverArea()
    {
        return $this->container['deliverArea'];
    }

    /**
     * Sets deliverArea
     *
     * @param string|null $deliverArea 收货人所在区县
     *
     * @return self
     */
    public function setDeliverArea($deliverArea)
    {
        $this->container['deliverArea'] = $deliverArea;

        return $this;
    }

    /**
     * Gets deliverCity
     *
     * @return string|null
     */
    public function getDeliverCity()
    {
        return $this->container['deliverCity'];
    }

    /**
     * Sets deliverCity
     *
     * @param string|null $deliverCity 收货人所在城市
     *
     * @return self
     */
    public function setDeliverCity($deliverCity)
    {
        $this->container['deliverCity'] = $deliverCity;

        return $this;
    }

    /**
     * Gets deliverFullname
     *
     * @return string|null
     */
    public function getDeliverFullname()
    {
        return $this->container['deliverFullname'];
    }

    /**
     * Sets deliverFullname
     *
     * @param string|null $deliverFullname 收货人全称
     *
     * @return self
     */
    public function setDeliverFullname($deliverFullname)
    {
        $this->container['deliverFullname'] = $deliverFullname;

        return $this;
    }

    /**
     * Gets deliverMobile
     *
     * @return string|null
     */
    public function getDeliverMobile()
    {
        return $this->container['deliverMobile'];
    }

    /**
     * Sets deliverMobile
     *
     * @param string|null $deliverMobile 收货地址的联系人移动电话。
     *
     * @return self
     */
    public function setDeliverMobile($deliverMobile)
    {
        $this->container['deliverMobile'] = $deliverMobile;

        return $this;
    }

    /**
     * Gets deliverPhone
     *
     * @return string|null
     */
    public function getDeliverPhone()
    {
        return $this->container['deliverPhone'];
    }

    /**
     * Sets deliverPhone
     *
     * @param string|null $deliverPhone 收货地址的联系人固定电话。
     *
     * @return self
     */
    public function setDeliverPhone($deliverPhone)
    {
        $this->container['deliverPhone'] = $deliverPhone;

        return $this;
    }

    /**
     * Gets deliverProvince
     *
     * @return string|null
     */
    public function getDeliverProvince()
    {
        return $this->container['deliverProvince'];
    }

    /**
     * Sets deliverProvince
     *
     * @param string|null $deliverProvince 收货人所在省份
     *
     * @return self
     */
    public function setDeliverProvince($deliverProvince)
    {
        $this->container['deliverProvince'] = $deliverProvince;

        return $this;
    }

    /**
     * Gets email
     *
     * @return string|null
     */
    public function getEmail()
    {
        return $this->container['email'];
    }

    /**
     * Sets email
     *
     * @param string|null $email 用户支付宝账号绑定的邮箱地址
     *
     * @return self
     */
    public function setEmail($email)
    {
        $this->container['email'] = $email;

        return $this;
    }

    /**
     * Gets familyName
     *
     * @return string|null
     */
    public function getFamilyName()
    {
        return $this->container['familyName'];
    }

    /**
     * Sets familyName
     *
     * @param string|null $familyName 姓氏，取的是realName中的首个字符，对非中文、中文复姓支持较差。
     *
     * @return self
     */
    public function setFamilyName($familyName)
    {
        $this->container['familyName'] = $familyName;

        return $this;
    }

    /**
     * Gets firmName
     *
     * @return string|null
     */
    public function getFirmName()
    {
        return $this->container['firmName'];
    }

    /**
     * Sets firmName
     *
     * @param string|null $firmName 公司名称（用户类型是公司类型时公司名称才有此字段）。
     *
     * @return self
     */
    public function setFirmName($firmName)
    {
        $this->container['firmName'] = $firmName;

        return $this;
    }

    /**
     * Gets gender
     *
     * @return string|null
     */
    public function getGender()
    {
        return $this->container['gender'];
    }

    /**
     * Sets gender
     *
     * @param string|null $gender 性别（F：女性；M：男性）
     *
     * @return self
     */
    public function setGender($gender)
    {
        $this->container['gender'] = $gender;

        return $this;
    }

    /**
     * Gets isBalanceFrozen
     *
     * @return string|null
     */
    public function getIsBalanceFrozen()
    {
        return $this->container['isBalanceFrozen'];
    }

    /**
     * Sets isBalanceFrozen
     *
     * @param string|null $isBalanceFrozen T--被冻结；F--未冻结
     *
     * @return self
     */
    public function setIsBalanceFrozen($isBalanceFrozen)
    {
        $this->container['isBalanceFrozen'] = $isBalanceFrozen;

        return $this;
    }

    /**
     * Gets isBankAuth
     *
     * @return string|null
     */
    public function getIsBankAuth()
    {
        return $this->container['isBankAuth'];
    }

    /**
     * Sets isBankAuth
     *
     * @param string|null $isBankAuth T为是银行卡认证，F为非银行卡认证。
     *
     * @return self
     */
    public function setIsBankAuth($isBankAuth)
    {
        $this->container['isBankAuth'] = $isBankAuth;

        return $this;
    }

    /**
     * Gets isCertified
     *
     * @return string|null
     */
    public function getIsCertified()
    {
        return $this->container['isCertified'];
    }

    /**
     * Sets isCertified
     *
     * @param string|null $isCertified 是否通过实名认证。T是通过 F是没有实名认证
     *
     * @return self
     */
    public function setIsCertified($isCertified)
    {
        $this->container['isCertified'] = $isCertified;

        return $this;
    }

    /**
     * Gets isCertifyGradeA
     *
     * @return string|null
     */
    public function getIsCertifyGradeA()
    {
        return $this->container['isCertifyGradeA'];
    }

    /**
     * Sets isCertifyGradeA
     *
     * @param string|null $isCertifyGradeA T：表示A类实名认证；F：表示非A类实名认证
     *
     * @return self
     */
    public function setIsCertifyGradeA($isCertifyGradeA)
    {
        $this->container['isCertifyGradeA'] = $isCertifyGradeA;

        return $this;
    }

    /**
     * Gets isIdAuth
     *
     * @return string|null
     */
    public function getIsIdAuth()
    {
        return $this->container['isIdAuth'];
    }

    /**
     * Sets isIdAuth
     *
     * @param string|null $isIdAuth T为是身份证认证，F为非身份证认证。
     *
     * @return self
     */
    public function setIsIdAuth($isIdAuth)
    {
        $this->container['isIdAuth'] = $isIdAuth;

        return $this;
    }

    /**
     * Gets isLicenceAuth
     *
     * @return string|null
     */
    public function getIsLicenceAuth()
    {
        return $this->container['isLicenceAuth'];
    }

    /**
     * Sets isLicenceAuth
     *
     * @param string|null $isLicenceAuth T为通过营业执照认证，F为没有通过
     *
     * @return self
     */
    public function setIsLicenceAuth($isLicenceAuth)
    {
        $this->container['isLicenceAuth'] = $isLicenceAuth;

        return $this;
    }

    /**
     * Gets isMobileAuth
     *
     * @return string|null
     */
    public function getIsMobileAuth()
    {
        return $this->container['isMobileAuth'];
    }

    /**
     * Sets isMobileAuth
     *
     * @param string|null $isMobileAuth T为是手机认证，F为非手机认证。
     *
     * @return self
     */
    public function setIsMobileAuth($isMobileAuth)
    {
        $this->container['isMobileAuth'] = $isMobileAuth;

        return $this;
    }

    /**
     * Gets isStudentCertified
     *
     * @return string|null
     */
    public function getIsStudentCertified()
    {
        return $this->container['isStudentCertified'];
    }

    /**
     * Sets isStudentCertified
     *
     * @param string|null $isStudentCertified 是否是学生
     *
     * @return self
     */
    public function setIsStudentCertified($isStudentCertified)
    {
        $this->container['isStudentCertified'] = $isStudentCertified;

        return $this;
    }

    /**
     * Gets mobile
     *
     * @return string|null
     */
    public function getMobile()
    {
        return $this->container['mobile'];
    }

    /**
     * Sets mobile
     *
     * @param string|null $mobile 手机号码。
     *
     * @return self
     */
    public function setMobile($mobile)
    {
        $this->container['mobile'] = $mobile;

        return $this;
    }

    /**
     * Gets nickName
     *
     * @return string|null
     */
    public function getNickName()
    {
        return $this->container['nickName'];
    }

    /**
     * Sets nickName
     *
     * @param string|null $nickName 用户昵称
     *
     * @return self
     */
    public function setNickName($nickName)
    {
        $this->container['nickName'] = $nickName;

        return $this;
    }

    /**
     * Gets phone
     *
     * @return string|null
     */
    public function getPhone()
    {
        return $this->container['phone'];
    }

    /**
     * Sets phone
     *
     * @param string|null $phone 电话号码。
     *
     * @return self
     */
    public function setPhone($phone)
    {
        $this->container['phone'] = $phone;

        return $this;
    }

    /**
     * Gets province
     *
     * @return string|null
     */
    public function getProvince()
    {
        return $this->container['province'];
    }

    /**
     * Sets province
     *
     * @param string|null $province 省份名称。
     *
     * @return self
     */
    public function setProvince($province)
    {
        $this->container['province'] = $province;

        return $this;
    }

    /**
     * Gets realName
     *
     * @return string|null
     */
    public function getRealName()
    {
        return $this->container['realName'];
    }

    /**
     * Sets realName
     *
     * @param string|null $realName 用户的真实姓名。
     *
     * @return self
     */
    public function setRealName($realName)
    {
        $this->container['realName'] = $realName;

        return $this;
    }

    /**
     * Gets reducedBirthday
     *
     * @return string|null
     */
    public function getReducedBirthday()
    {
        return $this->container['reducedBirthday'];
    }

    /**
     * Sets reducedBirthday
     *
     * @param string|null $reducedBirthday 生日的月和日，MMdd格式
     *
     * @return self
     */
    public function setReducedBirthday($reducedBirthday)
    {
        $this->container['reducedBirthday'] = $reducedBirthday;

        return $this;
    }

    /**
     * Gets userId
     *
     * @return string|null
     */
    public function getUserId()
    {
        return $this->container['userId'];
    }

    /**
     * Sets userId
     *
     * @param string|null $userId 用户的userId
     *
     * @return self
     */
    public function setUserId($userId)
    {
        $this->container['userId'] = $userId;

        return $this;
    }

    /**
     * Gets userStatus
     *
     * @return string|null
     */
    public function getUserStatus()
    {
        return $this->container['userStatus'];
    }

    /**
     * Sets userStatus
     *
     * @param string|null $userStatus 用户状态（Q/T/B/W）。  Q代表快速注册用户  T代表已认证用户  B代表被冻结账户  W代表已注册，未激活的账户
     *
     * @return self
     */
    public function setUserStatus($userStatus)
    {
        $this->container['userStatus'] = $userStatus;

        return $this;
    }

    /**
     * Gets userTypeValue
     *
     * @return string|null
     */
    public function getUserTypeValue()
    {
        return $this->container['userTypeValue'];
    }

    /**
     * Sets userTypeValue
     *
     * @param string|null $userTypeValue 用户类型（1/2）  1代表公司账户2代表个人账户
     *
     * @return self
     */
    public function setUserTypeValue($userTypeValue)
    {
        $this->container['userTypeValue'] = $userTypeValue;

        return $this;
    }

    /**
     * Gets zip
     *
     * @return string|null
     */
    public function getZip()
    {
        return $this->container['zip'];
    }

    /**
     * Sets zip
     *
     * @param string|null $zip 邮政编码。
     *
     * @return self
     */
    public function setZip($zip)
    {
        $this->container['zip'] = $zip;

        return $this;
    }
    /**
     * Returns true if offset exists. False otherwise.
     *
     * @param integer $offset Offset
     *
     * @return boolean
     */
    public function offsetExists($offset): bool
    {
        return isset($this->container[$offset]);
    }

    /**
     * Gets offset.
     *
     * @param integer $offset Offset
     *
     * @return mixed|null
     */
    #[\ReturnTypeWillChange]
    public function offsetGet($offset)
    {
        return $this->container[$offset] ?? null;
    }

    /**
     * Sets value based on offset.
     *
     * @param int|null $offset Offset
     * @param mixed    $value  Value to be set
     *
     * @return void
     */
    public function offsetSet($offset, $value): void
    {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    /**
     * Unsets offset.
     *
     * @param integer $offset Offset
     *
     * @return void
     */
    public function offsetUnset($offset): void
    {
        unset($this->container[$offset]);
    }

    /**
     * Serializes the object to a value that can be serialized natively by json_encode().
     * @link https://www.php.net/manual/en/jsonserializable.jsonserialize.php
     *
     * @return mixed Returns data which can be serialized by json_encode(), which is a value
     * of any type other than a resource.
     */
    #[\ReturnTypeWillChange]
    public function jsonSerialize()
    {
       return ObjectSerializer::sanitizeForSerialization($this);
    }

    /**
     * Gets the string presentation of the object
     *
     * @return string
     */
    public function __toString()
    {
        return json_encode(
            ObjectSerializer::sanitizeForSerialization($this),
            JSON_PRETTY_PRINT
        );
    }

    /**
     * Gets a header-safe presentation of the object
     *
     * @return string
     */
    public function toHeaderValue()
    {
        return json_encode(ObjectSerializer::sanitizeForSerialization($this));
    }
}


