package com.ym.mec.biz.dal.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.*;
import java.io.Serializable;

/**
 * @author hgw
 * Created by 2021-12-02
 */
@ApiModel(value = "机构参数")
public class TenantInfoDto implements Serializable {

    /**
     * 机构id
     */
    @ApiModelProperty(value = "机构id")
    private Integer id;

    /**
     * 机构名称
     */
    @NotBlank(message = "机构名称不能为空")
    @Size(max = 50, message = "机构名称长度不能超过50!")
    @ApiModelProperty(value = "机构名称")
    private String name;

    /**
     * 机构联系人
     */
    @NotBlank(message = "机构联系人不能为空")
    @Size(max = 14, message = "机构联系人名称不能超过14个字!")
    @ApiModelProperty(value = "机构联系人")
    private String contacts;

    /**
     * 机构联系人电话
     */
    @NotBlank(message = "机构联系人电话不能为空!")
    @Size(max = 12, message = "联系人电话手机号最高11位,座机号最高为12位,请核实后在填写!")
    @Pattern(regexp = "^[0-9]*$", message = "联系人电话只能填写数字,手机号最高11位,座机号最高为12位,请核实后在填写!")
    @ApiModelProperty(value = "机构联系人电话")
    private String phone;

    /**
     * 地址
     */
    @NotBlank(message = "地址不能为空!")
    @Size(max = 200, message = "地址不能超过200个字!")
    @ApiModelProperty(value = "地址")
    private String address;

    /**
     * 机构邮箱
     */
    @NotBlank(message = "邮箱不能为空!")
    @Email(message = "邮箱格式不正确！")
    @Size(max = 64, message = "邮箱长度不能超过64位!")
    @ApiModelProperty(value = "机构邮箱")
    private String email;

    /**
     * 机构logo
     */
    @ApiModelProperty(value = "机构logo")
    private String logo;

    @ApiModelProperty(value = "城市id-sys_area")
    private Integer areaId;

    /**
     * 客服电话
     */
    @Size(max = 13, message = "客服电话电话-手机号最高11位、座机号最高为13位,请核实后再填写!")
    @Pattern(regexp = "^[0-9]*$", message = "客服电话只能填写数字！")
    @ApiModelProperty(value = "客服电话")
    private String customerServicePhone;

    /**
     * 机构描述
     */
    @Size(max = 200, message = "机构描述不能超过200个字!")
    @ApiModelProperty(value = "机构描述")
    private String remark;

    @ApiModelProperty(value = "缴费状态 0未缴费  1已缴费")
    private Integer payState;

    @ApiModelProperty(value = "状态0 草稿 1启动 2停用")
    private Integer state;

    @NotBlank(message = "营业执照编号不能为空")
    @ApiModelProperty(value = "营业执照编号")
    private String tsignCode;

    @NotBlank(message = "公司名称名称不能为空")
    @ApiModelProperty(value = "公司名称")
    private String tsignName;

    @NotNull(message = "请选择机构的产品信息!")
    @ApiModelProperty(value = "机构关联的产品信息")
    private TenantProductInfoDto productInfo;

    @NotNull(message = "请填写机构配置参数信息!")
    @ApiModelProperty(value = "机构配置参数")
    private TenantConfigDto config;

    @ApiModelProperty(value = "购买的服务名称")
    private String platformServeName;

    @ApiModelProperty(value = "人数上线")
    private Integer studentUpLimit;

    @ApiModelProperty(value = "推荐人")
    private Integer recommender;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getPhone() {
        return phone;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public Integer getAreaId() {
        return areaId;
    }

    public void setAreaId(Integer areaId) {
        this.areaId = areaId;
    }

    public String getCustomerServicePhone() {
        return customerServicePhone;
    }

    public void setCustomerServicePhone(String customerServicePhone) {
        this.customerServicePhone = customerServicePhone;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getPayState() {
        return payState;
    }

    public void setPayState(Integer payState) {
        this.payState = payState;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public TenantProductInfoDto getProductInfo() {
        return productInfo;
    }

    public void setProductInfo(TenantProductInfoDto productInfo) {
        this.productInfo = productInfo;
    }

    public TenantConfigDto getConfig() {
        return config;
    }

    public void setConfig(TenantConfigDto config) {
        this.config = config;
    }

    public String getTsignCode() {
        return tsignCode;
    }

    public void setTsignCode(String tsignCode) {
        this.tsignCode = tsignCode;
    }

    public String getTsignName() {
        return tsignName;
    }

    public void setTsignName(String tsignName) {
        this.tsignName = tsignName;
    }

    public String getPlatformServeName() {
        return platformServeName;
    }

    public void setPlatformServeName(String platformServeName) {
        this.platformServeName = platformServeName;
    }

    public Integer getStudentUpLimit() {
        return studentUpLimit;
    }

    public void setStudentUpLimit(Integer studentUpLimit) {
        this.studentUpLimit = studentUpLimit;
    }

    public Integer getRecommender() {
        return recommender;
    }

    public void setRecommender(Integer recommender) {
        this.recommender = recommender;
    }
}
