// Package integration contains the built-in integration data and admin // surface contribution. package integration import ( "gorm.io/gorm" dataintegration "kra/internal/data/integration" datasystem "kra/internal/data/system" "kra/internal/modules/surface" "kra/pkg/database/migration" "kra/pkg/module" ) func Definition() module.Definition { smsMenu := module.Menu{Name: "sms", Path: "sms", ParentName: "extensions", Component: "view/systemTools/sms/index.vue", Title: "短信服务", Icon: "message", Sort: 9} migrations := append(dataintegration.Migrations(), migration.Step{ID: "202609290001_sms_admin_surface", Migrate: func(db *gorm.DB) error { return datasystem.EnsureAdminSurface(db, module.Surface{ Menus: []module.Menu{smsMenu}, APIs: []module.API{{Path: "/integration/sms/:provider/send", Method: "POST", Group: "短信服务", Description: "发送单条模板短信"}}, }, 888) }}) return module.Definition{ Name: "integration", Migrations: migrations, Surface: module.Surface{ Menus: []module.Menu{ {Name: "integrationConfig", Path: "integrationConfig", ParentName: "extensions", Component: "view/systemTools/integration/config.vue", Title: "通信集成", Icon: "connection", Sort: 8}, smsMenu, }, APIs: surface.APIsForPrefix("/integration/", 6), }, } }