package com.jsowell.pile.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jsowell.common.annotation.Excel;
import com.jsowell.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 设备管理对象 pile_basic_info
 *
 * @author jsowell
 * @date 2022-08-26
 */
public class PileBasicInfo extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	private Long id;

	/**
	 * 桩号
	 */
	@Excel(name = "桩号")
	private String sn;

	/**
	 * 状态（0-未知；1-在线；2-离线；3-故障）
	 */
	// @Excel(name = "状态", readConverterExp = "0-未知；1-在线；2-离线；3-故障")
	// private String status;

	/**
	 * 经营类型（1-运营桩；2-个人桩）
	 */
	@Excel(name = "经营类型", readConverterExp = "1=-运营桩；2-个人桩")
	private String businessType;

	/**
	 * 个人桩密钥（八位，字母数字组合）
	 */
	@Excel(name = "个人桩密钥")
	private String secretKey;

	/**
	 * 软件协议（1-云快充；2-永联）
	 */
	@Excel(name = "软件协议", readConverterExp = "1=-云快充；2-永联")
	private String softwareProtocol;

	/**
	 * 生产日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
	private Date productionDate;

	/**
	 * 证书编号
	 */
	@Excel(name = "证书编号")
	private Long licenceId;

	/**
	 * 充电桩型号
	 */
	@Excel(name = "充电桩型号")
	private Long modelId;

	/**
	 * sim卡id
	 */
	@Excel(name = "sim卡id")
	private Long simId;

	/**
	 * 运营商id
	 */
	@Excel(name = "运营商id")
	private Long merchantId;

	/**
	 * 充电站id
	 */
	@Excel(name = "充电站id")
	private Long stationId;

	/**
	 * 故障原因
	 */
	@Excel(name = "故障原因")
	private String faultReason;

	private Date createTime;

	/**
	 * 删除标识（0-正常；1-删除）
	 */
	private String delFlag;

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

	public Long getId() {
		return id;
	}

	public void setSn(String sn) {
		this.sn = sn;
	}

	public String getSn() {
		return sn;
	}

	public void setBusinessType(String businessType) {
		this.businessType = businessType;
	}

	public String getBusinessType() {
		return businessType;
	}

	public void setSoftwareProtocol(String softwareProtocol) {
		this.softwareProtocol = softwareProtocol;
	}

	public String getSoftwareProtocol() {
		return softwareProtocol;
	}

	public void setProductionDate(Date productionDate) {
		this.productionDate = productionDate;
	}

	public Date getProductionDate() {
		return productionDate;
	}

	public void setLicenceId(Long licenceId) {
		this.licenceId = licenceId;
	}

	public Long getLicenceId() {
		return licenceId;
	}

	public void setModelId(Long modelId) {
		this.modelId = modelId;
	}

	public Long getModelId() {
		return modelId;
	}

	public void setSimId(Long simId) {
		this.simId = simId;
	}

	public Long getSimId() {
		return simId;
	}

	public void setMerchantId(Long merchantId) {
		this.merchantId = merchantId;
	}

	public Long getMerchantId() {
		return merchantId;
	}

	public void setStationId(Long stationId) {
		this.stationId = stationId;
	}

	public Long getStationId() {
		return stationId;
	}

	public void setFaultReason(String faultReason) {
		this.faultReason = faultReason;
	}

	public String getFaultReason() {
		return faultReason;
	}

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

	public String getDelFlag() {
		return delFlag;
	}

	public String getSecretKey() {
		return secretKey;
	}

	public void setSecretKey(String secretKey) {
		this.secretKey = secretKey;
	}

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	@Override
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
				.append("id", getId())
				.append("sn", getSn())
				.append("businessType", getBusinessType())
				.append("secretKey", getSecretKey())
				.append("softwareProtocol", getSoftwareProtocol())
				.append("productionDate", getProductionDate())
				.append("licenceId", getLicenceId())
				.append("modelId", getModelId())
				.append("simId", getSimId())
				.append("merchantId", getMerchantId())
				.append("stationId", getStationId())
				.append("faultReason", getFaultReason())
				.append("createBy", getCreateBy())
				.append("createTime", getCreateTime())
				.append("updateBy", getUpdateBy())
				.append("updateTime", getUpdateTime())
				.append("delFlag", getDelFlag())
				.append("remark", getRemark())
				.toString();
	}
}
