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

import com.red.circle.other.app.dto.clientobject.AdminTaskRecordCO;
import com.red.circle.other.app.dto.clientobject.AdminTaskSummaryCO;
import com.red.circle.other.app.dto.cmd.AdminTaskInitCmd;
import com.red.circle.other.app.dto.cmd.AdminTaskProgressUpdateCmd;
import com.red.circle.other.app.dto.cmd.AdminTaskQueryCmd;

import java.time.LocalDate;

/**
 * 管理员任务服务接口
 *
 * @author tf
 * @date 2025-11-25
 */
public interface AdminTaskService {

    /**
     * 初始化任务（批量创建5个任务）
     */
    void initTasks(AdminTaskInitCmd cmd);

    /**
     * 更新任务进度
     */
    AdminTaskRecordCO updateTaskProgress(AdminTaskProgressUpdateCmd cmd);

    /**
     * 查询任务汇总
     */
    AdminTaskSummaryCO queryTaskSummary(AdminTaskQueryCmd cmd);

    /**
     * 查询单个任务是否已完成
     * 
     * @param userId 用户ID
     * @param taskType 任务类型
     * @param cycleStartDate 周期开始日期（可选）
     * @return 是否已完成
     */
    boolean isTaskCompleted(Long userId, String taskType, LocalDate cycleStartDate);
}
