2025-04-08 12:58:14 +10:00

70 lines
4.4 KiB
Go

package model
import (
pb "github.com/bestnite/go-igdb/proto"
"google.golang.org/protobuf/types/known/timestamppb"
)
type GameIds []uint64
type GameId uint64
type Game struct {
Id uint64 `json:"id,omitempty"`
AgeRatings []*pb.AgeRating `json:"age_ratings,omitempty"`
AggregatedRating float64 `json:"aggregated_rating,omitempty"`
AggregatedRatingCount int32 `json:"aggregated_rating_count,omitempty"`
AlternativeNames []*pb.AlternativeName `json:"alternative_names,omitempty"`
Artworks []*pb.Artwork `json:"artworks,omitempty"`
Bundles GameIds `json:"bundles,omitempty"`
Cover *pb.Cover `json:"cover,omitempty"`
CreatedAt *timestamppb.Timestamp `json:"created_at,omitempty"`
Dlcs GameIds `json:"dlcs,omitempty"`
Expansions GameIds `json:"expansions,omitempty"`
ExternalGames []*pb.ExternalGame `json:"external_games,omitempty"`
FirstReleaseDate *timestamppb.Timestamp `json:"first_release_date,omitempty"`
Franchise *pb.Franchise `json:"franchise,omitempty"`
Franchises []*pb.Franchise `json:"franchises,omitempty"`
GameEngines []*pb.GameEngine `json:"game_engines,omitempty"`
GameModes []*pb.GameMode `json:"game_modes,omitempty"`
Genres []*pb.Genre `json:"genres,omitempty"`
Hypes int32 `json:"hypes,omitempty"`
InvolvedCompanies []*pb.InvolvedCompany `json:"involved_companies,omitempty"`
Keywords []*pb.Keyword `json:"keywords,omitempty"`
MultiplayerModes []*pb.MultiplayerMode `json:"multiplayer_modes,omitempty"`
Name string `json:"name,omitempty"`
ParentGame GameId `json:"parent_game,omitempty"`
Platforms []*pb.Platform `json:"platforms,omitempty"`
PlayerPerspectives []*pb.PlayerPerspective `json:"player_perspectives,omitempty"`
Rating float64 `json:"rating,omitempty"`
RatingCount int32 `json:"rating_count,omitempty"`
ReleaseDates []*pb.ReleaseDate `json:"release_dates,omitempty"`
Screenshots []*pb.Screenshot `json:"screenshots,omitempty"`
SimilarGames GameIds `json:"similar_games,omitempty"`
Slug string `json:"slug,omitempty"`
StandaloneExpansions GameIds `json:"standalone_expansions,omitempty"`
Storyline string `json:"storyline,omitempty"`
Summary string `json:"summary,omitempty"`
Tags []int32 `json:"tags,omitempty"`
Themes []*pb.Theme `json:"themes,omitempty"`
TotalRating float64 `json:"total_rating,omitempty"`
TotalRatingCount int32 `json:"total_rating_count,omitempty"`
UpdatedAt *timestamppb.Timestamp `json:"updated_at,omitempty"`
Url string `json:"url,omitempty"`
VersionParent GameId `json:"version_parent,omitempty"`
VersionTitle string `json:"version_title,omitempty"`
Videos []*pb.GameVideo `json:"videos,omitempty"`
Websites []*pb.Website `json:"websites,omitempty"`
Remakes GameIds `json:"remakes,omitempty"`
Remasters GameIds `json:"remasters,omitempty"`
ExpandedGames GameIds `json:"expanded_games,omitempty"`
Ports GameIds `json:"ports,omitempty"`
Forks GameIds `json:"forks,omitempty"`
LanguageSupports []*pb.LanguageSupport `json:"language_supports,omitempty"`
GameLocalizations []*pb.GameLocalization `json:"game_localizations,omitempty"`
Collections []*pb.Collection `json:"collections,omitempty"`
GameStatus *pb.GameStatus `json:"game_status,omitempty"`
GameType *pb.GameType `json:"game_type,omitempty"`
AllNames []string `json:"all_names,omitempty"`
}