package com.tashow.cloud.product.dto;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;

/**
 * 商品预约配置 DO
 *
 * @author 芋道源码
 */
@TableName("tz_prod_reservation_config")
@KeySequence("tz_prod_reservation_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProdReservationConfigDO extends BaseDO {

    /**
     * 预约配置的唯一标识符
     */
    @TableId
    private Long id;
    /**
     * 关联的商品ID
     */
    private Long prodId;
    /**
     * 预约时段设置（JSON格式存储）
     */
    private String reservationTimeSlots;
    /**
     * 需提前多少小时预约
     */
    private Integer advanceHours;
    /**
     * 预约日期范围 7天 10天 15天 30天
     */
    private Integer reservationDateRange;
    /**
     * 是否允许更改预约时间 1可以 0不可以
     */
    private Boolean allowChange;
    /**
     * 更改预约时间的时间规则（如服务开始前1小时可更改）
     */
    private Integer changeTimeRule;
    /**
     * 允许更改预约时间的最大次数
     */
    private Integer maxChangeTimes;
    /**
     * 黑名自定义日期（JSON格式存储）
     */
    private String blacklistedDates;
    /**
     * 黑名单指定日期（JSON格式存储）
     */
    private String blackAppointDates;
    /**
     * 法定节假日是否开启0:关闭1开启
     */
    private Boolean blackHappy;
    /**
     * 固定休息日周末是否开启0关闭1开启
     */
    private Boolean blackWeekend;
    /**
     * 配置创建时间
     */
    private LocalDateTime createdAt;
    /**
     * 配置最后更新时间
     */
    private LocalDateTime updatedAt;

}