package cn.newfeifan.mall.sale.controller.admin.merchantapply.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.*;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 商户申请新增/修改 Request VO")
@Data
public class MerchantApplySaveReqVO {

    @Schema(description = "商户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32267")
    private Long id;

    @Schema(description = "logo地址", example = "https://www.zhongxing.cn")
    private String logoUrl;

    @Schema(description = "商户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "非繁人")
    @NotEmpty(message = "商户名称不能为空")
    private String name;

    @Schema(description = "商户状态，关联商户状态表", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer status;

    @Schema(description = "简介", example = "随便")
    private String description;

    @Schema(description = "商户负责人")
    private String contact;

    @Schema(description = "所在地")
    private String address;

    @Schema(description = "负责人电话")
    private String contactNumber;

    @Schema(description = "域名")
    private String website;

    @Schema(description = "商户官网", example = "https://www.zhongxing.cn")
    private String businessUrl;

    @Schema(description = "维权电话")
    private String complaintsHotline;

    @Schema(description = "客服电话")
    private String customerServiceHotline;

    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "营业执照图片路径")
    private String businessLicensePicture;

    @Schema(description = "服务套餐", example = "18036")
    private Integer packageId;

    @Schema(description = "店铺数量", example = "31320")
    private Integer shopCount;

    @Schema(description = "服务到期时间")
    private LocalDateTime expireTime;

    @Schema(description = "区域id，对应文件系统 src/main/resources/area.csv 中的id一列", example = "28982")
    private Long areaId;

    @Schema(description = "申请用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7189")
    private Long applyMemberUserId;

    @Schema(description = "审核系统用户id", example = "29612")
    private Long checkSystemUserId;

    @Schema(description = "审核时间")
    private LocalDateTime checkTime;

    @Schema(description = "审核意见")
    private String checkComment;

    @Schema(description = "申请备注")
    private String applyComment;

    @Schema(description = "审核状态：默认0表示未审核，1审核通过，2审核不通过", example = "1")
    private Integer checkStatus;

    @Schema(description = "账户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    private String accountName;

    @Schema(description = "账户号码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String accountNumber;

    @Schema(description = "开户银行", requiredMode = Schema.RequiredMode.REQUIRED, example = "非繁人")
    private String bankName;

    @Schema(description = "品牌授权书", requiredMode = Schema.RequiredMode.REQUIRED)
    private String brandLicensing;

    @Schema(description = "其他证书", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<String> otherCertificate;

    @Schema(description = "法人", requiredMode = Schema.RequiredMode.REQUIRED)
    private String legalPerson;

    @Schema(description = "法人电话", requiredMode = Schema.RequiredMode.REQUIRED)
    private String legalPersonNumber;

    @Schema(description = "身份证正面", requiredMode = Schema.RequiredMode.REQUIRED)
    private String identityCardFront;

    @Schema(description = "身份证反面", requiredMode = Schema.RequiredMode.REQUIRED)
    private String identityCardReverseSide;

    @Schema(description = "审核人状态：默认1表示廖总，2徐总，3翁总, 0通过", example = "2")
    private Integer checkPersonStatus;
}