package com.jsowell.pile.domain;

import com.jsowell.common.annotation.Excel;
import com.jsowell.common.core.domain.BaseEntity;
import lombok.Builder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 【请填写功能名称】对象 pile_camera_info
 *
 * @author jsowell
 * @date 2023-12-09
 */
@Builder
public class PileCameraInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long id;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    private String deviceName;

    /**
     * 设备IP地址
     */
    @Excel(name = "设备IP地址")
    private String deviceIp;

    /**
     * 设备sn号
     */
    @Excel(name = "设备sn号")
    private String deviceSn;

    /**
     * 车牌号
     */
    @Excel(name = "车牌号")
    private String plateNumber;

    /**
     * 车位状态
     * 01：入场；02：在场；04：出场；08：空场；10：车位异常(=="跨车位报警"和"视频遮挡"时==)；20：延迟上报出场(预留)；40：合并出入场(预留)；80：预入场(预留)；100：预出场(预留)；200：入场修正(预留)
     */
    @Excel(name = "车位状态 01：入场；02：在场；04：出场；08：空场；10：车位异常(=='跨车位报警'和'视频遮挡'时==)；20：延迟上报出场(预留)；40：合并出入场(预留)；80：预入场(预留)；100：预出场(预留)；200：入场修正(预留)")
    private String parkingState;

    /**
     * 车位id
     */
    @Excel(name = "车位id")
    private Integer zoneId;

    /**
     * 车位名
     */
    @Excel(name = "车位名")
    private String zoneName;

    /**
     * 车牌颜色（0:未知;1:蓝色;2:黄色;3:白色;4:黑色;5:绿色;）
     */
    @Excel(name = "车牌颜色", readConverterExp = "0=:未知;1:蓝色;2:黄色;3:白色;4:黑色;5:绿色;")
    private Integer color;

    /**
     * 车牌类型（0:未知车牌；1:蓝牌小汽车；2:黑牌小汽车；3:单排黄牌；4:双排黄牌(大车尾牌，农用车)；5:警车车牌；6:武警车牌；7:个性化车牌；8:单排军车牌；
     * 9:双排军车牌；10:使馆车牌；11:香港进出中国大陆车牌；12:农用车牌；13:教练车牌；14:澳门进出中国大陆车牌；15:双层武警车牌；16:武警总队车牌；17:双层武警总队车牌；18:民航车牌；19:新能源车牌；20:新能源车牌大；21:应急；22:领馆
     * ）
     */
    @Excel(name = "车牌类型", readConverterExp = "0=:未知车牌；1:蓝牌小汽车；2:黑牌小汽车；3:单排黄牌；4:双排黄牌(大车尾牌，农用车)；5:警车车牌；6:武警车牌；7:个性化车牌；8:单排军车牌； 9:双排军车牌；10:使馆车牌；11:香港进出中国大陆车牌；12:农用车牌；13:教练车牌；14:澳门进出中国大陆车牌；15:双层武警车牌；16:武警总队车牌；17:双层武警总队车牌；18:民航车牌；19:新能源车牌；20:新能源车牌大；21:应急；22:领馆 ")
    private Integer plateType;

    /**
     * 图片base64编码
     */
    @Excel(name = "图片base64编码")
    private String image;

    /**
     * $column.columnComment
     */
    private String delFlag;

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

    public Long getId() {
        return id;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceIp(String deviceIp) {
        this.deviceIp = deviceIp;
    }

    public String getDeviceIp() {
        return deviceIp;
    }

    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }

    public String getDeviceSn() {
        return deviceSn;
    }

    public void setPlateNumber(String plateNumber) {
        this.plateNumber = plateNumber;
    }

    public String getPlateNumber() {
        return plateNumber;
    }

    public void setParkingState(String parkingState) {
        this.parkingState = parkingState;
    }

    public String getParkingState() {
        return parkingState;
    }

    public void setZoneId(Integer zoneId) {
        this.zoneId = zoneId;
    }

    public Integer getZoneId() {
        return zoneId;
    }

    public void setZoneName(String zoneName) {
        this.zoneName = zoneName;
    }

    public String getZoneName() {
        return zoneName;
    }

    public void setColor(Integer color) {
        this.color = color;
    }

    public Integer getColor() {
        return color;
    }

    public void setPlateType(Integer plateType) {
        this.plateType = plateType;
    }

    public Integer getPlateType() {
        return plateType;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getImage() {
        return image;
    }

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

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
                .append("id", getId())
                .append("deviceName", getDeviceName())
                .append("deviceIp", getDeviceIp())
                .append("deviceSn", getDeviceSn())
                .append("plateNumber", getPlateNumber())
                .append("parkingState", getParkingState())
                .append("zoneId", getZoneId())
                .append("zoneName", getZoneName())
                .append("color", getColor())
                .append("plateType", getPlateType())
                .append("image", getImage())
                .append("createTime", getCreateTime())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
