arimelody-web/model/app/appstate.go

61 lines
1.7 KiB
Go

package app
import (
"embed"
"github.com/jmoiron/sqlx"
"arimelody-web/model/twitch"
logService "arimelody-web/service/log"
//inviteService "arimelody-web/service/invite"
accountService "arimelody-web/service/account"
//sessionService "arimelody-web/service/session"
musicService "arimelody-web/service/music"
)
type (
DBConfig struct {
Host string `toml:"host"`
Port int64 `toml:"port"`
Name string `toml:"name"`
User string `toml:"user"`
Pass string `toml:"pass"`
}
DiscordConfig struct {
AdminID string `toml:"admin_id" comment:"NOTE: admin_id to be deprecated in favour of local accounts and SSO."`
ClientID string `toml:"client_id"`
Secret string `toml:"secret"`
}
TwitchConfig struct {
Broadcaster string `toml:"broadcaster"`
ClientID string `toml:"client_id"`
Secret string `toml:"secret"`
}
Config struct {
BaseUrl string `toml:"base_url" comment:"Used for OAuth redirects."`
Host string `toml:"host"`
Port int64 `toml:"port"`
DataDirectory string `toml:"data_dir"`
TrustedProxies []string `toml:"trusted_proxies"`
DB DBConfig `toml:"db"`
Discord *DiscordConfig `toml:"discord"`
Twitch *TwitchConfig `toml:"twitch"`
}
AppState struct {
DB *sqlx.DB
Config Config
Twitch *twitch.State
PublicFS embed.FS
LogService *logService.LogService
//InviteService *inviteService.InviteService
AccountService *accountService.AccountService
//SesisonService *sessionService.SessionService
MusicService *musicService.MusicService
}
)