package com.tashow.cloud.product.vo.prodreservationconfig;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.tashow.cloud.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 商品预约配置分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProdReservationConfigPageReqVO extends PageParam {

    @Schema(description = "关联的商品ID", example = "19369")
    private Long prodId;

    @Schema(description = "预约时段设置（JSON格式存储）")
    private String reservationTimeSlots;

    @Schema(description = "需提前多少小时预约")
    private Integer advanceHours;

    @Schema(description = "预约日期范围 7天 10天 15天 30天")
    private Integer reservationDateRange;

    @Schema(description = "是否允许更改预约时间 1可以 0不可以")
    private Boolean allowChange;

    @Schema(description = "更改预约时间的时间规则（如服务开始前1小时可更改）")
    private Integer changeTimeRule;

    @Schema(description = "允许更改预约时间的最大次数")
    private Integer maxChangeTimes;

    @Schema(description = "黑名自定义日期（JSON格式存储）")
    private String blacklistedDates;

    @Schema(description = "黑名单指定日期（JSON格式存储）")
    private String blackAppointDates;

    @Schema(description = "法定节假日是否开启0:关闭1开启")
    private Boolean blackHappy;

    @Schema(description = "固定休息日周末是否开启0关闭1开启")
    private Boolean blackWeekend;

    @Schema(description = "配置创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "配置最后更新时间")
    private LocalDateTime updatedAt;

}