package com.example.tyre.entity;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 车辆生命周期头部概要DTO。
 * <p>
 * 作为弹窗顶部的“车辆名片”数据，展示用户最关心的车辆静态属性与最近动态指标。
 * 所有字段均来自 base_car 主档及其关联字典/部门表，通过 {@link BaseCarLifecycleMapper#selectLifecycleCar} 一次性查询返回。
 * </p>
 */
public class CarLifecycleSummaryDTO implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 车辆主键ID，base_car 表的唯一标识，用于后续子查询精确关联。 */
    private Long carId;

    /** 车牌号，车辆的唯一业务标识，例如：粤B12345。 */
    private String carNo;

    /** 所属部门ID，关联 sys_dept，用于数据权限过滤。 */
    private Long deptId;

    /** 所属车队名称，由部门ID关联翻译而来，前端直接展示。 */
    private String team;

    /** 线路名称，车辆运营的公交/客运线路。 */
    private String line;

    /** 车型，例如：纯电动大巴、混合动力公交等字典值。 */
    private String type;

    /**
     * 最近工单录入里程。
     * <p>
     * 取自该车辆最近一次维保工单中的 input_mileage 字段，仅作为弹窗头部的展示快照。
     * 使用 BigDecimal 类型避免浮点精度问题，但不参与聚合统计，防止不同工单录入口径差异导致统计失真。
     * </p>
     */
    private String inputMileage;

    public Long getCarId()
    {
        return carId;
    }

    public void setCarId(Long carId)
    {
        this.carId = carId;
    }

    public String getCarNo()
    {
        return carNo;
    }

    public void setCarNo(String carNo)
    {
        this.carNo = carNo;
    }

    public Long getDeptId()
    {
        return deptId;
    }

    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public String getTeam()
    {
        return team;
    }

    public void setTeam(String team)
    {
        this.team = team;
    }

    public String getLine()
    {
        return line;
    }

    public void setLine(String line)
    {
        this.line = line;
    }

    public String getType()
    {
        return type;
    }

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

    public String getInputMileage()
    {
        return inputMileage;
    }

    public void setInputMileage(String inputMileage)
    {
        this.inputMileage = inputMileage;
    }
}
