package com.red.circle.other.app.service;

import com.red.circle.other.app.dto.cmd.SpinsTaskProgressUpdateCmd;

/**
 * Spins用户任务进度服务接口
 *
 * @author system
 * @date 2025-01-21
 */
public interface SpinsUserTaskProgressService {

    /**
     * 更新用户任务进度
     *
     * @param cmd 更新进度命令
     */
    void updateTaskProgress(SpinsTaskProgressUpdateCmd cmd);

    /**
     * 增加用户任务进度
     *
     * @param userId 用户ID
     * @param taskCode 任务编码
     * @param incrementValue 增加值
     */
    void incrementTaskProgress(Long userId, String taskCode, Integer incrementValue);

    /**
     * 重置用户每日任务
     *
     * @param userId 用户ID
     */
    void resetDailyTasks(Long userId);

    /**
     * 初始化用户任务进度
     *
     * @param userId 用户ID
     * @param taskCode 任务编码
     */
    void initUserTaskProgress(Long userId, String taskCode);
}
