/*
 * 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 { StoreSplitConfiguration } from './storeSplitConfiguration';
import { UpdatableAddress } from './updatableAddress';

export class UpdateStoreRequest {
    'address'?: UpdatableAddress;
    /**
    * 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.
    */
    'businessLineIds'?: Array<string>;
    /**
    * The description of the store.
    */
    'description'?: string;
    /**
    * When using the Zip payment method: The location ID that Zip has assigned to your store.
    */
    'externalReferenceId'?: string;
    'splitConfiguration'?: StoreSplitConfiguration;
    /**
    * The status of the store. Possible values are:  - **active**: This value is assigned automatically when a store is created.  - **inactive**: The maximum [transaction limits and number of Store-and-Forward transactions](https://docs.adyen.com/point-of-sale/determine-account-structure/configure-features#payment-features) for the store are set to 0. This blocks new transactions, but captures are still possible. - **closed**: The terminals of the store are reassigned to the merchant inventory, so they can\'t process payments.  You can change the status from **active** to **inactive**, and from **inactive** to **active** or **closed**.  Once **closed**, a store can\'t be reopened.
    */
    'status'?: UpdateStoreRequest.StatusEnum;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "address",
            "baseName": "address",
            "type": "UpdatableAddress"
        },
        {
            "name": "businessLineIds",
            "baseName": "businessLineIds",
            "type": "Array<string>"
        },
        {
            "name": "description",
            "baseName": "description",
            "type": "string"
        },
        {
            "name": "externalReferenceId",
            "baseName": "externalReferenceId",
            "type": "string"
        },
        {
            "name": "splitConfiguration",
            "baseName": "splitConfiguration",
            "type": "StoreSplitConfiguration"
        },
        {
            "name": "status",
            "baseName": "status",
            "type": "UpdateStoreRequest.StatusEnum"
        }    ];

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

export namespace UpdateStoreRequest {
    export enum StatusEnum {
        Active = <any> 'active',
        Closed = <any> 'closed',
        Inactive = <any> 'inactive'
    }
}
