package com.xindazhou.business.controller.app.vehicle.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Schema(description = "移动端 - 绑定车辆 Request VO")
@Data
public class VehicleBindReqVO {

    @Schema(description = "车架号", requiredMode = Schema.RequiredMode.REQUIRED, example = "VIN20250126001")
    @NotBlank(message = "车架号不能为空")
    private String vin;

    @Schema(description = "设备序列号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SN20250126001")
    @NotBlank(message = "设备序列号不能为空")
    private String deviceSn;

    @Schema(description = "车辆名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "我的小摩托")
    @NotBlank(message = "车辆名称不能为空")
    private String name;

    @Schema(description = "蓝牙MAC地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "AA:BB:CC:DD:EE:FF")
    @NotBlank(message = "蓝牙MAC地址不能为空")
    private String bluetoothMac;

    @Schema(description = "车辆图片URL", example = "https://...")
    private String imageUrl;

    @Schema(description = "车辆型号ID", example = "1")
    private Long modelId;

    @Schema(description = "固件版本", example = "1.0.0")
    private String firmwareVersion;

    @Schema(description = "用户类型（1-最高权限，2-车主，3-分享用户）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "用户类型不能为空")
    private Integer userType;

}

