package database import ( "errors" slogGorm "github.com/orandin/slog-gorm" "gorm.io/driver/postgres" "gorm.io/driver/sqlite" "gorm.io/gorm" ) type dbService struct { dbType string db *gorm.DB } func NewDatabaseService(dbType, connection, logLevel string) (DatabaseService, error) { var dialector gorm.Dialector switch dbType { case "sqlite": dialector = sqlite.Open(connection) case "postgres": dialector = postgres.Open(connection) default: return nil, errors.New("unknown dbType") } db, err := gorm.Open(dialector, &gorm.Config{ Logger: slogGorm.New(), }) if err == nil { db.DB() db.AutoMigrate() // db.LogMode(true) } result := &dbService{} result.dbType = dbType result.db = db return result, err }