package org.jeecg.modules.system.app.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * @author DM
 * @date 2025/7/10 09:32
 * @description
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "无固定场入参DTO")
public class AppSitePlaceUnfixedDTO {
    @Schema(description = "id")
    private String id;
    /**商户补充信息id*/
    @Excel(name = "商户补充信息id", width = 15)
    @Schema(description = "商户补充信息id")
    private String siteId;
    @Excel(name = "orgCode", width = 15)
    @Schema(description = "orgCode")
    private String orgCode;
    /**名称*/
    @Excel(name = "名称", width = 15)
    @Schema(description = "名称")
    private String name;
    /**封面*/
    @Excel(name = "封面", width = 15)
    @Schema(description = "封面")
    private String cover;
    /**退款类型;0可退/到期自动退 1限时退 2不可退*/
    @Excel(name = "退款类型;0可退/到期自动退 1限时退 2不可退", width = 15)
    @Schema(description = "退款类型;0可退/到期自动退 1限时退 2不可退")
    private Integer refundType;
    /**适用人数*/
    @Excel(name = "适用人数", width = 15)
    @Schema(description = "适用人数")
    private Integer usableCount;
    /**提示/须知*/
    @Excel(name = "提示/须知", width = 15)
    @Schema(description = "提示/须知")
    private String reminder;
    /**不可用日期;多个逗号分割*/
    @Excel(name = "不可用日期;多个逗号分割", width = 15)
    @Schema(description = "不可用日期;多个逗号分割")
    private String downTime;
    @Excel(name = "预约：0否 1是", width = 15)
    @Schema(description = "预约：0否 1是")
    private Integer orSubscribe;
    /**提前预约时间：0免预约 单位：时*/
    @Excel(name = "提前预约时间：0免预约 单位：时", width = 15)
    @Schema(description = "提前预约时间：0免预约 单位：时")
    private Integer advanceTime;
    /**有效期；单位：天*/
    @Excel(name = "有效期；单位：天", width = 15)
    @Schema(description = "有效期；单位：天")
    private Integer indate;
    @Schema(description = "原价")
    private BigDecimal originalPrice;
    /**售价*/
    @NotNull(message = "售价不允许为空")
    @Schema(description = "售价")
    private BigDecimal sellingPrice;
    @Schema(description = "场馆名称")
    private String venuesName;
}