package com.sinata.appointment.dto; import io.swagger.v3.oas.annotations.media.Schema; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import lombok.Data; @Data @Schema(description = "小程序我的预约详情") public class MiniMyAppointmentDetailVo { @Schema(description = "预约单ID") private Long orderId; @Schema(description = "预约单UUID") private String orderUuid; @Schema(description = "预约单号") private String orderNo; @Schema(description = "预约单状态") private String status; @Schema(description = "列表展示状态") private String displayStatus; @Schema(description = "状态文案") private String statusText; @Schema(description = "是否可取消") private Boolean cancelable; @Schema(description = "是否可删除当前记录(仅提交人隐藏)") private Boolean deletable; @Schema(description = "被访人ID") private Long visitedUserId; @Schema(description = "被访人姓名") private String visitedUserName; @Schema(description = "被访人部门名称") private String visitedDeptName; @Schema(description = "被访人展示文案") private String visitedUserDisplay; @Schema(description = "访问区域文案") private String accessAreaText; @Schema(description = "来访类型文案") private String visitTypeText; @Schema(description = "来访事由文案") private String visitReasonText; @Schema(description = "来访事由编码") private String visitReasonCode; @Schema(description = "其他事由补充说明") private String visitReasonOther; @Schema(description = "来访时间文案") private String visitTimeText; @Schema(description = "来访时间模式") private String visitTimeMode; @Schema(description = "单日时段") private String visitTimeSlot; @Schema(description = "来访开始日期") private LocalDate visitStartDate; @Schema(description = "来访结束日期") private LocalDate visitEndDate; @Schema(description = "人员进场") private Boolean personEntry; @Schema(description = "车辆进场") private Boolean vehicleEntry; @Schema(description = "创建时间") private LocalDateTime createTime; @Schema(description = "来访人列表") private List visitors = new ArrayList<>(); @Schema(description = "再次预约回填用来访人列表") private List rebookVisitors = new ArrayList<>(); @Schema(description = "再次预约回填用车辆列表") private List rebookVehicles = new ArrayList<>(); @Schema(description = "审批流程树") private List flowTree = new ArrayList<>(); @Data @Schema(description = "再次预约回填用来访人") public static class RebookVisitorItem { @Schema(description = "访客ID") private Long visitorId; @Schema(description = "访客UUID") private String visitorUuid; @Schema(description = "姓名") private String name; @Schema(description = "性别") private String gender; @Schema(description = "单位名称") private String companyName; @Schema(description = "手机号脱敏") private String mobileMasked; @Schema(description = "身份证脱敏") private String idCardMasked; } @Data @Schema(description = "再次预约回填用车辆") public static class RebookVehicleItem { @Schema(description = "车牌号") private String plateNo; @Schema(description = "驾驶员访客ID") private Long driverVisitorId; @Schema(description = "驾驶员姓名") private String driverName; } }