package app

import (
	v1 "git.echol.cn/loser/ai_proxy/server/api/v1"
	"git.echol.cn/loser/ai_proxy/server/middleware"
	"github.com/gin-gonic/gin"
)

type AiProxyRouter struct{}

// InitAiProxyRouter 使用业务路由组（通常带有 /api 前缀），供后台管理前端调用
func (s *AiProxyRouter) InitAiProxyRouter(Router *gin.RouterGroup) {
	aiProxyRouter := Router.Group("v1").Use(middleware.AiAuth())
	aiProxyApi := v1.ApiGroupApp.AppApiGroup.AiProxyApi
	{
		aiProxyRouter.GET("models", aiProxyApi.ListModels)                 // 获取模型列表
		aiProxyRouter.POST("chat/completions", aiProxyApi.ChatCompletions) // OpenAI 兼容
		aiProxyRouter.POST("messages", aiProxyApi.ClaudeMessages)          // Claude 兼容
	}
}

// InitAiProxyRootRouter 在根路径下注册 AI 相关的通用接口，路径为 /v1/**
// 这样可以对外提供标准的 OpenAI/Claude 兼容地址：/v1/models、/v1/chat/completions、/v1/messages
func (s *AiProxyRouter) InitAiProxyRootRouter(engine *gin.Engine) {
	aiProxyRouter := engine.Group("/v1").Use(middleware.AiAuth())
	aiProxyApi := v1.ApiGroupApp.AppApiGroup.AiProxyApi
	{
		aiProxyRouter.GET("/models", aiProxyApi.ListModels)                 // 获取模型列表
		aiProxyRouter.POST("/chat/completions", aiProxyApi.ChatCompletions) // OpenAI 兼容
		aiProxyRouter.POST("/messages", aiProxyApi.ClaudeMessages)          // Claude 兼容
	}
}
