
package com.tmerclub.cloud.supplier.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import org.hibernate.validator.constraints.Length;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 供应商详情DTO
 *
 * @author lhd
 * @date 2022-03-14 17:04:32
 */
public class SupplierDetailDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "系统类型 1商家端  2平台端 3供应商端")
    private Integer sysType;

    @Schema(description = "供应商id")
    private Long supplierId;

    @Schema(description = "供应商名称")
    @NotBlank(message = "供应商名称不能为空")
    @Length(min = 2, max = 30, message = "供应商名称限制在2到30个字符之间")
    private String supplierName;

    @Schema(description = "供应商供应商名称")
    private String supplierShopName;

    @Schema(description = "联系人姓名")
    @NotBlank(message = "联系人不能为空")
    @Length(min = 2, max = 10, message = "联系人姓名需要在2到10个字符之间")
    private String contactName;

    @Schema(description = "联系方式")
    @NotBlank(message = "联系方式不能为空")
    private String contactPhone;

    @Schema(description = "供应商简介")
    @Length(max = 200, message = "供应商简介字符不能超过200")
    private String intro;

    @Schema(description = "接收短信号码")
    private String noticeMobile;

    @Schema(description = "供应商logo(可修改)")
    private String supplierLogo;

    @Schema(description = "供应商状态(-1:已删除 0: 停业中 1:营业中 2:平台下线 3:开店申请待审核 4:供应商申请中 5:上线申请待审核)")
    private Integer supplierStatus;

    @Schema(description = "备注信息")
    private String remarks;

    @Schema(description = "是否优选好店 1.是 0.不是")
    @Max(value = 1, message = "只能为0或1")
    @Min(value = 0, message = "只能为0或1")
    private Integer isPreferred;

    @Schema(description = "账号名", requiredMode = Schema.RequiredMode.REQUIRED)
    private String username;

    @Size(max = 64)
    @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String password;

    @Size(max = 15)
    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String phone;

    @Schema(description = "验证码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String code;

    @Schema(description = "移动端背景图")
    private String mobileBackgroundPic;

    @Schema(description = "pc背景图")
    private String pcBackgroundPic;

    @Schema(description = "供应商中的商品数量")
    @Max(value = 5, message = "最多只能返回5个商品")
    @Min(value = 0, message = "spuNum不能小于0")
    private Integer spuNum;

    @Schema(description = "签约起始时间")
    private Date contractStartTime;

    @Schema(description = "签约终止时间")
    private Date contractEndTime;

    @Schema(description = "支付系统类型 0默认 1通联")
    private Integer paySysType;

    public Integer getSysType() {
        return sysType;
    }

    public void setSysType(Integer sysType) {
        this.sysType = sysType;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierShopName() {
        return supplierShopName;
    }

    public void setSupplierShopName(String supplierShopName) {
        this.supplierShopName = supplierShopName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getIntro() {
        return intro;
    }

    public void setIntro(String intro) {
        this.intro = intro;
    }

    public String getNoticeMobile() {
        return noticeMobile;
    }

    public void setNoticeMobile(String noticeMobile) {
        this.noticeMobile = noticeMobile;
    }

    public String getSupplierLogo() {
        return supplierLogo;
    }

    public void setSupplierLogo(String supplierLogo) {
        this.supplierLogo = supplierLogo;
    }

    public Integer getSupplierStatus() {
        return supplierStatus;
    }

    public void setSupplierStatus(Integer supplierStatus) {
        this.supplierStatus = supplierStatus;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public Integer getIsPreferred() {
        return isPreferred;
    }

    public void setIsPreferred(Integer isPreferred) {
        this.isPreferred = isPreferred;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMobileBackgroundPic() {
        return mobileBackgroundPic;
    }

    public void setMobileBackgroundPic(String mobileBackgroundPic) {
        this.mobileBackgroundPic = mobileBackgroundPic;
    }

    public String getPcBackgroundPic() {
        return pcBackgroundPic;
    }

    public void setPcBackgroundPic(String pcBackgroundPic) {
        this.pcBackgroundPic = pcBackgroundPic;
    }

    public Integer getSpuNum() {
        return spuNum;
    }

    public void setSpuNum(Integer spuNum) {
        this.spuNum = spuNum;
    }

    public Date getContractStartTime() {
        return contractStartTime;
    }

    public void setContractStartTime(Date contractStartTime) {
        this.contractStartTime = contractStartTime;
    }

    public Date getContractEndTime() {
        return contractEndTime;
    }

    public void setContractEndTime(Date contractEndTime) {
        this.contractEndTime = contractEndTime;
    }

    public Integer getPaySysType() {
        return paySysType;
    }

    public void setPaySysType(Integer paySysType) {
        this.paySysType = paySysType;
    }

    @Override
    public String toString() {
        return "SupplierDetailDTO{" +
                "sysType=" + sysType +
                ", supplierId=" + supplierId +
                ", supplierName='" + supplierName + '\'' +
                ", supplierShopName='" + supplierShopName + '\'' +
                ", contactName='" + contactName + '\'' +
                ", contactPhone='" + contactPhone + '\'' +
                ", intro='" + intro + '\'' +
                ", noticeMobile='" + noticeMobile + '\'' +
                ", supplierLogo='" + supplierLogo + '\'' +
                ", supplierStatus=" + supplierStatus +
                ", remarks='" + remarks + '\'' +
                ", isPreferred=" + isPreferred +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                ", code='" + code + '\'' +
                ", mobileBackgroundPic='" + mobileBackgroundPic + '\'' +
                ", pcBackgroundPic='" + pcBackgroundPic + '\'' +
                ", spuNum=" + spuNum +
                ", contractStartTime=" + contractStartTime +
                ", contractEndTime=" + contractEndTime +
                ", paySysType=" + paySysType +
                '}';
    }
}
