v3/src/Model/AntMerchantExpandShopQueryResponseModel.php
<?php
/**
 * AntMerchantExpandShopQueryResponseModel
 *
 * 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;

/**
 * AntMerchantExpandShopQueryResponseModel 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 AntMerchantExpandShopQueryResponseModel implements ModelInterface, ArrayAccess, \JsonSerializable
{
    public const DISCRIMINATOR = null;

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

    /**
      * Array of property to type mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $openAPITypes = [
        'alipayPoiid' => 'string',
        'brandId' => 'string',
        'businessAddress' => '\Alipay\OpenAPISDK\Model\AddressInfo',
        'businessTime' => '\Alipay\OpenAPISDK\Model\ShopBusinessTime[]',
        'certImage' => 'string',
        'certName' => 'string',
        'certNo' => 'string',
        'certType' => 'string',
        'contactInfos' => '\Alipay\OpenAPISDK\Model\ContactInfo[]',
        'contactMobile' => 'string',
        'contactPhone' => 'string',
        'extInfos' => '\Alipay\OpenAPISDK\Model\ShopExtInfo[]',
        'industryInfo' => '\Alipay\OpenAPISDK\Model\MerchantShopIndustryInfo[]',
        'industryLicense' => '\Alipay\OpenAPISDK\Model\ShopIndustryLicense[]',
        'ipRoleId' => 'string',
        'legalCertNo' => 'string',
        'legalName' => 'string',
        'licenseAuthLetterImage' => 'string',
        'memo' => 'string',
        'newBusinessTime' => '\Alipay\OpenAPISDK\Model\ComplexBusinessTime[]',
        'newShopCategory' => 'string',
        'outDoorImages' => 'string[]',
        'qualifications' => '\Alipay\OpenAPISDK\Model\IndustryQualificationInfo[]',
        'scene' => 'string',
        'settleAlipayLogonId' => 'string',
        'shopCategory' => 'string',
        'shopId' => 'string',
        'shopInfoStatus' => 'string',
        'shopMainType' => 'string',
        'shopName' => 'string',
        'shopRecommendInfo' => '\Alipay\OpenAPISDK\Model\ShopRecommendInfo',
        'shopType' => 'string',
        'storeId' => '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 = [
        'alipayPoiid' => null,
        'brandId' => null,
        'businessAddress' => null,
        'businessTime' => null,
        'certImage' => null,
        'certName' => null,
        'certNo' => null,
        'certType' => null,
        'contactInfos' => null,
        'contactMobile' => null,
        'contactPhone' => null,
        'extInfos' => null,
        'industryInfo' => null,
        'industryLicense' => null,
        'ipRoleId' => null,
        'legalCertNo' => null,
        'legalName' => null,
        'licenseAuthLetterImage' => null,
        'memo' => null,
        'newBusinessTime' => null,
        'newShopCategory' => null,
        'outDoorImages' => null,
        'qualifications' => null,
        'scene' => null,
        'settleAlipayLogonId' => null,
        'shopCategory' => null,
        'shopId' => null,
        'shopInfoStatus' => null,
        'shopMainType' => null,
        'shopName' => null,
        'shopRecommendInfo' => null,
        'shopType' => null,
        'storeId' => 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 = [
        'alipayPoiid' => 'alipay_poiid',
        'brandId' => 'brand_id',
        'businessAddress' => 'business_address',
        'businessTime' => 'business_time',
        'certImage' => 'cert_image',
        'certName' => 'cert_name',
        'certNo' => 'cert_no',
        'certType' => 'cert_type',
        'contactInfos' => 'contact_infos',
        'contactMobile' => 'contact_mobile',
        'contactPhone' => 'contact_phone',
        'extInfos' => 'ext_infos',
        'industryInfo' => 'industry_info',
        'industryLicense' => 'industry_license',
        'ipRoleId' => 'ip_role_id',
        'legalCertNo' => 'legal_cert_no',
        'legalName' => 'legal_name',
        'licenseAuthLetterImage' => 'license_auth_letter_image',
        'memo' => 'memo',
        'newBusinessTime' => 'new_business_time',
        'newShopCategory' => 'new_shop_category',
        'outDoorImages' => 'out_door_images',
        'qualifications' => 'qualifications',
        'scene' => 'scene',
        'settleAlipayLogonId' => 'settle_alipay_logon_id',
        'shopCategory' => 'shop_category',
        'shopId' => 'shop_id',
        'shopInfoStatus' => 'shop_info_status',
        'shopMainType' => 'shop_main_type',
        'shopName' => 'shop_name',
        'shopRecommendInfo' => 'shop_recommend_info',
        'shopType' => 'shop_type',
        'storeId' => 'store_id'
    ];

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @var string[]
     */
    protected static $setters = [
        'alipayPoiid' => 'setAlipayPoiid',
        'brandId' => 'setBrandId',
        'businessAddress' => 'setBusinessAddress',
        'businessTime' => 'setBusinessTime',
        'certImage' => 'setCertImage',
        'certName' => 'setCertName',
        'certNo' => 'setCertNo',
        'certType' => 'setCertType',
        'contactInfos' => 'setContactInfos',
        'contactMobile' => 'setContactMobile',
        'contactPhone' => 'setContactPhone',
        'extInfos' => 'setExtInfos',
        'industryInfo' => 'setIndustryInfo',
        'industryLicense' => 'setIndustryLicense',
        'ipRoleId' => 'setIpRoleId',
        'legalCertNo' => 'setLegalCertNo',
        'legalName' => 'setLegalName',
        'licenseAuthLetterImage' => 'setLicenseAuthLetterImage',
        'memo' => 'setMemo',
        'newBusinessTime' => 'setNewBusinessTime',
        'newShopCategory' => 'setNewShopCategory',
        'outDoorImages' => 'setOutDoorImages',
        'qualifications' => 'setQualifications',
        'scene' => 'setScene',
        'settleAlipayLogonId' => 'setSettleAlipayLogonId',
        'shopCategory' => 'setShopCategory',
        'shopId' => 'setShopId',
        'shopInfoStatus' => 'setShopInfoStatus',
        'shopMainType' => 'setShopMainType',
        'shopName' => 'setShopName',
        'shopRecommendInfo' => 'setShopRecommendInfo',
        'shopType' => 'setShopType',
        'storeId' => 'setStoreId'
    ];

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @var string[]
     */
    protected static $getters = [
        'alipayPoiid' => 'getAlipayPoiid',
        'brandId' => 'getBrandId',
        'businessAddress' => 'getBusinessAddress',
        'businessTime' => 'getBusinessTime',
        'certImage' => 'getCertImage',
        'certName' => 'getCertName',
        'certNo' => 'getCertNo',
        'certType' => 'getCertType',
        'contactInfos' => 'getContactInfos',
        'contactMobile' => 'getContactMobile',
        'contactPhone' => 'getContactPhone',
        'extInfos' => 'getExtInfos',
        'industryInfo' => 'getIndustryInfo',
        'industryLicense' => 'getIndustryLicense',
        'ipRoleId' => 'getIpRoleId',
        'legalCertNo' => 'getLegalCertNo',
        'legalName' => 'getLegalName',
        'licenseAuthLetterImage' => 'getLicenseAuthLetterImage',
        'memo' => 'getMemo',
        'newBusinessTime' => 'getNewBusinessTime',
        'newShopCategory' => 'getNewShopCategory',
        'outDoorImages' => 'getOutDoorImages',
        'qualifications' => 'getQualifications',
        'scene' => 'getScene',
        'settleAlipayLogonId' => 'getSettleAlipayLogonId',
        'shopCategory' => 'getShopCategory',
        'shopId' => 'getShopId',
        'shopInfoStatus' => 'getShopInfoStatus',
        'shopMainType' => 'getShopMainType',
        'shopName' => 'getShopName',
        'shopRecommendInfo' => 'getShopRecommendInfo',
        'shopType' => 'getShopType',
        'storeId' => 'getStoreId'
    ];

    /**
     * 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['alipayPoiid'] = $data['alipayPoiid'] ?? null;
        $this->container['brandId'] = $data['brandId'] ?? null;
        $this->container['businessAddress'] = $data['businessAddress'] ?? null;
        $this->container['businessTime'] = $data['businessTime'] ?? null;
        $this->container['certImage'] = $data['certImage'] ?? null;
        $this->container['certName'] = $data['certName'] ?? null;
        $this->container['certNo'] = $data['certNo'] ?? null;
        $this->container['certType'] = $data['certType'] ?? null;
        $this->container['contactInfos'] = $data['contactInfos'] ?? null;
        $this->container['contactMobile'] = $data['contactMobile'] ?? null;
        $this->container['contactPhone'] = $data['contactPhone'] ?? null;
        $this->container['extInfos'] = $data['extInfos'] ?? null;
        $this->container['industryInfo'] = $data['industryInfo'] ?? null;
        $this->container['industryLicense'] = $data['industryLicense'] ?? null;
        $this->container['ipRoleId'] = $data['ipRoleId'] ?? null;
        $this->container['legalCertNo'] = $data['legalCertNo'] ?? null;
        $this->container['legalName'] = $data['legalName'] ?? null;
        $this->container['licenseAuthLetterImage'] = $data['licenseAuthLetterImage'] ?? null;
        $this->container['memo'] = $data['memo'] ?? null;
        $this->container['newBusinessTime'] = $data['newBusinessTime'] ?? null;
        $this->container['newShopCategory'] = $data['newShopCategory'] ?? null;
        $this->container['outDoorImages'] = $data['outDoorImages'] ?? null;
        $this->container['qualifications'] = $data['qualifications'] ?? null;
        $this->container['scene'] = $data['scene'] ?? null;
        $this->container['settleAlipayLogonId'] = $data['settleAlipayLogonId'] ?? null;
        $this->container['shopCategory'] = $data['shopCategory'] ?? null;
        $this->container['shopId'] = $data['shopId'] ?? null;
        $this->container['shopInfoStatus'] = $data['shopInfoStatus'] ?? null;
        $this->container['shopMainType'] = $data['shopMainType'] ?? null;
        $this->container['shopName'] = $data['shopName'] ?? null;
        $this->container['shopRecommendInfo'] = $data['shopRecommendInfo'] ?? null;
        $this->container['shopType'] = $data['shopType'] ?? null;
        $this->container['storeId'] = $data['storeId'] ?? 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 alipayPoiid
     *
     * @return string|null
     */
    public function getAlipayPoiid()
    {
        return $this->container['alipayPoiid'];
    }

    /**
     * Sets alipayPoiid
     *
     * @param string|null $alipayPoiid 门店地址库 ID，按照一定的平台规则识别出的线下真实存在、真实经营的蚂蚁门店地址库 ID，将作用于服务商的返佣激励、商品/券等权益的公域分发。如平台未返回alipay_poiid，请在确认门店信息真实有效后，稍后再进行查询。
     *
     * @return self
     */
    public function setAlipayPoiid($alipayPoiid)
    {
        $this->container['alipayPoiid'] = $alipayPoiid;

        return $this;
    }

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

    /**
     * Sets brandId
     *
     * @param string|null $brandId 品牌id
     *
     * @return self
     */
    public function setBrandId($brandId)
    {
        $this->container['brandId'] = $brandId;

        return $this;
    }

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

    /**
     * Sets businessAddress
     *
     * @param \Alipay\OpenAPISDK\Model\AddressInfo|null $businessAddress businessAddress
     *
     * @return self
     */
    public function setBusinessAddress($businessAddress)
    {
        $this->container['businessAddress'] = $businessAddress;

        return $this;
    }

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

    /**
     * Sets businessTime
     *
     * @param \Alipay\OpenAPISDK\Model\ShopBusinessTime[]|null $businessTime 店铺经营时间。
     *
     * @return self
     */
    public function setBusinessTime($businessTime)
    {
        $this->container['businessTime'] = $businessTime;

        return $this;
    }

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

    /**
     * Sets certImage
     *
     * @param string|null $certImage 营业执照图片url。返回值为一个有访问时限的链接
     *
     * @return self
     */
    public function setCertImage($certImage)
    {
        $this->container['certImage'] = $certImage;

        return $this;
    }

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

    /**
     * Sets certName
     *
     * @param string|null $certName 营业执照名称，值为营业执照或统一社会信用代码证上的名称。
     *
     * @return self
     */
    public function setCertName($certName)
    {
        $this->container['certName'] = $certName;

        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 certType
     *
     * @return string|null
     */
    public function getCertType()
    {
        return $this->container['certType'];
    }

    /**
     * Sets certType
     *
     * @param string|null $certType 证件类型，取值范围：201：营业执照；2011:多证合一(统一社会信用代码)。
     *
     * @return self
     */
    public function setCertType($certType)
    {
        $this->container['certType'] = $certType;

        return $this;
    }

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

    /**
     * Sets contactInfos
     *
     * @param \Alipay\OpenAPISDK\Model\ContactInfo[]|null $contactInfos 联系人信息。
     *
     * @return self
     */
    public function setContactInfos($contactInfos)
    {
        $this->container['contactInfos'] = $contactInfos;

        return $this;
    }

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

    /**
     * Sets contactMobile
     *
     * @param string|null $contactMobile 店铺联系手机
     *
     * @return self
     */
    public function setContactMobile($contactMobile)
    {
        $this->container['contactMobile'] = $contactMobile;

        return $this;
    }

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

    /**
     * Sets contactPhone
     *
     * @param string|null $contactPhone 店铺的联系固话
     *
     * @return self
     */
    public function setContactPhone($contactPhone)
    {
        $this->container['contactPhone'] = $contactPhone;

        return $this;
    }

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

    /**
     * Sets extInfos
     *
     * @param \Alipay\OpenAPISDK\Model\ShopExtInfo[]|null $extInfos 扩展信息列表。key值需要向对应行业的bd进行申请。
     *
     * @return self
     */
    public function setExtInfos($extInfos)
    {
        $this->container['extInfos'] = $extInfos;

        return $this;
    }

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

    /**
     * Sets industryInfo
     *
     * @param \Alipay\OpenAPISDK\Model\MerchantShopIndustryInfo[]|null $industryInfo 查询门店详情时，如果需要同时返回行业信息，需要设置入参中的need_industry_info=1
     *
     * @return self
     */
    public function setIndustryInfo($industryInfo)
    {
        $this->container['industryInfo'] = $industryInfo;

        return $this;
    }

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

    /**
     * Sets industryLicense
     *
     * @param \Alipay\OpenAPISDK\Model\ShopIndustryLicense[]|null $industryLicense 查询门店详情时，如果需要同时返回行业资质，需要设置入参中的need_industry_license=1
     *
     * @return self
     */
    public function setIndustryLicense($industryLicense)
    {
        $this->container['industryLicense'] = $industryLicense;

        return $this;
    }

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

    /**
     * Sets ipRoleId
     *
     * @param string|null $ipRoleId 商户角色id，门店属于哪个商户角色。对于直连开店场景，为商户pid；对于间连开店场景（线上、线下、直付通），为商户smid。
     *
     * @return self
     */
    public function setIpRoleId($ipRoleId)
    {
        $this->container['ipRoleId'] = $ipRoleId;

        return $this;
    }

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

    /**
     * Sets legalCertNo
     *
     * @param string|null $legalCertNo 法人身份证号。
     *
     * @return self
     */
    public function setLegalCertNo($legalCertNo)
    {
        $this->container['legalCertNo'] = $legalCertNo;

        return $this;
    }

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

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

        return $this;
    }

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

    /**
     * Sets licenseAuthLetterImage
     *
     * @param string|null $licenseAuthLetterImage 营业执照授权函。返回值为一个有访问时限的链接
     *
     * @return self
     */
    public function setLicenseAuthLetterImage($licenseAuthLetterImage)
    {
        $this->container['licenseAuthLetterImage'] = $licenseAuthLetterImage;

        return $this;
    }

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

    /**
     * Sets memo
     *
     * @param string|null $memo 备注
     *
     * @return self
     */
    public function setMemo($memo)
    {
        $this->container['memo'] = $memo;

        return $this;
    }

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

    /**
     * Sets newBusinessTime
     *
     * @param \Alipay\OpenAPISDK\Model\ComplexBusinessTime[]|null $newBusinessTime 门店营业时间，支持一周7天，支持1天内多时间段
     *
     * @return self
     */
    public function setNewBusinessTime($newBusinessTime)
    {
        $this->container['newBusinessTime'] = $newBusinessTime;

        return $this;
    }

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

    /**
     * Sets newShopCategory
     *
     * @param string|null $newShopCategory 新版门店类目标准二级类目code
     *
     * @return self
     */
    public function setNewShopCategory($newShopCategory)
    {
        $this->container['newShopCategory'] = $newShopCategory;

        return $this;
    }

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

    /**
     * Sets outDoorImages
     *
     * @param string[]|null $outDoorImages 门头照，返回值为一个有访问时限的链接
     *
     * @return self
     */
    public function setOutDoorImages($outDoorImages)
    {
        $this->container['outDoorImages'] = $outDoorImages;

        return $this;
    }

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

    /**
     * Sets qualifications
     *
     * @param \Alipay\OpenAPISDK\Model\IndustryQualificationInfo[]|null $qualifications 行业特殊资质。
     *
     * @return self
     */
    public function setQualifications($qualifications)
    {
        $this->container['qualifications'] = $qualifications;

        return $this;
    }

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

    /**
     * Sets scene
     *
     * @param string|null $scene 场景
     *
     * @return self
     */
    public function setScene($scene)
    {
        $this->container['scene'] = $scene;

        return $this;
    }

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

    /**
     * Sets settleAlipayLogonId
     *
     * @param string|null $settleAlipayLogonId 结算支付宝账号的登录号
     *
     * @return self
     */
    public function setSettleAlipayLogonId($settleAlipayLogonId)
    {
        $this->container['settleAlipayLogonId'] = $settleAlipayLogonId;

        return $this;
    }

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

    /**
     * Sets shopCategory
     *
     * @param string|null $shopCategory 店铺类目，取值参见文件中的三级门店类目<a herf=\"https://mif-pub.alipayobjects.com/ShopCategory.xlsx\"></a>
     *
     * @return self
     */
    public function setShopCategory($shopCategory)
    {
        $this->container['shopCategory'] = $shopCategory;

        return $this;
    }

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

    /**
     * Sets shopId
     *
     * @param string|null $shopId 支付宝侧蚂蚁店铺 id
     *
     * @return self
     */
    public function setShopId($shopId)
    {
        $this->container['shopId'] = $shopId;

        return $this;
    }

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

    /**
     * Sets shopInfoStatus
     *
     * @param string|null $shopInfoStatus 当前名称、地址、经纬度信息准确一致，可用于数字化经营场景消费(如商品、券、消费圈等场域的分发)，不影响门店支付结算
     *
     * @return self
     */
    public function setShopInfoStatus($shopInfoStatus)
    {
        $this->container['shopInfoStatus'] = $shopInfoStatus;

        return $this;
    }

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

    /**
     * Sets shopMainType
     *
     * @param string|null $shopMainType 主要针对医疗行业门店主体类型进件使用，不同门店认证主体需要相应的主体资质证书。  企业营业执照: ENTERPRISE;  事业单位法人证书: INST_RGST_CTF;  民办非企业单位登记证书 PRIVATE_NON_ENTERPRISE
     *
     * @return self
     */
    public function setShopMainType($shopMainType)
    {
        $this->container['shopMainType'] = $shopMainType;

        return $this;
    }

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

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

        return $this;
    }

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

    /**
     * Sets shopRecommendInfo
     *
     * @param \Alipay\OpenAPISDK\Model\ShopRecommendInfo|null $shopRecommendInfo shopRecommendInfo
     *
     * @return self
     */
    public function setShopRecommendInfo($shopRecommendInfo)
    {
        $this->container['shopRecommendInfo'] = $shopRecommendInfo;

        return $this;
    }

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

    /**
     * Sets shopType
     *
     * @param string|null $shopType 店铺经营类型
     *
     * @return self
     */
    public function setShopType($shopType)
    {
        $this->container['shopType'] = $shopType;

        return $this;
    }

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

    /**
     * Sets storeId
     *
     * @param string|null $storeId 商户侧门店编号。表示该门店在该商户角色id(直连pid，间连smid)下，由商户自己定义的外部门店编号。若未传入 shop_id  则本参数与与ip_role_id均必填。
     *
     * @return self
     */
    public function setStoreId($storeId)
    {
        $this->container['storeId'] = $storeId;

        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));
    }
}


