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

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.common.business.dto.cmd.AppExtCommand;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 查询用户排名命令
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class UserRankQueryCmd extends AppExtCommand {

    /**
     * 用户ID（不传则查询当前登录用户）
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    /**
     * 活动类型
     */
    @NotNull(message = "活动类型不能为空")
    private Integer activityType;

    /**
     * 周期类型
     */
    @NotNull(message = "周期类型不能为空")
    private Integer cycleType;

    /**
     * 周期标识
     */
    private String cycleKey;

    /**
     * 用户性别筛选（null 表示不限）
     */
    private Integer userSex;
}