Added data migration service

This commit is contained in:
2025-06-06 23:49:05 +08:00
parent 3e20f47b8e
commit 31addd5a20
25 changed files with 1915 additions and 425 deletions

View File

@@ -9,12 +9,13 @@ import (
// ServiceManager 服务管理器,负责协调各个服务
type ServiceManager struct {
configService *ConfigService
documentService *DocumentService
systemService *SystemService
hotkeyService *HotkeyService
dialogService *DialogService
logger *log.LoggerService
configService *ConfigService
documentService *DocumentService
migrationService *MigrationService
systemService *SystemService
hotkeyService *HotkeyService
dialogService *DialogService
logger *log.LoggerService
}
// NewServiceManager 创建新的服务管理器实例
@@ -25,6 +26,9 @@ func NewServiceManager() *ServiceManager {
// 初始化配置服务 - 使用固定配置(当前目录下的 config/config.yaml
configService := NewConfigService(logger)
// 初始化迁移服务
migrationService := NewMigrationService(logger)
// 初始化文档服务
documentService := NewDocumentService(configService, logger)
@@ -46,6 +50,15 @@ func NewServiceManager() *ServiceManager {
panic(err)
}
// 设置数据路径变更监听
err = configService.SetDataPathChangeCallback(func(oldPath, newPath string) error {
return documentService.OnDataPathChanged(oldPath, newPath)
})
if err != nil {
logger.Error("Failed to set data path change callback", "error", err)
panic(err)
}
// 初始化文档服务
err = documentService.Initialize()
if err != nil {
@@ -54,12 +67,13 @@ func NewServiceManager() *ServiceManager {
}
return &ServiceManager{
configService: configService,
documentService: documentService,
systemService: systemService,
hotkeyService: hotkeyService,
dialogService: dialogService,
logger: logger,
configService: configService,
documentService: documentService,
migrationService: migrationService,
systemService: systemService,
hotkeyService: hotkeyService,
dialogService: dialogService,
logger: logger,
}
}
@@ -68,6 +82,7 @@ func (sm *ServiceManager) GetServices() []application.Service {
return []application.Service{
application.NewService(sm.configService),
application.NewService(sm.documentService),
application.NewService(sm.migrationService),
application.NewService(sm.systemService),
application.NewService(sm.hotkeyService),
application.NewService(sm.dialogService),
@@ -78,3 +93,8 @@ func (sm *ServiceManager) GetServices() []application.Service {
func (sm *ServiceManager) GetHotkeyService() *HotkeyService {
return sm.hotkeyService
}
// GetDialogService 获取对话框服务实例
func (sm *ServiceManager) GetDialogService() *DialogService {
return sm.dialogService
}