package com.lesingle.edu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lesingle.edu.dto.request.CreateTaskFromTemplateRequest;
import com.lesingle.edu.dto.request.TaskTemplateCreateRequest;
import com.lesingle.edu.entity.Task;
import com.lesingle.edu.entity.TaskTemplate;

import java.util.List;

/**
 * 任务模板服务接口
 */
public interface TaskTemplateService extends com.baomidou.mybatisplus.extension.service.IService<TaskTemplate> {

    /**
     * 获取模板列表
     */
    Page<TaskTemplate> getTemplates(Long tenantId, Integer pageNum, Integer pageSize, String type, String keyword, Boolean publicOnly);

    /**
     * 获取默认模板
     */
    TaskTemplate getDefaultTemplate(Long tenantId, String type);

    /**
     * 获取模板详情
     */
    TaskTemplate getTemplateById(Long id);

    /**
     * 创建模板
     */
    TaskTemplate createTemplate(Long tenantId, Long userId, TaskTemplateCreateRequest request);

    /**
     * 更新模板
     */
    TaskTemplate updateTemplate(Long id, TaskTemplateCreateRequest request);

    /**
     * 删除模板
     */
    void deleteTemplate(Long id);

    /**
     * 从模板创建任务
     */
    Task createTaskFromTemplate(Long tenantId, Long userId, Long templateId, CreateTaskFromTemplateRequest request);

}
