package com.red.circle.other.app.dto.cmd;

import com.red.circle.common.business.dto.cmd.AppExtCommand;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 发送房间红包命令
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SendRoomRedPacketCmd extends AppExtCommand {

    /**
     * 房间ID
     */
    @NotNull(message = "Room ID cannot be empty")
    private Long roomId;

    /**
     * 红包类型：1-固定金额 2-拼手气
     */
    private Integer packetType;

    /**
     * 总金额（金币数量）
     */
    @NotNull(message = "Total amount cannot be empty")
    @Positive(message = "Total amount must be positive")
    private Long totalAmount;

    /**
     * 红包个数
     */
    @NotNull(message = "Total count cannot be empty")
    @Positive(message = "Total count must be positive")
    private Integer totalCount;

    /**
     * 过期分钟数：1/3/5/10
     */
    @NotNull(message = "Expire minutes cannot be empty")
    private Integer expireMinutes;
}
