package com.hotwj.platform.securityManagement.accidentArchive.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 事故档案对象 hot_accident_archive
 *
 * @author shihongwei
 * @date 2026-01-04
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hot_accident_archive")
public class HotAccidentArchive extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 公司ID（多租户）
     */
    private Long companyId;

    /**
     * 事故编号（如 SG-时间戳）
     */
    private String accidentNo;

    /**
     * 车辆ID
     */
    private Long vehicleId;

    /**
     * 车牌号
     */
    private String plateNumber;

    /**
     * 驾驶员ID
     */
    private String driverId;

    /**
     * 驾驶员姓名
     */
    private String driverName;

    /**
     * 驾驶员电话
     */
    private String driverPhone;

    /**
     * 从业资格证编号
     */
    private String driverProfCertNo;

    /**
     * 发生时间
     */
    private Date accidentTime;

    /**
     * 营运证号
     */
    private String operationCertificateNumber;

    /**
     * 事故地点
     */
    private String occurLocation;

    /**
     * 事故图片
     */
    private String occurImgUrl;

    /**
     * 主要情况及事故原因
     */
    private String mainCause;

    /**
     * 责任划分
     */
    private String divisionResponsibilities;

    /**
     * 死亡人数
     */
    private Long deathToll;

    /**
     * 重伤人员
     */
    private Long numberSeriouslyInjured;

    /**
     * 轻伤人数
     */
    private Long numberMinorInjuries;

    /**
     * 经济损失
     */
    private BigDecimal economicLoss;

    /**
     * 事故形态
     */
    private String accidentPattern;

    /**
     * 天气情况
     */
    private String weather;

    /**
     * 公路技术等级
     */
    private String roadTechnicalGrade;

    /**
     * 路段线性状况
     */
    private String roadLinearityStatus;

    /**
     * 路段路面状况
     */
    private String roadSurfaceCondition;

    /**
     * 事故形态(多选，逗号分隔：碰撞/刮擦/颠压/侧翻/失火/撞固定物/撞静止车辆/其他)
     */
    private String accidentForms;

    /**
     * 事故直接原因(多选，逗号分隔：超载/超速/驾驶员操作不当/疲劳驾驶/机械故障/酒驾/道路及设施原因/其他)
     */
    private String accidentDirectCauses;

    /**
     * 线路类型
     */
    private String routeType;

    /**
     * 车辆等级
     */
    private String vehicleGrade;

    /**
     * 运行线路
     */
    private String routeName;

    /**
     * 始发站(地)
     */
    private String originStation;

    /**
     * 企业资质等级
     */
    private String companyQualificationGrade;

    /**
     * 车型
     */
    private String vehicleType;

    /**
     * 核定人数(人)
     */
    private Long approvedPersons;

    /**
     * 核定吨数(吨)
     */
    private BigDecimal approvedTonnage;

    /**
     * 实载人数(人)
     */
    private Long carriedPersons;

    /**
     * 实载吨数(吨)
     */
    private BigDecimal carriedTonnage;

    /**
     * 失踪(人)
     */
    private Long missingPersons;

    /**
     * 受伤(人)
     */
    private Long injuredPersons;

    /**
     * 单位主管负责人
     */
    private String unitResponsible;

    /**
     * 统计负责人
     */
    private String leadResponsible;

    /**
     * 填表人
     */
    private String reporterName;

    /**
     * 填表人联系电话
     */
    private String reporterPhone;

    /**
     * 事故缘故
     */
    private String accidentSituation;

    /**
     * 备注
     */
    private String remark;

    /**
     * 事故内容
     */
    private String accidentContent;

    /**
     * 风险等级评估（可能性）
     */
    private String accidentLevelLike;

    /**
     * 事故等级划分（严重程度）
     */
    private String accidentLevelDegree;

    /**
     * 风险等级评估（可能性）JSON详情
     */
    private String riskAssessLike;

    /**
     * 事故等级划分（严重程度）JSON详情
     */
    private String riskAssessDegree;

    /**
     * 事故等级划分
     */
    private String accidentLevel;

    /**
     * 0=正常, 1=已删除
     */
    @TableLogic
    private Long isDeleted;

    /**
     * 是否整改
     */
    private Long isRectified;

    /**
     * 整改人员
     */
    private String rectifierName;

    /**
     * 整改联系方式
     */
    private String contactInfo;

    /**
     * 整改时间
     */
    private Date rectifyTime;

    /**
     * 处理结果书url
     */
    private String resultDocUrl;

    /**
     * 责任认定书图片
     */
    private String responsibilityCertificateUrls;

    /**
     * 结案时间
     */
    private Date caseClosingTime;

    /**
     * 处理结果
     */
    private String treatmentResult;

    /**
     * 整改备注
     */
    private String rectifyRemark;

    /**
     * 整改内容
     */
    private String rectifyContent;

    /**
     * 责任人签名
     */
    private String responsiblePersonSignature;


}
