package app

import (
	datapayment "kra/internal/data/payment"
	datasystem "kra/internal/data/repository"
	"kra/pkg/module"
)

// Definition describes the built-in system contribution to the application
// catalog. Other business modules can expose the same shape independently.
func Definition() module.Definition {
	return module.Definition{
		Name:       "system",
		Migrations: append(datasystem.Migrations(), datapayment.Migrations()...),
		Surface:    datapayment.AdminSurface(),
		TimedTasks: []module.TimedTask{
			{Name: "ClearDB", Description: "定时清理数据库过期日志(操作记录/JWT黑名单/定时任务执行日志)", Spec: "@daily", MethodName: "ClearDB", Enabled: true},
			{Name: "CleanStaleUploads", Description: "定时清理过期大文件上传会话", Spec: "@hourly", MethodName: "CleanStaleUploads", Enabled: true},
		},
	}
}
