import type { Types } from "mongoose"

export interface GuildSchema {
	_id: Types.ObjectId
	guildId: string
	guildName: string
	guildIcon: string
	guildLocale: string
	guildPlayer: GuildPlayer
	guildAmp: GuildAmp
	guildFbx: GuildFbx
	guildTwitch: GuildTwitch
}

export interface GuildPlayer {
	disco: Disco
	instances?: GuildPlayerInstance[]
}

export interface Disco {
	enabled: boolean
	channelId?: string
}

export interface GuildPlayerInstance {
	botId: string
	replay: Replay
}

export interface Replay {
	textChannelId?: string
	voiceChannelId?: string
	trackUrl?: string
	progress?: number
}

export interface GuildAmp {
	enabled: boolean
	host?: string
	username?: string
	sessionID?: string
	rememberMeToken?: string
}

export interface GuildFbx {
	enabled: boolean
	host?: string
	appToken?: string
	lcd?: GuildLcd
}

export interface GuildLcd {
	enabled: boolean
	botId?: string
	morningTime?: string
	nightTime?: string
}

export interface GuildTwitch {
	enabled: boolean
	botId?: string
	channelId?: string
	streamers: Streamer[]
}

export interface Streamer {
	twitchUserId: string
	discordUserId?: string
	messageId?: string
}
