hmn/src/models/twitch.go

58 lines
2.0 KiB
Go

package models
import "time"
type TwitchLatestStatus struct {
TwitchID string `db:"twitch_id"`
TwitchLogin string `db:"twitch_login"`
StreamID string `db:"stream_id"`
Live bool `db:"live"`
StartedAt time.Time `db:"started_at"`
Title string `db:"title"`
CategoryID string `db:"category_id"`
Tags []string `db:"tags"`
LastHookLiveUpdate time.Time `db:"last_hook_live_update"`
LastHookChannelUpdate time.Time `db:"last_hook_channel_update"`
LastRESTUpdate time.Time `db:"last_rest_update"`
}
type TwitchStreamHistory struct {
StreamID string `db:"stream_id"`
TwitchID string `db:"twitch_id"`
TwitchLogin string `db:"twitch_login"`
StartedAt time.Time `db:"started_at"`
EndedAt time.Time `db:"ended_at"`
StreamEnded bool `db:"stream_ended"`
EndApproximated bool `db:"end_approximated"`
Title string `db:"title"`
CategoryID string `db:"category_id"`
Tags []string `db:"tags"`
DiscordMessageID string `db:"discord_message_id"`
DiscordNeedsUpdate bool `db:"discord_needs_update"`
VODID string `db:"vod_id"`
VODUrl string `db:"vod_url"`
VODThumbnail string `db:"vod_thumbnail"`
LastVerifiedVOD time.Time `db:"last_verified_vod"`
// NOTE(asaf): If we had a VOD for a while, and then it disappeared,
// assume it was removed from twitch and don't bother
// checking for it again.
VODGone bool `db:"vod_gone"`
}
type TwitchLogType int
const (
TwitchLogTypeOther TwitchLogType = iota + 1
TwitchLogTypeHook
TwitchLogTypeREST
)
type TwitchLog struct {
ID int `db:"id"`
LoggedAt time.Time `db:"logged_at"`
Login string `db:"twitch_login"`
Type TwitchLogType `db:"type"`
Message string `db:"message"`
Payload string `db:"payload"`
}