package cn.iocoder.yudao.module.asset.controller.admin.delivery.vo;

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

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 交车单创建/更新 Request VO")
@Data
public class DeliveryOrderSaveReqVO {

    @Schema(description = "主键")
    private Long id;

    @Schema(description = "交车任务ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "交车任务ID不能为空")
    private Long taskId;

    @Schema(description = "交车日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "交车日期不能为空")
    private LocalDateTime deliveryDate;

    @Schema(description = "交车人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "交车人不能为空")
    private String deliveryPerson;

    @Schema(description = "交车地点")
    private String deliveryLocation;

    @Schema(description = "被授权人ID")
    private Long authorizedPersonId;

    @Schema(description = "被授权人姓名")
    private String authorizedPersonName;

    @Schema(description = "被授权人电话")
    private String authorizedPersonPhone;

    @Schema(description = "被授权人身份证")
    private String authorizedPersonIdCard;

    @Schema(description = "交车照片")
    private String deliveryPhotos;

    @Schema(description = "司机姓名")
    private String driverName;

    @Schema(description = "司机身份证")
    private String driverIdCard;

    @Schema(description = "司机手机号")
    private String driverPhone;

    @Schema(description = "交检清单JSON")
    private String inspectionData;

    @Schema(description = "费用信息JSON")
    private String costList;

    @Schema(description = "车辆列表")
    private List<DeliveryOrderVehicleVO> vehicles;

}
