package com.seer.teach.admin.service;

import com.seer.teach.admin.request.AdminConvertQuestionToHtmlReq;
import com.seer.teach.admin.request.RichTextTemplatePageReq;
import com.seer.teach.admin.request.RichTextTemplateQueryReq;
import com.seer.teach.admin.request.RichTextTemplateReq;
import com.seer.teach.admin.request.QuestionPreviewReq;
import com.seer.teach.admin.response.RichTextTemplateResp;
import com.seer.teach.common.PageListBean;

import java.util.List;

/**
 * 富文本模板服务接口
 *
 * @author ZS
 * @since 2025-10-30
 */
public interface AdminRichTextTemplateService {

    /**
     * 分页查询富文本模板
     *
     * @param pageRequest 分页请求参数
     * @return 分页结果
     */
    PageListBean<RichTextTemplateResp> pageList(RichTextTemplatePageReq pageRequest);

    /**
     * 获取富文本模板列表
     *
     * @param queryRequest 查询请求参数
     * @return 模板列表
     */
    List<RichTextTemplateResp> list(RichTextTemplateQueryReq queryRequest);

    /**
     * 根据ID获取富文本模板详情
     *
     * @param id 模板ID
     * @return 模板详情
     */
    RichTextTemplateResp getDetail(Integer id);

    /**
     * 新增富文本模板
     *
     * @param requestParam 模板请求参数
     * @return 是否新增成功
     */
    Boolean save(RichTextTemplateReq requestParam);

    /**
     * 更新富文本模板
     *
     * @param requestParam 模板请求参数
     * @return 是否更新成功
     */
    Boolean updateById(RichTextTemplateReq requestParam);

    /**
     * 删除富文本模板
     *
     * @param id 模板ID
     * @return 是否删除成功
     */
    Boolean deleteById(Integer id);

    /**
     * 预览题目
     *
     * @param requestParam 预览请求参数
     * @return 渲染后的HTML
     */
    String preview(QuestionPreviewReq requestParam);
    
    /**
     * 将题目转换为富文本
     *
     * @param requestParam 转换请求参数
     * @return 渲染后的HTML
     */
    String convertToHtml(QuestionPreviewReq requestParam);

    /**
     * 根据模板将所有题目转换为富文本
     *
     * @param id 模板ID
     * @param convertQuestionToHtmlReq 查询参数
     * @return 渲染后的HTML
     */
    String convertAllExampleQuestionsToHtmlById(Integer id, AdminConvertQuestionToHtmlReq convertQuestionToHtmlReq);
}