Files
2026-09-29 18:15:35 +08:00

34 lines
1.3 KiB
Go

// 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),
},
}
}