package conf import ( "github.com/google/wire" "go.uber.org/zap" ) // ProviderSet is conf providers. var ProviderSet = wire.NewSet( ProvideServer, ProvideJWT, ProvideMysql, ProvidePgsql, ProvideSqlite, ProvideMssql, ProvideOracle, ProvideRedis, ProvideMongo, ProvideCaptcha, ProvideSystem, ProvideUseStrictAuth, ProvideZapLogger, ProvideAutocode, ProvideAutoCodeConfig, ProvideAutoCodeLLMConfig, ProvideAutoCodeMCPConfig, ProvideMCP, ProvideLocal, ProvideQiniu, ProvideMinio, ProvideAliyunOss, ProvideTencentCos, ProvideAwsS3, ProvideCloudflareR2, ProvideHuaweiObs, ProvideEmail, ProvideExcel, ProvideCors, ProvideZap, ) // ProvideZapLogger 提供zap日志实例 func ProvideZapLogger() *zap.Logger { logger, _ := zap.NewProduction() return logger } // ProvideServer 提供Server配置 func ProvideServer(c *Bootstrap) *Server { return c.Server } // ProvideJWT 提供JWT配置 func ProvideJWT(c *Bootstrap) *JWT { return c.Jwt } // ProvideMysql 提供Mysql配置 func ProvideMysql(c *Bootstrap) *Mysql { return c.Mysql } // ProvidePgsql 提供Pgsql配置 func ProvidePgsql(c *Bootstrap) *Pgsql { return c.Pgsql } // ProvideSqlite 提供Sqlite配置 func ProvideSqlite(c *Bootstrap) *Sqlite { return c.Sqlite } // ProvideMssql 提供Mssql配置 func ProvideMssql(c *Bootstrap) *Mssql { return c.Mssql } // ProvideOracle 提供Oracle配置 func ProvideOracle(c *Bootstrap) *Oracle { return c.Oracle } // ProvideRedis 提供Redis配置 func ProvideRedis(c *Bootstrap) *Redis { return c.Redis } // ProvideMongo 提供Mongo配置 func ProvideMongo(c *Bootstrap) *Mongo { return c.Mongo } // ProvideCaptcha 提供Captcha配置 func ProvideCaptcha(c *Bootstrap) *Captcha { return c.Captcha } // ProvideSystem 提供System配置 func ProvideSystem(c *Bootstrap) *System { return c.System } // UseStrictAuth 用于wire注入的类型包装 type UseStrictAuth bool // ProvideUseStrictAuth 提供UseStrictAuth配置 func ProvideUseStrictAuth(c *System) UseStrictAuth { if c == nil { return false } return UseStrictAuth(c.UseStrictAuth) } // ProvideAutocode 提供Autocode配置 func ProvideAutocode(c *Bootstrap) *Autocode { if c.Autocode == nil { return &Autocode{ Web: "web/src", Root: "./", Server: "server", Module: "kra", AiPath: "", } } return c.Autocode } // AutoCodeConfig 自动代码配置 type AutoCodeConfig struct { Root string Server string Web string Module string } // AutoCodeLLMConfig LLM配置 type AutoCodeLLMConfig struct { AiPath string } // AutoCodeMCPConfig MCP配置 type AutoCodeMCPConfig struct { Root string Server string } // ProvideAutoCodeConfig 提供AutoCode配置 func ProvideAutoCodeConfig(autocode *Autocode) *AutoCodeConfig { if autocode == nil { return &AutoCodeConfig{ Root: "./", Server: "server", Web: "web", Module: "kra", } } return &AutoCodeConfig{ Root: autocode.Root, Server: autocode.Server, Web: autocode.Web, Module: autocode.Module, } } // ProvideAutoCodeLLMConfig 提供AutoCodeLLM配置 func ProvideAutoCodeLLMConfig(autocode *Autocode) *AutoCodeLLMConfig { if autocode == nil { return &AutoCodeLLMConfig{ AiPath: "", } } return &AutoCodeLLMConfig{ AiPath: autocode.AiPath, } } // ProvideAutoCodeMCPConfig 提供AutoCodeMCP配置 func ProvideAutoCodeMCPConfig(autocode *Autocode) *AutoCodeMCPConfig { if autocode == nil { return &AutoCodeMCPConfig{ Root: "./", Server: "server", } } return &AutoCodeMCPConfig{ Root: autocode.Root, Server: autocode.Server, } } // ProvideMCP 提供MCP配置 func ProvideMCP(c *Bootstrap) *MCP { if c.Mcp == nil { return &MCP{ Name: "kra-mcp", Version: "v1.0.0", SsePath: "/mcp/sse", MessagePath: "/mcp/message", UrlPrefix: "", Addr: 8889, Separate: false, Enabled: false, } } return c.Mcp } // ProvideLocal 提供Local配置 func ProvideLocal(c *Bootstrap) *Local { if c.Local == nil { return &Local{ Path: "uploads/file", StorePath: "uploads/file", } } return c.Local } // ProvideQiniu 提供Qiniu配置 func ProvideQiniu(c *Bootstrap) *Qiniu { return c.Qiniu } // ProvideMinio 提供Minio配置 func ProvideMinio(c *Bootstrap) *Minio { return c.Minio } // ProvideAliyunOss 提供AliyunOss配置 func ProvideAliyunOss(c *Bootstrap) *AliyunOss { return c.AliyunOss } // ProvideTencentCos 提供TencentCos配置 func ProvideTencentCos(c *Bootstrap) *TencentCos { return c.TencentCos } // ProvideAwsS3 提供AwsS3配置 func ProvideAwsS3(c *Bootstrap) *AwsS3 { return c.AwsS3 } // ProvideCloudflareR2 提供CloudflareR2配置 func ProvideCloudflareR2(c *Bootstrap) *CloudflareR2 { return c.CloudflareR2 } // ProvideHuaweiObs 提供HuaweiObs配置 func ProvideHuaweiObs(c *Bootstrap) *HuaweiObs { return c.HuaweiObs } // ProvideEmail 提供Email配置 func ProvideEmail(c *Bootstrap) *Email { return c.Email } // ProvideExcel 提供Excel配置 func ProvideExcel(c *Bootstrap) *Excel { if c.Excel == nil { return &Excel{ Dir: "./resource/excel/", } } return c.Excel } // ProvideCors 提供Cors配置 func ProvideCors(c *Bootstrap) *Cors { return c.Cors } // ProvideZap 提供Zap配置 func ProvideZap(c *Bootstrap) *Zap { if c.Zap == nil { return &Zap{ Level: "info", Format: "console", Prefix: "[kratos-admin]", Director: "log", ShowLine: true, EncodeLevel: "LowercaseColorLevelEncoder", StacktraceKey: "stacktrace", LogInConsole: true, RetentionDay: -1, } } return c.Zap }