package com.sinata.appointment.dto; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import java.time.LocalDate; import java.util.List; import lombok.Data; @Data @Schema(description = "小程序发起预约") public class MiniAppointmentCreateRequest { @NotNull(message = "被访人不能为空") @Schema(description = "被访人id(mp_user.id)") private Long visitedUserId; @NotBlank(message = "拜访事由不能为空") @Schema(description = "拜访事由编码(选择其他时传 OTHER)") private String visitReasonCode; @Schema(description = "拜访事由自定义内容(visitReasonCode=OTHER 时必填)") private String visitReasonOther; @NotBlank(message = "拜访时间类型不能为空") @Schema(description = "拜访时间类型:SINGLE 单日 / MULTI 多日") private String visitTimeMode; @Schema(description = "单日拜访日期(visitTimeMode=SINGLE 时必填)") private LocalDate visitDate; @Schema(description = "单日时段:ALL_DAY/AM/PM(visitTimeMode=SINGLE 时必填)") private String visitTimeSlot; @Schema(description = "多日开始日期(visitTimeMode=MULTI 时必填)") private LocalDate visitStartDate; @Schema(description = "多日结束日期(visitTimeMode=MULTI 时必填)") private LocalDate visitEndDate; @Schema(description = "有人员进场(默认true)") private Boolean personEntry; @Schema(description = "来访人员id列表(mp_visitor.id)") private List visitorIds; @Schema(description = "有车辆进场(默认false)") private Boolean vehicleEntry; @Valid @Schema(description = "进场车辆列表") private List vehicles; }