Upgrade Go version to 1.23.0 and update dependencies. Introduce new application structure with Clean Architecture principles, including message processing, NATS integration, and PostgreSQL repository. Add configuration management using Koanf and structured logging with Zap. Remove legacy GraphQL integration and related files. Implement dependency injection with Google Wire.

This commit is contained in:
windyboy
2025-11-14 08:42:26 +08:00
parent bafbbf470c
commit a574cfcf27
31 changed files with 1565 additions and 1374 deletions
+45
View File
@@ -0,0 +1,45 @@
//go:build wireinject
// +build wireinject
package di
import (
"caatsm/internal/adapter/parser"
"caatsm/internal/app"
"caatsm/internal/infra/config"
"caatsm/internal/infra/log"
"caatsm/internal/infra/nats"
"caatsm/internal/infra/postgres"
"github.com/google/wire"
)
// InitializeApp initializes the application with all dependencies
func InitializeApp() (*app.MessageProcessor, *nats.Consumer, error) {
wire.Build(
// Config
config.ProvideConfig,
// Logger
log.ProvideLogger,
// Database
postgres.ProvideDB,
postgres.ProvideRepository,
// NATS
nats.ProvideJetStream,
nats.ProvidePublisher,
// Parser
parser.ProvideParser,
// App
app.NewMessageProcessor,
// Consumer
nats.ProvideConsumer,
)
return nil, nil, nil
}
+51
View File
@@ -0,0 +1,51 @@
// Code generated by Wire. DO NOT EDIT.
//go:build !wireinject
// +build !wireinject
package di
import (
"caatsm/internal/adapter/parser"
"caatsm/internal/app"
"caatsm/internal/infra/config"
"caatsm/internal/infra/log"
"caatsm/internal/infra/nats"
"caatsm/internal/infra/postgres"
)
// InitializeApp initializes the application with all dependencies
func InitializeApp() (*app.MessageProcessor, *nats.Consumer, error) {
configConfig, err := config.ProvideConfig()
if err != nil {
return nil, nil, err
}
zapLogger, err := log.ProvideLogger(configConfig)
if err != nil {
return nil, nil, err
}
pgxpoolPool, err := postgres.ProvideDB(configConfig)
if err != nil {
return nil, nil, err
}
adapterRepository, err := postgres.ProvideRepository(pgxpoolPool, zapLogger)
if err != nil {
return nil, nil, err
}
natsJetStreamContext, err := nats.ProvideJetStream(configConfig, zapLogger)
if err != nil {
return nil, nil, err
}
adapterPublisher, err := nats.ProvidePublisher(natsJetStreamContext, configConfig, zapLogger)
if err != nil {
return nil, nil, err
}
parserParser := parser.ProvideParser()
appMessageProcessor := app.NewMessageProcessor(parserParser, adapterRepository, adapterPublisher, zapLogger)
natsConsumer, err := nats.ProvideConsumer(natsJetStreamContext, appMessageProcessor, configConfig, zapLogger)
if err != nil {
return nil, nil, err
}
return appMessageProcessor, natsConsumer, nil
}