package com.cool.modules.dailyreport.service;

/**
 * 日报AI格式化服务接口
 */
public interface DailyReportAiService {

    /**
     * 使用AI格式化日报内容
     *
     * @param originalText 用户原始输入内容
     * @param templateKey  模板标识（如 "daily_report"）
     * @return 格式化后的日报内容
     * @throws RuntimeException AI格式化失败时抛出异常
     */
    String formatDailyReport(String originalText, String templateKey);

    /**
     * 使用AI格式化日报内容（带日期）
     *
     * @param originalText 用户原始输入内容
     * @param templateKey  模板标识（如 "daily_report"）
     * @param reportDate   日报日期（格式：yyyy-MM-dd）
     * @return 格式化后的日报内容
     * @throws RuntimeException AI格式化失败时抛出异常
     */
    String formatDailyReport(String originalText, String templateKey, String reportDate);

    /**
     * 使用默认模板格式化日报内容
     *
     * @param originalText 用户原始输入内容
     * @return 格式化后的日报内容
     */
    String formatDailyReportWithDefaultTemplate(String originalText);

    /**
     * 检查AI服务是否可用
     *
     * @return true-可用，false-不可用
     */
    boolean isAiServiceAvailable();

    /**
     * 基于模板与聚合内容生成建议文本（组织或个人）。
     * 约定模板中可使用 {content} / {{content}} 作为聚合内容占位符。
     *
     * @param templateKey 模板标识（如 org_insight_weekly / user_advice_weekly 等）
     * @param content     聚合后的输入内容
     * @return 建议文本
     */
    String generateAdvice(String templateKey, String content);
}
