go-twitch/api/users/models.go

123 lines
3.3 KiB
Go
Raw Normal View History

2024-03-03 18:34:26 -05:00
package users
import "time"
type User struct {
// An ID that identifies the user.
ID string `json:"id"`
// The user's login name.
Login string `json:"login"`
// The user's display name.
DisplayName string `json:"display_name"`
// The type of user. Possible values are:
//
// admin — Twitch administrator
//
// global_mod
//
// staff — Twitch staff
//
// "" — Normal user
Type Type `json:"type"`
// The type of broadcaster. Possible values are:
//
// affiliate — An affiliate broadcaster
//
// partner — A partner broadcaster
//
// "" — A normal broadcaster
BroadcasterType BroadcasterType `json:"broadcaster_type"`
// The user's description of their channel.
Description string `json:"description"`
// A URL to the user's profile image.
ProfileImageUrl string `json:"profile_image_url"`
// A URL to the user's offline image.
OfflineImageUrl string `json:"offline_image_url"`
// The user's verified email address. The object includes this field only if the user access token includes the user:read:email scope.
//
// If the request contains more than one user, only the user associated with the access token that provided consent will include an email address —
// the email address for all other users will be empty.
Email *string `json:"email"`
// The UTC date and time that the user's account was created. The timestamp is in RFC3339 format.
CreatedAt time.Time `json:"created_at"`
}
type Type string
const (
// Twitch administrator
TypeAdmin Type = "admin"
// Twitch global moderator
TypeGlobalMod Type = "global_mod"
// Twitch staff
TypeStaff Type = "staff"
// Normal user
TypeNormal Type = ""
)
type BroadcasterType string
const (
// An affiliate broadcaster
BroadcasterTypeAffiliate BroadcasterType = "affiliate"
// A partner broadcaster
BroadcasterTypePartner BroadcasterType = "partner"
// A normal broadcaster
BroadcasterTypeNormal BroadcasterType = ""
)
type ActiveExtension struct {
// A dictionary that contains the data for a panel extension.
// The dictionarys key is a sequential number beginning with 1.
// The following fields contain the panels data for each key.
Panel map[string]ExtensionData `json:"panel"`
// A dictionary that contains the data for a video-overlay extension.
// The dictionarys key is a sequential number beginning with 1.
// The following fields contain the overlays data for each key.
Overlay map[string]ExtensionData `json:"overlay"`
// A dictionary that contains the data for a video-component extension.
// The dictionarys key is a sequential number beginning with 1.
// The following fields contain the components data for each key.
Component map[string]ComponentExtensionData `json:"component"`
}
type ExtensionData struct {
// A Boolean value that determines the extensions activation state. If false, the user has not configured this panel extension.
Active bool `json:"active"`
// An ID that identifies the extension.
ID string `json:"id"`
// The extensions version.
Version string `json:"version"`
// The extensions name.
Name string `json:"name"`
}
type ComponentExtensionData struct {
ExtensionData `json:",inline"`
// The x-coordinate where the extension is placed.
X int `json:"x"`
// The y-coordinate where the extension is placed.
Y int `json:"y"`
}