pcgamedb/model/game.go
2024-12-23 00:28:55 +08:00

57 lines
3.0 KiB
Go

package model
import (
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type GameInfo struct {
ID primitive.ObjectID `json:"id" bson:"_id"`
Name string `json:"name" bson:"name"`
Description string `json:"description" bson:"description"`
Aliases []string `json:"aliases" bson:"aliases"`
Developers []string `json:"developers" bson:"developers"`
Publishers []string `json:"publishers" bson:"publishers"`
IGDBID int `json:"igdb_id" bson:"igdb_id"`
SteamID int `json:"steam_id" bson:"steam_id"`
Cover string `json:"cover" bson:"cover"`
Languages []string `json:"languages" bson:"languages"`
Screenshots []string `json:"screenshots" bson:"screenshots"`
GameIDs []primitive.ObjectID `json:"game_ids" bson:"games"`
Games []*GameItem `json:"games" bson:"-"`
CreatedAt time.Time `json:"created_at" bson:"created_at"`
UpdatedAt time.Time `json:"updated_at" bson:"updated_at"`
FirstReleaseDate time.Time `json:"first_release_date" bson:"first_release_date"`
GameEngines []string `json:"game_engines" bson:"game_engines"`
GameModes []string `json:"game_modes" bson:"game_modes"`
Genres []string `json:"genres" bson:"genres"`
Themes []string `json:"themes" bson:"themes"`
Platforms []string `json:"platforms" bson:"platforms"`
PlayerPerspectives []string `json:"player_perspectives" bson:"player_perspectives"`
SimilarGames []int `json:"similar_games" bson:"similar_games"`
Videos []string `json:"videos" bson:"videos"`
Websites []string `json:"websites" bson:"websites"`
Collections []GameCollection `json:"collections" bson:"collections"`
}
type GameCollection struct {
Games []int `json:"games"`
Name string `json:"name"`
}
type GameItem struct {
ID primitive.ObjectID `json:"id" bson:"_id"`
Name string `json:"speculative_name" bson:"name"`
RawName string `json:"raw_name,omitempty" bson:"raw_name"`
Download string `json:"download_link,omitempty" bson:"download"`
Size string `json:"size,omitempty" bson:"size"`
Url string `json:"url" bson:"url"`
Password string `json:"password,omitempty" bson:"password"`
Author string `json:"author,omitempty" bson:"author"`
Platform string `json:"platform,omitempty" bson:"platform"`
UpdateFlag string `json:"-" bson:"update_flag,omitempty"`
CreatedAt time.Time `json:"created_at" bson:"created_at"`
UpdatedAt time.Time `json:"updated_at" bson:"updated_at"`
}