package model

import (
	"fmt"
	"strings"
	"time"
)

type (
    TwitchOAuthToken struct {
        AccessToken string
        ExpiresAt time.Time
        TokenType string
    }

    TwitchState struct {
        Token *TwitchOAuthToken
    }

    TwitchStreamInfo struct {
        ID string `json:"id"`
        UserID string `json:"user_id"`
        UserLogin string `json:"user_login"`
        UserName string `json:"user_name"`
        GameID string `json:"game_id"`
        GameName string `json:"game_name"`
        Type string `json:"type"`
        Title string `json:"title"`
        ViewerCount int `json:"viewer_count"`
        StartedAt string `json:"started_at"`
        Language string `json:"language"`
        ThumbnailURL string `json:"thumbnail_url"`
        TagIDs []string `json:"tag_ids"`
        Tags []string `json:"tags"`
        IsMature bool `json:"is_mature"`
    }
)

func (info *TwitchStreamInfo) Thumbnail(width int, height int) string {
    res := strings.Replace(info.ThumbnailURL, "{width}", fmt.Sprintf("%d", width), 1)
    res = strings.Replace(res, "{height}", fmt.Sprintf("%d", height), 1)
    return res
}
