feat: 接入商务用户资料和全局统计偏好

This commit is contained in:
Yvan
2026-11-03 17:44:25 +08:00
parent 89cc7761b5
commit ce4b54a2e2
39 changed files with 2562 additions and 17 deletions
+13
View File
@@ -0,0 +1,13 @@
package business
import (
databusiness "kra/internal/data/business"
"kra/internal/modules/surface"
"kra/pkg/module"
)
func Definition() module.Definition {
return module.Definition{Name: "business", Migrations: databusiness.Migrations(), Surface: module.Surface{
APIs: surface.APIsForPrefix("/sw/", 0),
}}
}
+2
View File
@@ -4,6 +4,7 @@
package modules
import (
businessmodule "kra/internal/modules/business"
integrationmodule "kra/internal/modules/integration"
paymentmodule "kra/internal/modules/payment"
systemmodule "kra/internal/modules/system"
@@ -20,5 +21,6 @@ func Catalog() module.Catalog {
integrationmodule.Definition(),
taskmodule.Definition(),
paymentmodule.Definition(),
businessmodule.Definition(),
}}
}
+7 -7
View File
@@ -16,25 +16,25 @@ func TestCatalogMigrationIDsAreUnique(t *testing.T) {
func TestCatalogContainsBuiltInModulesInDependencyOrder(t *testing.T) {
catalog := Catalog()
if len(catalog.Definitions) != 4 {
t.Fatalf("definitions = %d, want 4", len(catalog.Definitions))
if len(catalog.Definitions) != 5 {
t.Fatalf("definitions = %d, want 5", len(catalog.Definitions))
}
want := []string{"system", "integration", "task", "payment"}
want := []string{"system", "integration", "task", "payment", "business"}
for index, name := range want {
if got := catalog.Definitions[index].Name; got != name {
t.Fatalf("definition[%d] = %q, want %q", index, got, name)
}
}
if got := catalog.MigrationSteps(); len(got) != 14 {
t.Fatalf("module migrations = %d, want 14", len(got))
if got := catalog.MigrationSteps(); len(got) != 16 {
t.Fatalf("module migrations = %d, want 16", len(got))
}
var menus, apis int
for _, definition := range catalog.Definitions {
menus += len(definition.Surface.Menus)
apis += len(definition.Surface.APIs)
}
if menus != 4 || apis != 18 {
t.Fatalf("admin surface = %d menus/%d APIs, want 4/18", menus, apis)
if menus != 4 || apis != 20 {
t.Fatalf("admin surface = %d menus/%d APIs, want 4/20", menus, apis)
}
if got := catalog.DefaultTimedTasks(); len(got) != 2 {
t.Fatalf("default timed tasks = %d, want 2", len(got))