package com.cpop.oam.business.bo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.experimental.Accessors;

import java.sql.Date;

/**
 * @author DB
 * @version 1.0.0
 * @since 2024-01-16 11:35
 */
@Data
@Accessors(chain = true)
@Schema(description = "云回调统一入参")
public class CloudUnionCallbackBo {

    /**
     * 回调枚举(DATA_IMPORT_CALLBACK:数据导入回调)
     */
    @NotBlank(message = "回调枚举不能为空")
    @Schema(description = "回调枚举(DATA_IMPORT_CALLBACK:数据导入回调;SYNC_BRAND_AND_STORE_CALLBACK:同步品牌与校区)",required = true)
    private String callbackEnum;

    /**
     * 主要id
     */
    @Schema(description = "主要id")
    private String mainId;

    /**
     * 同步品牌与校区相关参数
     */
    @Schema(description = "同步品牌与校区相关参数")
    private SyncBrandAndStore syncBrandAndStore;

    @Data
    @Schema(description = "同步品牌与校区")
    public class SyncBrandAndStore {

        /**
         * 品牌
         */
        @Schema(description = "品牌")
        private BrandInfo brandInfo;

        /**
         * 校区
         */
        @Schema(description = "校区")
        private StoreInfo storeInfo;


        /**
         * 品牌信息
         */
        @Data
        public class BrandInfo {

            /**
             * 云品牌id
             */
            @Schema(description = "云品牌id")
            private String brandCloudId;

            /**
             * 品牌名
             */
            @Schema(description = "品牌名")
            private String brandName;
        }

        /**
         * 校区信息
         */
        @Data
        public class StoreInfo {

            /**
             * 云品牌id
             */
            @Schema(description = "云校区id")
            private String storeCloudId;

            /**
             * 店铺/校区名
             */
            @Schema(description = "店铺/校区名")
            private String storeName;

            /**
             * 店铺/校区地址
             */
            @Schema(description = "店铺/校区地址")
            private String storeAddr;

            /**
             * 负责人
             */
            @Schema(description = "负责人")
            private String personCharge;

            /**
             * 手机号
             */
            @Schema(description = "手机号")
            private String phone;

            /**
             * 营业执照地址
             */
            @Schema(description = "营业执照地址")
            private String licenseAddr;

            /**
             * 营业执照日期
             */
            @Schema(description = "营业执照日期")
            private Date licenseDate;

            /**
             * 营业执照公司名
             */
            @Schema(description = "营业执照公司名")
            private String licenseName;

            /**
             * 营业执照证书码
             */
            @Schema(description = "营业执照证书码")
            private String licenseCode;

            /**
             * 营业执照法人名
             */
            @Schema(description = "营业执照法人名")
            private String licenseUserName;

            /**
             * 营业执照图片地址
             */
            @Schema(description = "营业执照图片地址")
            private String licensePicUrl;

            /**
             * 经度
             */
            @Schema(description = "经度")
            private String longitude;

            /**
             * 纬度
             */
            @Schema(description = "纬度")
            private String latitude;
        }
    }
}
