
package com.tmerclub.cloud.multishop.dto;

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

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

/**
 * 店铺工商信息DTO
 *
 * @author lth
 */
public class ShopCompanyDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "统一社会信用代码")
    @NotBlank(message = "统一社会信用代码不能为空")
    private String creditCode;

    @Schema(description = "企业名称")
    @NotBlank(message = "企业名称不能为空")
    @Length(max = 50, message = "企业名称字符长度不能超过50")
    private String firmName;

    @Schema(description = "住所")
    @Length(max = 50, message = "住所字符长度不能超过50")
    private String residence;

    @Schema(description = "法定代表人")
    @Length(max = 20, message = "法定代表人字符长度不能超过20")
    private String representative;

    @Schema(description = "法人身份证号")
    private String legalIds;

    @Schema(description = "法人手机号码")
    private String legalPhone;

    @Schema(description = "注册资本(万元）")
    private Double capital;

    @Schema(description = "成立日期")
    private Date foundTime;

    @Schema(description = "营业起始日期")
    @NotNull(message = "营业起始日期不能为空")
    private Date startTime;

    @Schema(description = "营业终止时间")
    private Date endTime;

    @Schema(description = "经营范围")
    @NotBlank(message = "经营范围不能为空")
    @Length(max = 500, message = "经营范围字符长度不能超过500")
    private String businessScope;

    @Schema(description = "营业执照")
    @NotBlank(message = "营业执照不能为空")
    private String businessLicense;

    @Schema(description = "身份证正面")
    private String identityCardFront;

    @Schema(description = "身份证反面")
    private String identityCardLater;

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public String getCreditCode() {
        return creditCode;
    }

    public void setCreditCode(String creditCode) {
        this.creditCode = creditCode;
    }

    public String getFirmName() {
        return firmName;
    }

    public void setFirmName(String firmName) {
        this.firmName = firmName;
    }

    public String getResidence() {
        return residence;
    }

    public void setResidence(String residence) {
        this.residence = residence;
    }

    public String getRepresentative() {
        return representative;
    }

    public void setRepresentative(String representative) {
        this.representative = representative;
    }

    public String getLegalIds() {
        return legalIds;
    }

    public void setLegalIds(String legalIds) {
        this.legalIds = legalIds;
    }

    public String getLegalPhone() {
        return legalPhone;
    }

    public void setLegalPhone(String legalPhone) {
        this.legalPhone = legalPhone;
    }

    public Double getCapital() {
        return capital;
    }

    public void setCapital(Double capital) {
        this.capital = capital;
    }

    public Date getFoundTime() {
        return foundTime;
    }

    public void setFoundTime(Date foundTime) {
        this.foundTime = foundTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public String getBusinessScope() {
        return businessScope;
    }

    public void setBusinessScope(String businessScope) {
        this.businessScope = businessScope;
    }

    public String getBusinessLicense() {
        return businessLicense;
    }

    public void setBusinessLicense(String businessLicense) {
        this.businessLicense = businessLicense;
    }

    public String getIdentityCardFront() {
        return identityCardFront;
    }

    public void setIdentityCardFront(String identityCardFront) {
        this.identityCardFront = identityCardFront;
    }

    public String getIdentityCardLater() {
        return identityCardLater;
    }

    public void setIdentityCardLater(String identityCardLater) {
        this.identityCardLater = identityCardLater;
    }

    @Override
    public String toString() {
        return "ShopCompanyDTO{" +
                "shopId=" + shopId +
                ", creditCode='" + creditCode + '\'' +
                ", firmName='" + firmName + '\'' +
                ", residence='" + residence + '\'' +
                ", representative='" + representative + '\'' +
                ", legalIds='" + legalIds + '\'' +
                ", legalPhone='" + legalPhone + '\'' +
                ", capital=" + capital +
                ", foundTime=" + foundTime +
                ", startTime=" + startTime +
                ", endTime=" + endTime +
                ", businessScope='" + businessScope + '\'' +
                ", businessLicense='" + businessLicense + '\'' +
                ", identityCardFront='" + identityCardFront + '\'' +
                ", identityCardLater='" + identityCardLater + '\'' +
                '}';
    }
}
