package com.test.musichouduan.util;

/**
 * Swagger 注解生成器
 * 用于生成控制器的接口文档注解
 */
public class SwaggerAnnotationGenerator {

    /**
     * 生成控制器类的 Tag 注解
     *
     * @param name 标签名称
     * @param description 标签描述
     * @return Tag 注解字符串
     */
    public static String generateTagAnnotation(String name, String description) {
        return "@Tag(name = \"" + name + "\", description = \"" + description + "\")";
    }

    /**
     * 生成控制器方法的 Operation 注解
     *
     * @param summary 操作摘要
     * @param description 操作描述
     * @return Operation 注解字符串
     */
    public static String generateOperationAnnotation(String summary, String description) {
        return "@Operation(summary = \"" + summary + "\", description = \"" + description + "\")";
    }

    /**
     * 生成控制器方法参数的 Parameter 注解
     *
     * @param name 参数名称
     * @param description 参数描述
     * @param example 参数示例
     * @return Parameter 注解字符串
     */
    public static String generateParameterAnnotation(String name, String description, String example) {
        if (example != null && !example.isEmpty()) {
            return "@Parameter(name = \"" + name + "\", description = \"" + description + "\", example = \"" + example + "\")";
        } else {
            return "@Parameter(name = \"" + name + "\", description = \"" + description + "\")";
        }
    }

    /**
     * 生成控制器方法的导入语句
     *
     * @return 导入语句字符串
     */
    public static String generateImports() {
        return "import io.swagger.v3.oas.annotations.Operation;\n" +
               "import io.swagger.v3.oas.annotations.Parameter;\n" +
               "import io.swagger.v3.oas.annotations.tags.Tag;";
    }
}
