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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 特殊日期附加费用规则新增/修改 Request VO")
@Data
public class ProdAdditionalFeeDatesSaveReqVO {

    @Schema(description = "特殊日期规则的唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "1445")
    private Long id;

    @Schema(description = "商品id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24324")
    @NotNull(message = "商品id不能为空")
    private Long prodId;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotEmpty(message = "名称不能为空")
    private String name;

    @Schema(description = "日期类型0：'自定义日期范围':1：'指定日期':2：'法定节假日',3：'固定休息日'", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "日期类型0：'自定义日期范围':1：'指定日期':2：'法定节假日',3：'固定休息日'不能为空")
    private Boolean dateType;

    @Schema(description = "自定义日期时间段（JSON格式存储）")
    private String customTimeSlots;

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

    @Schema(description = "收费方式", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "收费方式不能为空")
    private String chargeMode;

    @Schema(description = "价格或上浮百分比", example = "17305")
    private BigDecimal price;

    @Schema(description = "是否启用该规则", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否启用该规则不能为空")
    private Boolean isEnabled;

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

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;

}