package com.ruoyi.buyerapi.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;
import java.util.List;

/**
 * 会员企业信息对象 buyer_company_info
 *
 * @author zq
 * @date 2022-09-20
 */
@Data
@ApiModel(value = "会员企业信息对象")
public class BuyerCompanyInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty(value = "id")
    private String id;

    /** 备注 */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注")
    private String remarks;

    /** 删除标志（0代表存在 1代表删除） */
    @ApiModelProperty(value = "删除标志（0代表存在 1代表删除）")
    private String delFlag;

    /** 部门id */
    @ApiModelProperty(value = "部门id")
    @Excel(name = "部门id")
    private String deptId;

    /** 绑定的登录用户id */
    @ApiModelProperty(value = "绑定的登录用户id")
    @Excel(name = "绑定的登录用户id")
    private Long userId;

    /** 名称 */
    @ApiModelProperty(value = "名称")
    @Excel(name = "名称")
    private String name;

    /** 信用代码 */
    @ApiModelProperty(value = "信用代码")
    @Excel(name = "信用代码")
    private String code;

    /** 联系人 */
    @ApiModelProperty(value = "联系人")
    @Excel(name = "联系人")
    private String contacts;

    /** 联系人电话 */
    @ApiModelProperty(value = "联系人电话")
    @Excel(name = "联系人电话")
    private String phone;

    /** 会员类型（0会员 1非会员） */
    @ApiModelProperty(value = "会员类型（0会员 1非会员）")
    @Excel(name = "会员类型", readConverterExp = "0=会员,1=非会员")
    private String type;

    /** 认证类型（0未认证 1审核中 2已认证） */
    @ApiModelProperty(value = "认证类型（0未认证 1审核中 2已认证）")
    @Excel(name = "认证类型", readConverterExp = "0=未认证,1=审核中,2=已认证")
    private String authStatus;

    /** 账号状态（0正常 1停用） */
    @ApiModelProperty(value = "账号状态（0正常 1停用）")
    @Excel(name = "账号状态", readConverterExp = "0=正常,1=停用")
    private String accountStatus;

    /** 认证时间 */
    @ApiModelProperty(value = "认证时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "认证时间")
    private Date authTime;

    /** 到期时间 */
    @ApiModelProperty(value = "到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到期时间")
    private Date expireTime;

    /** 是否到期（0否 1是） */
    @ApiModelProperty(value = "0否 1是")
    private String isExpire;

    /** 审核人id */
    @ApiModelProperty(value = "审核人id")
    @Excel(name = "审核人id")
    private Long reviewerId;

    /** 审核人 */
    @ApiModelProperty(value = "审核人")
    @Excel(name = "审核人")
    private String reviewer;

    /** 账号 */
    @ApiModelProperty(value = "账号")
    @Excel(name = "账号")
    private String userName;
    /** 昵称 */
    @ApiModelProperty(value = "昵称")
    @Excel(name = "昵称")
    private String nickName;

    /** 手机号码 */
    @ApiModelProperty(value = "手机号码")
    @Excel(name = "手机号码")
    private String phoneNumber;

    /** 密码 */
    @ApiModelProperty(value = "密码")
    @Excel(name = "密码")
    private String password;

    /** 注册时间 */
    @ApiModelProperty(value = "注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "注册时间")
    private Date registerTime;

    /** 最后登录时间 */
    @ApiModelProperty(value = "最后登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后登录时间")
    private Date loginDate;

    /** 充值会员时长 */
    @ApiModelProperty(value = "充值会员时长")
    @Excel(name = "充值会员时长")
    private Integer duration;

    /** 充值单位 */
    @ApiModelProperty(value = "充值单位")
    @Excel(name = "充值单位")
    private String unit;

    /** 会员剩余时长 */
    @ApiModelProperty(value = "会员剩余时长")
    @Excel(name = "会员剩余时长")
    private String endLength;

    /** 选择 */
    @ApiModelProperty(value = "选择")
    private String choice;

    /** 每小时 */
    @ApiModelProperty(value = "每小时")
    private String hour;

    /** 每一天 */
    @ApiModelProperty(value = "每一天")
    private String day;

    /** 开始日期 */
    private Date startDate;

    /** 开始日期 */
    private Date endDate;

    /** 关联文件 */
    private List<BuyerFileInfo> buyerFileInfos;

    /** 文件信息 */
    @ApiModelProperty(value = "文件信息")
    private String fileNames;


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

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

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

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setDeptId(String deptId)
    {
        this.deptId = deptId;
    }

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

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

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

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

    public String getPhone()
    {
        return phone;
    }
    public void setType(String type)
    {
        this.type = type;
    }

    public String getType()
    {
        return type;
    }
    public void setAuthStatus(String authStatus)
    {
        this.authStatus = authStatus;
    }

    public String getAuthStatus()
    {
        return authStatus;
    }
    public void setAccountStatus(String accountStatus)
    {
        this.accountStatus = accountStatus;
    }

    public String getAccountStatus()
    {
        return accountStatus;
    }
    public void setAuthTime(Date authTime) { this.authTime = authTime; }

    public Date getAuthTime() { return authTime; }
    public void setExpireTime(Date expireTime)
    {
        this.expireTime = expireTime;
    }

    public Date getExpireTime()
    {
        return expireTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remarks", getRemarks())
            .append("delFlag", getDelFlag())
            .append("deptId", getDeptId())
            .append("userId", getUserId())
            .append("name", getName())
            .append("code", getCode())
            .append("contacts", getContacts())
            .append("phone", getPhone())
            .append("type", getType())
            .append("authStatus", getAuthStatus())
            .append("accountStatus", getAccountStatus())
            .append("authTime", getAuthTime())
            .append("expireTime", getExpireTime())
            .toString();
    }
}
