package shop.alien.entity.store.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 预订服务信息设置DTO
 *
 * @author system
 * @since 2025-01-XX
 */
@Data
@ApiModel(value = "StoreBookingSettingsDTO", description = "预订服务信息设置DTO")
public class StoreBookingSettingsDTO {

    @ApiModelProperty(value = "设置ID（编辑时必填）")
    private Integer id;

    @ApiModelProperty(value = "门店ID", required = true)
    private Integer storeId;

    @ApiModelProperty(value = "未按时到店是否保留位置（0:不保留位置, 1:保留位置）", required = true)
    private Integer retainPositionFlag;

    @ApiModelProperty(value = "保留时长(分钟)", required = true)
    private Integer retentionDuration;

    @ApiModelProperty(value = "预订日期显示(天)", required = true)
    private Integer bookingDateDisplayDays;

    @ApiModelProperty(value = "预订时间类型（0:非全天, 1:全天）", required = true)
    private Integer bookingTimeType;

    @ApiModelProperty(value = "预订开始时间（HH:mm格式，非全天时必填）")
    private String bookingStartTime;

    @ApiModelProperty(value = "预订结束时间（HH:mm格式，非全天时必填）")
    private String bookingEndTime;

    @ApiModelProperty(value = "单时段最大容纳人数", required = true)
    private Integer maxCapacityPerSlot;

    @ApiModelProperty(value = "预约（0:免费, 1:付费）")
    private String reservation;

    @ApiModelProperty(value = "预订金额（元）")
    private Double reservationMoney;

    @ApiModelProperty(value = "取消预订退费时长设置,需提前(小时)", required = true)
    private Integer offUnsubscribeHours;

    @ApiModelProperty(value = "营业时间结束前多少分钟不可预订", required = true)
    private Integer bookingNotAvailableTime;

    @ApiModelProperty(value = "图片")
    private String imgUrl;

    @ApiModelProperty(value = "正常营业时间（business_type=0）")
    private StoreBookingBusinessHoursDTO normalBusinessHours;

    @ApiModelProperty(value = "特殊营业时间列表（business_type=1，节假日营业时间）")
    private List<StoreBookingBusinessHoursDTO> specialBusinessHoursList;
}
