package com.ycwl.basic.service.task;

import com.ycwl.basic.model.pc.task.resp.TaskRespVO;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.model.task.req.TaskReqVo;
import com.ycwl.basic.model.task.req.TaskSuccessReqVo;
import com.ycwl.basic.model.task.req.WorkerAuthReqVo;
import com.ycwl.basic.model.task.resp.TaskSyncRespVo;

import java.util.Date;

public interface TaskService {
    TaskSyncRespVo handleSyncTask(TaskReqVo req);

    TemplateRespVO workerGetTemplate(Long templateId, WorkerAuthReqVo req);

    void createTaskByFaceIdAndTempalteId(Long faceId, Long templateId);

    void createTaskByFaceIdAndTempalteId(Long faceId, Long templateId, int automatic);

    void taskSuccess(Long taskId, TaskSuccessReqVo req);

    void taskFail(Long taskId, WorkerAuthReqVo req);

    String getUploadUrl(Long taskId, WorkerAuthReqVo req);

    void taskStart(Long taskId, WorkerAuthReqVo req);

    void forceCreateTaskByFaceIdAndTempalteId(Long faceId, Long templateId);

    void autoCreateTaskByFaceId(Long id);

    Date getTaskShotDate(Long taskId);

    void sendVideoGeneratedServiceNotification(Long taskId, Long memberId);

    TaskRespVO taskInfo(Long taskId);
}
