package config

import (
	"github.com/jackc/pgx/v4"
	"github.com/rs/zerolog"
)

var Config = HMNConfig{
	Env:         Dev,
	Addr:        ":9001",
	PrivateAddr: ":9002",
	BaseUrl:     "http://handmade.local:9001",
	LogLevel:    zerolog.TraceLevel, // InfoLevel is recommended for production
	Postgres: PostgresConfig{
		User:     "hmn",
		Password: "password",
		Hostname: "handmade.local",
		Port:     5432,
		DbName:   "hmn",
		LogLevel: pgx.LogLevelTrace, // LogLevelWarn is recommended for production
		MinConn:  2, // Keep these low for dev, high for production
		MaxConn:  10,
	},
	Auth: AuthConfig{
		CookieDomain: ".handmade.local",
		CookieSecure: false,
	},
	Email: EmailConfig{
		ServerAddress:          "smtp.example.com",
		ServerPort:             587,
		FromAddress:            "noreply@example.com",
		FromAddressPassword:    "",
		FromName:               "Handmade Network Team",
		OverrideRecipientEmail: "override@handmade.network", // NOTE(asaf): If this is not empty, all emails will be redirected to this address.
	},
	DigitalOcean: DigitalOceanConfig{
		AssetsSpacesKey:      "",
		AssetsSpacesSecret:   "",
		AssetsSpacesRegion:   "",
		AssetsSpacesEndpoint: "",
		AssetsSpacesBucket:   "",
		AssetsPathPrefix:     "", // Empty is fine for production, but may be necessary for dev
		AssetsPublicUrlRoot:  "", // e.g. "https://bucket-name.region.cdn.digitaloceanspaces.com/". Note the trailing slash...
	},
	Discord: DiscordConfig{
		BotToken:  "",
		BotUserID: "",

		OAuthClientID:     "",
		OAuthClientSecret: "",

		GuildID:           "",
		MemberRoleID:      "",
		ShowcaseChannelID: "",
		LibraryChannelID:  "",
	},
	EpisodeGuide: EpisodeGuide{
		CineraOutputPath: "./annotations/",
		Projects:         map[string]string{"hero": "code", "riscy": "riscy", "bitwise": "bitwise"},
	},
}
