package com.muyu.enterprise.domain.req.car;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 修改车辆信息参数请求对象
 * @Author：李庆帅
 * @Package：com.muyu.car.domain.req
 * @Project：cloud-server
 * @name：VehicleUpdReq
 * @Date：2024/9/26 20:57
 * @Description: 修改车辆信息参数
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Tag(name = "修改车辆信息参数", description = "根据入参信息修改车辆信息")
public class VehicleUpdReq
{
    /**
     * 车牌号
     */
    @NotEmpty(message = "车牌号不可为空")
    @Schema(title = "车牌号", type = "String", defaultValue = "冀A93827", description = "车牌号")
    private String licenceNumber;

    /**
     * 车辆颜色
     */
    @Schema(title = "车牌颜色", type = "String", defaultValue = "RED", description = "车牌颜色")
    private String vehicleColor;

    /**
     * 车辆VIN
     */
    @Schema(title = "车辆VIN", type = "String", defaultValue = "LDC913L2240606423", description = "车辆VIN")
    private String vehicleVin;

    /**
     * 车辆类型外键
     */
    @Schema(title = "车辆类型", type = "BigInt", defaultValue = "1", description = "车辆类型")
    private Long vehicleTypeId;

    /**
     * 车辆品牌
     */
    @Schema(title = "车辆品牌", type = "String", defaultValue = "1", description = "车辆品牌")
    private String vehicleBrand;

    /**
     * 车辆型号
     */
    @Schema(title = "车辆型号", type = "String", defaultValue = "1", description = "车辆型号")
    private String vehicleModel;

    /**
     * 车辆行驶证
     */
    @Schema(title = "车辆行驶证", type = "String", defaultValue = "111111", description = "车辆行驶证")
    private String vehicleLicense;

    /**
     * 行驶证到期日期
     */
    @Schema(title = "行驶证到期日期", type = "Date", defaultValue = "2024-01-01 00:00:00", description = "行驶证到期日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date vehicleLicenseDueDate;

    /**
     * 车辆状态
     */
    @Schema(title = "车辆状态", type = "String", defaultValue = "OFFLINE", description = "车辆状态")
    private String vehicleStatus;

    /**
     * 车辆所属企业外键
     */
    @Schema(title = "车辆所属企业外键", type = "BigInt", defaultValue = "1", description = "车辆所属企业外键")
    private Long companyId;

    /**
     * 电子围栏外键
     */
    @Schema(title = "电子围栏外键", type = "Integer", defaultValue = "1", description = "电子围栏外键")
    private Integer fenceGroupId;

}
