From 3e9ac308125c4dcc94be805b98606a53b5733ad5 Mon Sep 17 00:00:00 2001 From: Miroslav Misek Date: Fri, 28 Mar 2025 08:50:07 +0100 Subject: [PATCH] changes --- .idea/database.iml | 1 + config_builder.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ go.mod | 2 +- module.go | 11 ++++++++++- 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 config_builder.go diff --git a/.idea/database.iml b/.idea/database.iml index c956989..5e764c4 100644 --- a/.idea/database.iml +++ b/.idea/database.iml @@ -1,5 +1,6 @@ + diff --git a/config_builder.go b/config_builder.go new file mode 100644 index 0000000..ce15f36 --- /dev/null +++ b/config_builder.go @@ -0,0 +1,45 @@ +package database + +type ConfigBuilder struct { + config *Config +} + +func NewConfigBuilder() *ConfigBuilder { + return &ConfigBuilder{ + config: NewConfig(), + } +} + +func (cb *ConfigBuilder) DSN(dsn string) *ConfigBuilder { + cb.config.DSN = dsn + return cb +} + +func (cb *ConfigBuilder) MaxIdleConns(maxIdleConns int) *ConfigBuilder { + cb.config.MaxIdleConns = maxIdleConns + return cb +} + +func (cb *ConfigBuilder) MaxOpenConns(maxOpenConns int) *ConfigBuilder { + cb.config.MaxOpenConns = maxOpenConns + return cb +} + +func (cb *ConfigBuilder) ConnMaxLifetime(connMaxLifetime int) *ConfigBuilder { + cb.config.ConnMaxLifetime = connMaxLifetime + return cb +} + +func (cb *ConfigBuilder) AutoMigrate(autoMigrate bool) *ConfigBuilder { + cb.config.AutoMigrate = autoMigrate + return cb +} + +func (cb *ConfigBuilder) ShowSQL(showSql bool) *ConfigBuilder { + cb.config.ShowSql = showSql + return cb +} + +func (cb *ConfigBuilder) Build() *Config { + return cb.config +} diff --git a/go.mod b/go.mod index ec30315..5a16e94 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module netgarden.dev/maf/database go 1.24.1 -replace netgarden.dev/maf/maf => ../maf +replace netgarden.dev/maf/maf => ../../maf/maf require ( github.com/satori/go.uuid v1.2.0 diff --git a/module.go b/module.go index eb6cb61..403a135 100644 --- a/module.go +++ b/module.go @@ -10,7 +10,13 @@ import ( ) func NewModule() *Module { - return &Module{} + return NewModuleWithConfig(NewConfig()) +} + +func NewModuleWithConfig(config *Config) *Module { + return &Module{ + config: config, + } } type Module struct { @@ -32,6 +38,9 @@ func (m *Module) SetManager(manager *maf.Manager) { } func (m *Module) CreateConfig() interface{} { + if m.config != nil { + return m.config + } return NewConfig() }