package com.example.tyre.entity;

import java.io.Serializable;


/**
 * 车辆生命周期维保工单记录DTO。
 * <p>
 * 用于“车辆全生命周期”弹窗中【维保工单记录】Tab页的数据展示。
 * 数据来源为 biz_maintenance_order 表，通过 plate_number（车牌号）直接与车辆关联，无需额外表桥接。
 * </p>
 */
public class CarMaintenanceLifecycleDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 工单主键ID，对应 biz_maintenance_order.order_id。
     */
    private Long orderId;

    /**
     * 工单编号，业务展示的唯一编号，例如：WB202401150001。
     */
    private String orderNo;

    /**
     * 车辆ID，对应工单表中的 vehicle_id 外键（若存在）。
     */
    private Long vehicleId;

    /**
     * 车牌号，工单中直接记录的车牌号，用于与车辆主档确认关联。
     */
    private String plateNumber;

    /**
     * 维保类型编码，字典值，例如：一级保养、二级保养、小修、大修。
     */
    private String typeCode;
    private String typeName;

    /**
     * 工单状态编码，字典值，例如：待派工、维修中、已完成、已结算。
     */
    private String status;

    /**
     * 录入里程，本次维保/保养时车辆的总行驶里程（数值型）。
     */
    private String inputMileage;

    /**
     * 上次里程，上一次保养时记录的里程，用于计算两次保养间的行驶距离。
     */
    private String lastMileage;

    /**
     * 保养/维修日期，工单的计划或实际执行日期。
     */
    private String maintainDate;

    /**
     * 修理厂名称，执行本次维保的外部或内部修理厂。
     */
    private String factoryName;

    /**
     * 故障描述/备注，记录车辆故障现象、维修内容或用户补充说明。
     */
    private String description;


    public String getTypeName() {
        if (typeCode == null) {
            typeName = "";
        } else if (typeCode.equals("1")) {
            typeName = "二级保养";
        } else if (typeCode.equals("2")) {
            typeName = "抢碎修";
        } else if (typeCode.equals("3")) {
            typeName = "拆报废车";
        } else if (typeCode.equals("4")) {
            typeName = "月检";
        } else if (typeCode.equals("5")) {
            typeName = "小修";
        } else if (typeCode.equals("6")) {
            typeName = "轮胎修补";
        } else if (typeCode.equals("7")) {
            typeName = "轮胎报废";
        }
        return typeName;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Long getVehicleId() {
        return vehicleId;
    }

    public void setVehicleId(Long vehicleId) {
        this.vehicleId = vehicleId;
    }

    public String getPlateNumber() {
        return plateNumber;
    }

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

    public String getTypeCode() {
        return typeCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public String getStatus() {
        if (status .equals("UNSTARTED")) {
           return "未开始";
        } else if (status .equals("PROCESSING")) {
           return "执行中";
        } else if (status .equals("COMPLETED")) {
           return "已完成";
        }
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getInputMileage() {
        return inputMileage;
    }

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

    public String getLastMileage() {
        return lastMileage;
    }

    public void setLastMileage(String lastMileage) {
        this.lastMileage = lastMileage;
    }

    public String getMaintainDate() {
        return maintainDate;
    }

    public void setMaintainDate(String maintainDate) {
        this.maintainDate = maintainDate;
    }

    public String getFactoryName() {
        return factoryName;
    }

    public void setFactoryName(String factoryName) {
        this.factoryName = factoryName;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
