/*
 * The version of the OpenAPI document: v1
 * Contact: developer-experience@adyen.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit this class manually.
 */

import { Address2 } from './address2';
import { StoreSplitConfiguration } from './storeSplitConfiguration';

export class StoreCreationWithMerchantCodeRequest {
    'address': Address2;
    /**
    * The unique identifiers of the [business lines](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/businesslines__resParam_id) that the store is associated with. If not specified, the business line of the merchant account is used. Required when there are multiple business lines under the merchant account.
    */
    'businessLineIds'?: Array<string>;
    /**
    * Your description of the store.
    */
    'description': string;
    /**
    * When using the Zip payment method: The location ID that Zip has assigned to your store.
    */
    'externalReferenceId'?: string;
    /**
    * The unique identifier of the merchant account that the store belongs to.
    */
    'merchantId': string;
    /**
    * The phone number of the store, including \'+\' and country code.
    */
    'phoneNumber': string;
    /**
    * Your reference to recognize the store by. Also known as the store code.  Allowed characters: Lowercase and uppercase letters without diacritics, numbers 0 through 9, hyphen (-), and underscore (_).
    */
    'reference'?: string;
    /**
    * The store name to be shown on the shopper\'s bank or credit card statement and on the shopper receipt. Maximum length: 22 characters; can\'t be all numbers.
    */
    'shopperStatement': string;
    'splitConfiguration'?: StoreSplitConfiguration;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "address",
            "baseName": "address",
            "type": "Address2"
        },
        {
            "name": "businessLineIds",
            "baseName": "businessLineIds",
            "type": "Array<string>"
        },
        {
            "name": "description",
            "baseName": "description",
            "type": "string"
        },
        {
            "name": "externalReferenceId",
            "baseName": "externalReferenceId",
            "type": "string"
        },
        {
            "name": "merchantId",
            "baseName": "merchantId",
            "type": "string"
        },
        {
            "name": "phoneNumber",
            "baseName": "phoneNumber",
            "type": "string"
        },
        {
            "name": "reference",
            "baseName": "reference",
            "type": "string"
        },
        {
            "name": "shopperStatement",
            "baseName": "shopperStatement",
            "type": "string"
        },
        {
            "name": "splitConfiguration",
            "baseName": "splitConfiguration",
            "type": "StoreSplitConfiguration"
        }    ];

    static getAttributeTypeMap() {
        return StoreCreationWithMerchantCodeRequest.attributeTypeMap;
    }
}

