package com.nanri.aiimage.config;

import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class OpenApiConfig {

    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("AI Image Backend API")
                        .description("""
                                文件处理后端接口文档。

                                当前迁移范围：仅迁移数据去重（dedupe）、格式转换（convert）、数据拆分（split）三块处理逻辑到 Java；
                                Python 桌面端壳、pywebview 调用方式、前端页面交互保持不变。

                                建议联调顺序：
                                1. 先启动 Java 后端；
                                2. 在 Python 桌面端中选择文件并执行 dedupe/convert/split；
                                3. Python 壳会先调用 /api/files/upload 上传临时文件；
                                4. 再调用对应的 /api/dedupe/run、/api/convert/run、/api/split/run；
                                5. Java 生成结果文件后，Python 壳再通过下载接口取回并保存到用户本地目录。

                                本地启动说明：
                                - 默认配置读取 application.yml；
                                - 建议复制 application-local.example.yml 为本地配置，并在 IDE 中通过环境变量覆盖数据库与 OSS 参数；
                                - Knife4j 地址：/doc.html
                                """)
                        .version("v0.0.1")
                        .contact(new Contact().name("Nanri AI"))
                        .license(new License().name("Internal Use")))
                .externalDocs(new ExternalDocumentation()
                        .description("Knife4j 文档")
                        .url("/doc.html"));
    }
}
