package com.xindazhou.vehicle.dal.dataobject.vehicle;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xindazhou.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 车辆 DO
 *
 * @author xindazhou
 */
@TableName(value = "vehicle", autoResultMap = true)
@KeySequence("vehicle_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class VehicleDO extends BaseDO {

    /**
     * 车辆ID
     */
    @TableId
    private Long id;

    /**
     * 车架号
     */
    private String vin;

    /**
     * 设备序列号
     */
    private String deviceSn;

    /**
     * 蓝牙MAC地址
     */
    private String bluetoothMac;

    /**
     * 车主ID
     */
    private Long ownerUserId;

    /**
     * 型号ID（关联vehicle_model）
     */
    private Long modelId;

    /**
     * 颜色
     */
    private String color;

    /**
     * 车辆昵称
     */
    private String nickname;

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

    /**
     * 排序字段（用于拖拽排序）
     */
    private Integer sortOrder;

    /**
     * 总里程
     */
    private BigDecimal totalMileage;

    /**
     * MCU固件版本
     */
    private String mcuVersion;

    /**
     * BMS固件版本
     */
    private String bmsVersion;

    /**
     * TBOX固件版本
     */
    private String tboxVersion;

    /**
     * 仪表盘固件版本
     */
    private String dashboardVersion;

    /**
     * 固件更新时间
     */
    private LocalDateTime firmwareUpdateTime;

    /**
     * 激活日期（设备首次激活时间）
     */
    private LocalDateTime activationDate;

    /**
     * 状态：0-禁用，1-启用
     */
    private Integer status;

}

