package com.yc.ship.module.trade.controller.admin.orderjzdetail.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 订单分车创建/更新 Request VO")
@Data
@NoArgsConstructor
@Builder
@AllArgsConstructor
public class OrderJzDispatchSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.AUTO)
    private Long id;

    @Schema(description = "订单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "订单ID不能为空")
    private Long orderId;

    @Schema(description = "分车时间")
    private LocalDateTime dispatchTime;

    @Schema(description = "航次ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "航次ID不能为空")
    private Long voyageId;

    @Schema(description = "分车号", example = "1号车")
    private String dispatchNo;

    @Schema(description = "分车组团号", example = "T2024010001")
    private String groupNo;

    @Schema(description = "车牌号", example = "川A12345")
    private String busNumber;

    @Schema(description = "司机姓名", example = "张三")
    private String driverName;

    @Schema(description = "司机联系电话", example = "13800138000")
    private String driverPhone;

    @Schema(description = "接站人员", example = "李四")
    private String receiverName;

    @Schema(description = "接站人电话", example = "13900139000")
    private String receiverPhone;

    @Schema(description = "分车来源类型（1：接站服务 2：赠送行程）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "分车来源类型不能为空")
    private Integer sourceType;

    @Schema(description = "乘客人数", example = "5")
    private Integer passengerCount;

    @Schema(description = "备注", example = "备注信息")
    private String remark;

}
