package com.xhpc.user.domain;

import com.xhpc.common.core.web.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;

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


/**
 * 流量用户 xhpc_internet_user
 *
 * @author ruoyi
 */
public class XhpcInternetUser extends BaseEntity {

    /**
     * 用户id
     */
    private Long internetUserId;

    /**
     * 名称
     */
    @NotBlank(message = "名称不能为空")
    @Length(max = 12, message = "名称不能超过12位")
    private String name;

    /**
     * 手机号码（帐号）
     */
    @NotBlank(message = "手机号码不能为空")
    @Length(max = 11, message = "手机号码不能超过11位")
    private String phone;

    /**
     * 联系人
     */
    @NotBlank(message = "联系人不能为空")
    @Length(max = 12, message = "联系人不能超过12位")
    private String contactName;

    /**
     * 联系人电话
     */
    @NotBlank(message = "联系人电话不能为空")
    @Length(max = 11, message = "联系人电话不能超过11位")
    private String contactPhone;

    /**
     * 开户行
     */
    @NotBlank(message = "开户行不能为空")
    @Length(max = 20, message = "开户行电话不能超过20位")
    private String openBank;

    /**
     * 卡号
     */
    @NotNull(message = "卡号不能为空")
    @Length(max = 20, message = "卡号不能超过20位")
    private String cardNumber;

    /**
     * 合作开始时间
     */
    private Date cooperationStartTime;

    /**
     * 合作结束时间
     */
    private Date cooperationEndTime;

    /**
     * 余额
     */
    private BigDecimal balance;

    /**
     * 地址code
     */
    @NotNull(message = "地址不能为空")
    private Integer areaCode;

    /**
     * 地址
     */
    @NotBlank(message = "地址不能为空")
    @Length(max = 50, message = "地址不能超过50位")
    private String address;

    /**
     * 详细地址
     */
    @NotBlank(message = "详细地址不能为空")
    @Length(max = 50, message = "详细地址不能超过50位")
    private String detailedAddress;

    /**
     * 优惠渠道，我们给流量方的优惠（0总金额提成 1服务费提成）
     */
    @NotNull(message = "提成类型不能为空")
    private Integer commissionType;

    /**
     * 优惠率
     */
    @NotNull(message = "提成率不能为空")
    private Double commissionRate;

    /**
     * 经度
     */
    @NotBlank(message = "经度不能为空")
    private String longitude;

    /**
     * 纬度
     */
    @NotBlank(message = "纬度不能为空")
    private String latitude;

    /**
     * 帐号状态
     */
    private Integer status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 对接第三方平台及监管平台的operatorId
     */
    @NotBlank(message = "operatorId不能为空")
    private String operatorIdEvcs;

    /**
     * 角色id
     */
    private Long roleId;

    public String getOperatorIdEvcs() {

        return operatorIdEvcs;
    }

    public void setOperatorIdEvcs(String operatorIdEvcs) {

        this.operatorIdEvcs = operatorIdEvcs;
    }

    public Long getInternetUserId() {
        return internetUserId;
    }

    public void setInternetUserId(Long internetUserId) {
        this.internetUserId = internetUserId;
    }

    public String getName() {
        return name;
    }

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

    public String getPhone() {
        return phone;
    }

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

    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 getOpenBank() {
        return openBank;
    }

    public void setOpenBank(String openBank) {
        this.openBank = openBank;
    }

    public String getCardNumber() {
        return cardNumber;
    }

    public void setCardNumber(String cardNumber) {
        this.cardNumber = cardNumber;
    }

    public Date getCooperationStartTime() {
        return cooperationStartTime;
    }

    public void setCooperationStartTime(Date cooperationStartTime) {
        this.cooperationStartTime = cooperationStartTime;
    }

    public Date getCooperationEndTime() {
        return cooperationEndTime;
    }

    public void setCooperationEndTime(Date cooperationEndTime) {
        this.cooperationEndTime = cooperationEndTime;
    }

    public BigDecimal getBalance() {
        return balance;
    }

    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }

    public Integer getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(Integer areaCode) {
        this.areaCode = areaCode;
    }

    public String getAddress() {
        return address;
    }

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

    public String getDetailedAddress() {
        return detailedAddress;
    }

    public void setDetailedAddress(String detailedAddress) {
        this.detailedAddress = detailedAddress;
    }

    public Integer getCommissionType() {
        return commissionType;
    }

    public void setCommissionType(Integer commissionType) {
        this.commissionType = commissionType;
    }

    public Double getCommissionRate() {
        return commissionRate;
    }

    public void setCommissionRate(Double commissionRate) {
        this.commissionRate = commissionRate;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public Long getRoleId() {
        return roleId;
    }
}
