package com.haha.entity.dto;

import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class InviteActivityCreateDTO {

    @NotBlank(message = "活动名称不能为空")
    private String activityName;

    private String activityDesc;

    @NotNull(message = "开始时间不能为空")
    private LocalDateTime startTime;

    @NotNull(message = "结束时间不能为空")
    private LocalDateTime endTime;

    @NotNull(message = "邀请人奖励优惠券模板ID不能为空")
    private Long inviterCouponTemplateId;

    /**
     * 被邀请人奖励优惠券模板ID（双向奖励时使用，可选）
     */
    private Long inviteeCouponTemplateId;

    /**
     * 每人每日最大邀请数
     */
    private Integer dailyLimit;

    /**
     * 每人活动期间最大邀请总数
     */
    private Integer totalLimit;

    /**
     * 是否要求完成首单：0-否 1-是
     */
    private Integer requireFirstOrder;

    /**
     * 首单最低金额要求
     */
    private BigDecimal minOrderAmount;

    /**
     * 邀请码前缀
     */
    private String inviteCodePrefix;

    /**
     * 适用范围：1-全平台 2-指定门店
     */
    @NotNull(message = "适用范围不能为空")
    private Integer applyScope;

    /**
     * 商品范围：1-全部商品 2-指定商品
     */
    @NotNull(message = "商品范围不能为空")
    private Integer productScope;

    /**
     * 指定门店ID列表（applyScope=2时必填）
     */
    private List<Long> shopIds;

    /**
     * 指定商品ID列表（productScope=2时必填）
     */
    private List<Long> productIds;
}
