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.LocalDate;
import java.util.List;

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

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

    @Schema(description = "合同ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "合同ID不能为空")
    private Long contractId;

    @Schema(description = "合同编码")
    private String contractCode;

    @Schema(description = "项目名称")
    private String projectName;

    @Schema(description = "客户ID")
    private Long customerId;

    @Schema(description = "客户名称")
    private String customerName;

    @Schema(description = "预计交车开始日期")
    private LocalDate expectedDeliveryDateStart;

    @Schema(description = "预计交车结束日期")
    private LocalDate expectedDeliveryDateEnd;

    @Schema(description = "开始计费日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "开始计费日期不能为空")
    private LocalDate billingStartDate;

    @Schema(description = "交车省份")
    private String deliveryProvince;

    @Schema(description = "交车城市")
    private String deliveryCity;

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

    @Schema(description = "是否需要还车")
    private Boolean needReturn;

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

}
