package com.agileboot.codegen.service;

import java.util.Map;

/**
 * @Author cuiJiaWang
 * @Create 2025-09-24 14:31
 */
public interface IGeneratorService {
    String getTemplateConfig();

    /**
     * 根据参数生成代码
     *
     * @param options 生成参数
     * @return 生成的代码Map
     */
    Map<String, String> getResultByParams(Map<String, Object> options);

    /**
     * 根据参数和自定义模板配置生成代码
     *
     * @param options 生成参数
     * @param templateConfig 自定义模板配置
     * @return 生成的代码Map
     */
    Map<String, String> getResultByParams(Map<String, Object> options, String templateConfig);

    /**
     * 预览单个模板
     *
     * @param templateSource 模板来源(system/user/content)
     * @param templateId 模板ID
     * @param templateContent 模板内容(当templateSource为content时使用)
     * @param options 生成参数
     * @return 生成的代码内容
     */
    String previewSingleTemplate(String templateSource, String templateId, String templateContent, Map<String, Object> options);

    /**
     * 根据模板来源和ID获取模板原始内容
     *
     * @param templateSource 模板来源(system/user)
     * @param templateId 模板ID
     * @return 模板原始内容
     */
    String getTemplateContentBySource(String templateSource, String templateId);
}
