package com.jeesharp.business.modules.mall.dto;

import com.jeesharp.framework.pojo.dto.BaseSaveDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 满减/满赠规则保存DTO
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MallPromotionRuleSaveDTO extends BaseSaveDTO {

    /**
     * 规则名称
     */
    @NotBlank(message = "规则名称不能为空")
    private String ruleName;

    /**
     * 规则类型：FULL_REDUCTION-满减 FULL_GIFT-满赠
     */
    @NotBlank(message = "规则类型不能为空")
    private String ruleType;

    /**
     * 满足条件金额
     */
    @NotNull(message = "满足条件金额不能为空")
    private BigDecimal conditionAmount;

    /**
     * 优惠金额（满减时使用）
     */
    private BigDecimal discountAmount;

    /**
     * 赠品SKU ID（满赠时使用）
     */
    private String giftSkuId;

    /**
     * 赠品SKU名称（冗余字段）
     */
    private String giftSkuName;

    /**
     * 赠品数量
     */
    private Integer giftQuantity;

    /**
     * 适用范围：ALL-全部商品 CATEGORY-指定分类 BRAND-指定品牌 SKU-指定商品
     */
    @NotBlank(message = "适用范围不能为空")
    private String scopeType;

    /**
     * 适用范围IDs（分类ID/品牌ID/SKU ID，逗号分隔）
     */
    private String scopeIds;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 排序号
     */
    private Integer sortOrder;

    /**
     * 状态：0-禁用 1-启用
     */
    @NotNull(message = "状态不能为空")
    private Integer status;
}
