package com.gci.boot.modules.vehicles.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.gci.boot.common.dict.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 年检提醒
 * </p>
 *
 * @author 2464
 * @since 2023-11-16
 */
@Getter
@Setter
@TableName("tb_annual_inspection_remind")
@ApiModel(value = "TbAccidentInsuranceRemind对象", description = "年检提醒")
public class TbAnnualInspectionRemind implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty("所属机构")
    private String sysOrgCode;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("更新人")
    private String updateBy;

    @ApiModelProperty("车牌号")
    @Excel(name = "车牌号",orderNum = "0")
    private String plateNumber;

    @ApiModelProperty("年审有效期")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @Excel(name = "年审有效期",format = "yyyy-MM-dd",width = 15,orderNum = "2")
    private Date validityPeriod;

    /**
     * 1-将要逾期
     * 2-已逾期
     */
    @ApiModelProperty("逾期状态")
    @Dict(dicCode = "overdue_type")
    @Excel(name = "逾期状态",dict = "overdue_type",width = 15,orderNum = "3")
    private String overdueType;

    @ApiModelProperty("将要逾期天数")
    @Excel(name = "将要逾期天数",width = 15,orderNum = "4")
    private Integer daysToOverdue;

    @ApiModelProperty("逾期天数")
    @Excel(name = "逾期天数",width = 15,orderNum = "5")
    private Integer overdueDays;

    /**
     * 1-提醒中
     * 0-已过期
     */
    @ApiModelProperty("提醒状态 1-提醒中 0-已过期")
    @Dict(dicCode = "remind_status")
    @Excel(name = "提醒状态",dict = "remind_status",width = 15,orderNum = "6")
    private String remindStatus;

    @ApiModelProperty("年检台账id")
    private String infoId;

    @ApiModelProperty("删除标志")
    private Integer delFlag;

    @Dict(dicCode = "vehicle_type")
    @TableField(exist = false)
    @JsonPropertyDescription("车辆种类")
    @Excel(name = "车辆种类",dict = "vehicle_type",width = 15,orderNum = "1")
    private String vehicleType;

    @JsonPropertyDescription("违章未处理数")
    @TableField(exist = false)
    private Integer violationCount;

    @JsonPropertyDescription("事故未处理数")
    @TableField(exist = false)
    private Integer accidentCount;
}
