package config import "fmt" // DatabaseConfig 数据库配置 type DatabaseConfig struct { Type string `mapstructure:"type"` SQLite SQLiteConfig `mapstructure:"sqlite"` Postgres PostgresConfig `mapstructure:"postgres"` MaxIdleConns int `mapstructure:"max_idle_conns"` MaxOpenConns int `mapstructure:"max_open_conns"` LogLevel string `mapstructure:"log_level"` SlowThresholdMs int `mapstructure:"slow_threshold_ms"` IgnoreRecordNotFound bool `mapstructure:"ignore_record_not_found"` ParameterizedQueries bool `mapstructure:"parameterized_queries"` } // SQLiteConfig SQLite 配置 type SQLiteConfig struct { Path string `mapstructure:"path"` } // PostgresConfig PostgreSQL 配置 type PostgresConfig struct { Host string `mapstructure:"host"` Port int `mapstructure:"port"` User string `mapstructure:"user"` Password string `mapstructure:"password"` DBName string `mapstructure:"dbname"` SSLMode string `mapstructure:"sslmode"` } // DSN 返回 PostgreSQL 连接字符串 func (d PostgresConfig) DSN() string { return fmt.Sprintf( "host=%s port=%d user=%s password=%s dbname=%s sslmode=%s", d.Host, d.Port, d.User, d.Password, d.DBName, d.SSLMode, ) }