package config

import (
	"fmt"
	"os"
)

// DatabaseConfig MySQL 连接（环境变量 DB_* 可覆盖；亦支持 DB_DSN 整串）
type DatabaseConfig struct {
	Host     string `json:"host"`
	Port     string `json:"port"`
	User     string `json:"user"`
	Password string `json:"password"`
	Database string `json:"database"`
}

// DatabaseDSN 返回 GORM/MySQL driver 用连接串
func (c *Config) DatabaseDSN() string {
	if dsn := os.Getenv("DB_DSN"); dsn != "" {
		return dsn
	}
	d := c.Database
	return fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
		d.User, d.Password, d.Host, d.Port, d.Database)
}
