package com.cool.store.request;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
public class SysStoreAppRequest {

    @ApiModelProperty("主键id")
    private Long id;

    @ApiModelProperty("线索id")
    private Long lineId;

    @ApiModelProperty("筹建门店id")
    private Long shopId;

    private FranInfo franInfo;

    private StoreDetail storeDetail;

    private SupervisorDetail supervisorDetail;


    @Data
    public static class FranInfo {
        @ApiModelProperty("加盟商类型" +
                "0-新加盟商开单店;1-老加盟商开单店;" +
                "2-新加盟商开新区域单店;" +
                "3-新加盟商开老区域单店;" +
                "4-老加盟商开新区域单店;" +
                "5-老加盟商开老区域单店;" +
                "6-直营门店;" +
                "7-同异业转化;" +
                "8-老加盟商迁址开新店")
        @NotBlank(message = "加盟商类型不能为空")
        private Integer franchiseeType;

        @ApiModelProperty("门店邀约人id")
        @NotBlank(message = "门店邀约人id不能为空")
        private String inviteUserId;

        @ApiModelProperty("门店邀约人姓名")
        @NotBlank(message = "门店邀约人姓名不能为空")
        private String storeInviteesName;
    }

    @Data
    public static class StoreDetail {
        @ApiModelProperty("门店性质 20：加盟 10：直营")
        @NotBlank(message = "门店性质不能为空")
        private Integer storeNature;
        @ApiModelProperty("门店性质")
        @NotBlank(message = "门店性质不能为空")
        private Integer storeOperator;
        @ApiModelProperty("门店名称（默认带入一个门店名称，但是可修改）")
        @NotBlank(message = "门店名称不能为空")
        private String storeName;
        @ApiModelProperty("大区描述")
        @NotBlank(message = "大区描述不能为空")
        private String bigDesc;
        @ApiModelProperty("大区名称")
        @NotBlank(message = "大区名称不能为空")
        private String bigName;
        @ApiModelProperty("大区code")
        @NotBlank(message = "大区code不能为空")
        private String bigCode;

        @ApiModelProperty("战区描述")
        @NotBlank(message = "战区描述不能为空")
        private String fightDesc;
        @ApiModelProperty("战区编码")
        @NotBlank(message = "战区编码不能为空")
        private String fightCode;
        @ApiModelProperty("战区名称")
        @NotBlank(message = "战区名称不能为空")
        private String fightName;

        @ApiModelProperty("小区code")
        @NotBlank(message = "小区code不能为空")
        private String smallCode;
        @ApiModelProperty("小区描述")
        @NotBlank(message = "小区描述不能为空")
        private String smallDesc;
        @ApiModelProperty("小区名称")
        @NotBlank(message = "小区名称不能为空")
        private String smallName;

        @ApiModelProperty("主商圈类型 10-社区型;20-商业街边型;30-学校型;40-CBD/办公型;60-医院型;70-菜场型")
        @NotBlank(message = "主商圈类型不能为空")
        private Integer mainBusinessType;
        @ApiModelProperty("次商圈类型 10-社区型;20-商业街边型;30-学校型;40-CBD/办公型;60-医院型;70-菜场型")
        @NotBlank(message = "次商圈类型不能为空")
        private Integer subBusinessType;
        @ApiModelProperty("线下主要竞争对手 10-品牌水果店;20-夫妻水果店;30-菜场店;40-大商超;50-生鲜店;60-无")
        @NotBlank(message = "线下主要竞争对手不能为空")
        private Integer offlineCompetitor;
        @ApiModelProperty("线下主要竞争品牌")
        @NotBlank(message = "线下主要竞争品牌不能为空")
        private String offlineCompetingBrand;
        @ApiModelProperty("周边500米内二手房均价")
        @NotBlank(message = "周边500米内二手房均价不能为空")
        private Integer averagePriceSh;
        @ApiModelProperty("100米周末日均客流量指数 0：1000以下 1：1000-1万 2：1万以上")
        @NotBlank(message = "100米周末日均客流量指数不能为空")
        private Integer averageDailyRs;
        @ApiModelProperty("商圈门店类型 普通社区店 高档社区店")
        @NotBlank(message = "商圈门店类型不能为空")
        private String businessStoreType;
        @ApiModelProperty("预估营业额")
        @NotBlank(message = "预估营业额不能为空")
        private Integer estimatedTurnover;
        @ApiModelProperty("签约日期")
        @NotBlank(message = "签约日期不能为空")
        private Date signDate;
        @ApiModelProperty("房东姓名")
        @NotBlank(message = "房东姓名不能为空")
        private String landlordName;
        @ApiModelProperty("合同交房日期")
        @NotBlank(message = "合同交房日期不能为空")
        private Date contractDeliveryDate;
        @ApiModelProperty("房东联系电话")
        @NotBlank(message = "房东联系电话不能为空")
        private String landlordMobile;
        @ApiModelProperty("预约量房日期")
        @NotBlank(message = "预约量房日期不能为空")
        private Date reservation;
        @ApiModelProperty("门店月租金")
        @NotBlank(message = "门店月租金不能为空")
        private Integer storeRent;
        @ApiModelProperty("此店加盟费")
        @NotBlank(message = "此店加盟费不能为空")
        private Integer storeFranchiseFee;
        @ApiModelProperty("此店保证金")
        @NotBlank(message = "此店保证金不能为空")
        private Integer storeSecurityDeposit;
        @ApiModelProperty("享受加盟费和保证金优惠原因")
        private String reasons;
        @ApiModelProperty("品牌使用费率")
        @NotBlank(message = "品牌使用费率不能为空")
        private String usageRate;
        @ApiModelProperty("详细地址")
        private String detailAddress;

    }

    @Data
    public static class SupervisorDetail {

        @ApiModelProperty("督导姓名")
        private String supervisorName;

        @ApiModelProperty("督导工号")
        private String supervisorId;

        @ApiModelProperty("大区总姓名")
        private String regioGeneral;

        @ApiModelProperty("大区总工号")
        private String regioGeneralId;

    }

}


