import { Identifiable } from "../utility"

export interface Game extends Identifiable {
    age_ratings: number[],
    aggregrated_rating: number,
    aggregrated_rating_count: number,
    alternative_names: number[],
    artworks: number[],
    bundles: number[],
    category: GameCategory,
    collection: number,
    cover: number,
    created_at: number,
    dlcs: number[],
    expanded_games: number[],
    expansions: number[],
    external_games: number[],
    first_release_date: number,
    follows: number,
    forks: number[],
    franchise: number,
    franchises: number[],
    game_engines: number[],
    game_modes: number[],
    genres: number[],
    hypes: number,
    involved_companies: number[],
    keywords: number[],
    multiplayer_modes: number[],
    name: string,
    parent_game: string,
    platforms: number[],
    player_perspectives: number[],
    ports: number[],
    rating: number,
    rating_count: number,
    release_dates: number[],
    remakes: number[],
    remasters: number[],
    screenshots: number[],
    similar_games: number[],
    slug: string,
    standalone_expansions: number[],
    status: GameStatus,
    storyline: string,
    summary: string,
    tags: number[],
    themes: number[],
    total_rating: number,
    total_rating_count: number,
    updated_at: number,
    url: string,
    version_parent: number,
    version_title: string,
    videos: number[],
    websites: number[]

}

export enum GameFields {
    "ID" = "id",
    "CHECKSUM" = "checksum",
    "AGE_RATINGS" = "age_ratings",
    "AGGREGRATED_RATING" = "aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "alternative_names",
    "ARTWORKS" = "artworks",
    "BUNDLES" = "bundles",
    "CATEGORY" = "category",
    "COLLECTION" = "collection",
    "COVER" = "cover",
    "CREATED_AT" = "created_at",
    "DLCS" = "dlcs",
    "EXPANDED_GAMES" = "expanded_games",
    "EXPANSIONS" = "expansions",
    "EXTERNAL_GAMES" = "external_games",
    "FIRST_RELEASE_DATE" = "first_release_date",
    "FOLLOWS" = "follows",
    "FORKS" = "forks",
    "FRANCHISE" = "franchise",
    "FRANCHISES" = "franchises",
    "GAME_ENGINES" = "game_engines",
    "GAME_MODES" = "game_modes",
    "GENRES" = "genres",
    "HYPES" = "hypes",
    "INVOLVED_COMPANIES" = "involved_companies",
    "KEYWORDS" = "keywords",
    "MULTIPLAYER_MODES" = "multiplayer_modes",
    "NAME" = "name",
    "PARENT_GAME" = "parent_game",
    "PLATFORMS" = "platforms",
    "PLAYER_PERSPECTIVES" = "player_perspectives",
    "PORTS" = "ports",
    "RATING" = "rating",
    "RATING_COUNT" = "rating_count",
    "RELEASE_DATES" = "release_dates",
    "REMAKES" = "remakes",
    "REMASTERS" = "remasters",
    "SCREENSHOTS" = "screenshots",
    "SIMILAR_GAMES" = "similar_games",
    "SLUG" = "slug",
    "STANDALONE_EXPANSIONS" = "standalone_expansions",
    "STATUS" = "status",
    "STORYLINE" = "storyline",
    "SUMMARY" = "summary",
    "TAGS" = "tags",
    "THEMES" = "themes", 
    "TOTAL_RATING" = "total_rating",
    "TOTAL_RATING_COUNT" = "total_rating_count",
    "UPDATED_AT" = "updated_at",
    "URL" = "url",
    "VERSION_PARENT" = "version_parent",
    "VERSION_TITLE" = "version_title",
    "VIDEOS" = "videos",
    "WEBSITES" = "websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - bundles field
 */
 export enum BundlesGameReferenceFields {
    "ID" = "bundles.id",
    "CHECKSUM" = "bundles.checksum",
    "AGE_RATINGS" = "bundles.age_ratings",
    "AGGREGRATED_RATING" = "bundles.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "bundles.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "bundles.alternative_names",
    "ARTWORKS" = "bundles.artworks",
    "BUNDLES" = "bundles.bundles",
    "CATEGORY" = "bundles.category",
    "COLLECTION" = "bundles.collection",
    "COVER" = "bundles.cover",
    "CREATED_AT" = "bundles.created_at",
    "DLCS" = "bundles.dlcs",
    "EXPANDED_GAMES" = "bundles.expanded_games",
    "EXPANSIONS" = "bundles.expansions",
    "EXTERNAL_GAMES" = "bundles.external_games",
    "FIRST_RELEASE_DATE" = "bundles.first_release_date",
    "FOLLOWS" = "bundles.follows",
    "FORKS" = "bundles.forks",
    "FRANCHISE" = "bundles.franchise",
    "FRANCHISES" = "bundles.franchises",
    "GAME_ENGINES" = "bundles.game_engines",
    "GAME_MODES" = "bundles.game_modes",
    "GENRES" = "bundles.genres",
    "HYPES" = "bundles.hypes",
    "INVOLVED_COMPANIES" = "bundles.involved_companies",
    "KEYWORDS" = "bundles.keywords",
    "MULTIPLAYER_MODES" = "bundles.multiplayer_modes",
    "NAME" = "bundles.name",
    "PARENT_GAME" = "bundles.parent_game",
    "PLATFORMS" = "bundles.platforms",
    "PLAYER_PERSPECTIVES" = "bundles.player_perspectives",
    "PORTS" = "bundles.ports",
    "RATING" = "bundles.rating",
    "RATING_COUNT" = "bundles.rating_count",
    "RELEASE_DATES" = "bundles.release_dates",
    "REMAKES" = "bundles.remakes",
    "REMASTERS" = "bundles.remasters",
    "SCREENSHOTS" = "bundles.screenshots",
    "SIMILAR_GAMES" = "bundles.similar_games",
    "SLUG" = "bundles.slug",
    "STANDALONE_EXPANSIONS" = "bundles.standalone_expansions",
    "STATUS" = "bundles.status",
    "STORYLINE" = "bundles.storyline",
    "SUMMARY" = "bundles.summary",
    "TAGS" = "bundles.tags",
    "THEMES" = "bundles.themes", 
    "TOTAL_RATING" = "bundles.total_rating",
    "TOTAL_RATING_COUNT" = "bundles.total_rating_count",
    "UPDATED_AT" = "bundles.updated_at",
    "URL" = "bundles.url",
    "VERSION_PARENT" = "bundles.version_parent",
    "VERSION_TITLE" = "bundles.version_title",
    "VIDEOS" = "bundles.videos",
    "WEBSITES" = "bundles.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - dlcs field
 */
 export enum DLCsGameReferenceFields {
    "ID" = "dlcs.id",
    "CHECKSUM" = "dlcs.checksum",
    "AGE_RATINGS" = "dlcs.age_ratings",
    "AGGREGRATED_RATING" = "dlcs.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "dlcs.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "dlcs.alternative_names",
    "ARTWORKS" = "dlcs.artworks",
    "BUNDLES" = "dlcs.bundles",
    "CATEGORY" = "dlcs.category",
    "COLLECTION" = "dlcs.collection",
    "COVER" = "dlcs.cover",
    "CREATED_AT" = "dlcs.created_at",
    "DLCS" = "dlcs.dlcs",
    "EXPANDED_GAMES" = "dlcs.expanded_games",
    "EXPANSIONS" = "dlcs.expansions",
    "EXTERNAL_GAMES" = "dlcs.external_games",
    "FIRST_RELEASE_DATE" = "dlcs.first_release_date",
    "FOLLOWS" = "dlcs.follows",
    "FORKS" = "dlcs.forks",
    "FRANCHISE" = "dlcs.franchise",
    "FRANCHISES" = "dlcs.franchises",
    "GAME_ENGINES" = "dlcs.game_engines",
    "GAME_MODES" = "dlcs.game_modes",
    "GENRES" = "dlcs.genres",
    "HYPES" = "dlcs.hypes",
    "INVOLVED_COMPANIES" = "dlcs.involved_companies",
    "KEYWORDS" = "dlcs.keywords",
    "MULTIPLAYER_MODES" = "dlcs.multiplayer_modes",
    "NAME" = "dlcs.name",
    "PARENT_GAME" = "dlcs.parent_game",
    "PLATFORMS" = "dlcs.platforms",
    "PLAYER_PERSPECTIVES" = "dlcs.player_perspectives",
    "PORTS" = "dlcs.ports",
    "RATING" = "dlcs.rating",
    "RATING_COUNT" = "dlcs.rating_count",
    "RELEASE_DATES" = "dlcs.release_dates",
    "REMAKES" = "dlcs.remakes",
    "REMASTERS" = "dlcs.remasters",
    "SCREENSHOTS" = "dlcs.screenshots",
    "SIMILAR_GAMES" = "dlcs.similar_games",
    "SLUG" = "dlcs.slug",
    "STANDALONE_EXPANSIONS" = "dlcs.standalone_expansions",
    "STATUS" = "dlcs.status",
    "STORYLINE" = "dlcs.storyline",
    "SUMMARY" = "dlcs.summary",
    "TAGS" = "dlcs.tags",
    "THEMES" = "dlcs.themes", 
    "TOTAL_RATING" = "dlcs.total_rating",
    "TOTAL_RATING_COUNT" = "dlcs.total_rating_count",
    "UPDATED_AT" = "dlcs.updated_at",
    "URL" = "dlcs.url",
    "VERSION_PARENT" = "dlcs.version_parent",
    "VERSION_TITLE" = "dlcs.version_title",
    "VIDEOS" = "dlcs.videos",
    "WEBSITES" = "dlcs.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - expanded_games field
 */
 export enum ExpandedGamesGameReferenceFields {
    "ID" = "expanded_games.id",
    "CHECKSUM" = "expanded_games.checksum",
    "AGE_RATINGS" = "expanded_games.age_ratings",
    "AGGREGRATED_RATING" = "expanded_games.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "expanded_games.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "expanded_games.alternative_names",
    "ARTWORKS" = "expanded_games.artworks",
    "BUNDLES" = "expanded_games.bundles",
    "CATEGORY" = "expanded_games.category",
    "COLLECTION" = "expanded_games.collection",
    "COVER" = "expanded_games.cover",
    "CREATED_AT" = "expanded_games.created_at",
    "DLCS" = "expanded_games.dlcs",
    "EXPANDED_GAMES" = "expanded_games.expanded_games",
    "EXPANSIONS" = "expanded_games.expansions",
    "EXTERNAL_GAMES" = "expanded_games.external_games",
    "FIRST_RELEASE_DATE" = "expanded_games.first_release_date",
    "FOLLOWS" = "expanded_games.follows",
    "FORKS" = "expanded_games.forks",
    "FRANCHISE" = "expanded_games.franchise",
    "FRANCHISES" = "expanded_games.franchises",
    "GAME_ENGINES" = "expanded_games.game_engines",
    "GAME_MODES" = "expanded_games.game_modes",
    "GENRES" = "expanded_games.genres",
    "HYPES" = "expanded_games.hypes",
    "INVOLVED_COMPANIES" = "expanded_games.involved_companies",
    "KEYWORDS" = "expanded_games.keywords",
    "MULTIPLAYER_MODES" = "expanded_games.multiplayer_modes",
    "NAME" = "expanded_games.name",
    "PARENT_GAME" = "expanded_games.parent_game",
    "PLATFORMS" = "expanded_games.platforms",
    "PLAYER_PERSPECTIVES" = "expanded_games.player_perspectives",
    "PORTS" = "expanded_games.ports",
    "RATING" = "expanded_games.rating",
    "RATING_COUNT" = "expanded_games.rating_count",
    "RELEASE_DATES" = "expanded_games.release_dates",
    "REMAKES" = "expanded_games.remakes",
    "REMASTERS" = "expanded_games.remasters",
    "SCREENSHOTS" = "expanded_games.screenshots",
    "SIMILAR_GAMES" = "expanded_games.similar_games",
    "SLUG" = "expanded_games.slug",
    "STANDALONE_EXPANSIONS" = "expanded_games.standalone_expansions",
    "STATUS" = "expanded_games.status",
    "STORYLINE" = "expanded_games.storyline",
    "SUMMARY" = "expanded_games.summary",
    "TAGS" = "expanded_games.tags",
    "THEMES" = "expanded_games.themes", 
    "TOTAL_RATING" = "expanded_games.total_rating",
    "TOTAL_RATING_COUNT" = "expanded_games.total_rating_count",
    "UPDATED_AT" = "expanded_games.updated_at",
    "URL" = "expanded_games.url",
    "VERSION_PARENT" = "expanded_games.version_parent",
    "VERSION_TITLE" = "expanded_games.version_title",
    "VIDEOS" = "expanded_games.videos",
    "WEBSITES" = "expanded_games.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - expansions field
 */
 export enum ExpansionsGameReferenceFields {
    "ID" = "expansions.id",
    "CHECKSUM" = "expansions.checksum",
    "AGE_RATINGS" = "expansions.age_ratings",
    "AGGREGRATED_RATING" = "expansions.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "expansions.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "expansions.alternative_names",
    "ARTWORKS" = "expansions.artworks",
    "BUNDLES" = "expansions.bundles",
    "CATEGORY" = "expansions.category",
    "COLLECTION" = "expansions.collection",
    "COVER" = "expansions.cover",
    "CREATED_AT" = "expansions.created_at",
    "DLCS" = "expansions.dlcs",
    "EXPANDED_GAMES" = "expansions.expanded_games",
    "EXPANSIONS" = "expansions.expansions",
    "EXTERNAL_GAMES" = "expansions.external_games",
    "FIRST_RELEASE_DATE" = "expansions.first_release_date",
    "FOLLOWS" = "expansions.follows",
    "FORKS" = "expansions.forks",
    "FRANCHISE" = "expansions.franchise",
    "FRANCHISES" = "expansions.franchises",
    "GAME_ENGINES" = "expansions.game_engines",
    "GAME_MODES" = "expansions.game_modes",
    "GENRES" = "expansions.genres",
    "HYPES" = "expansions.hypes",
    "INVOLVED_COMPANIES" = "expansions.involved_companies",
    "KEYWORDS" = "expansions.keywords",
    "MULTIPLAYER_MODES" = "expansions.multiplayer_modes",
    "NAME" = "expansions.name",
    "PARENT_GAME" = "expansions.parent_game",
    "PLATFORMS" = "expansions.platforms",
    "PLAYER_PERSPECTIVES" = "expansions.player_perspectives",
    "PORTS" = "expansions.ports",
    "RATING" = "expansions.rating",
    "RATING_COUNT" = "expansions.rating_count",
    "RELEASE_DATES" = "expansions.release_dates",
    "REMAKES" = "expansions.remakes",
    "REMASTERS" = "expansions.remasters",
    "SCREENSHOTS" = "expansions.screenshots",
    "SIMILAR_GAMES" = "expansions.similar_games",
    "SLUG" = "expansions.slug",
    "STANDALONE_EXPANSIONS" = "expansions.standalone_expansions",
    "STATUS" = "expansions.status",
    "STORYLINE" = "expansions.storyline",
    "SUMMARY" = "expansions.summary",
    "TAGS" = "expansions.tags",
    "THEMES" = "expansions.themes", 
    "TOTAL_RATING" = "expansions.total_rating",
    "TOTAL_RATING_COUNT" = "expansions.total_rating_count",
    "UPDATED_AT" = "expansions.updated_at",
    "URL" = "expansions.url",
    "VERSION_PARENT" = "expansions.version_parent",
    "VERSION_TITLE" = "expansions.version_title",
    "VIDEOS" = "expansions.videos",
    "WEBSITES" = "expansions.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - forks field
 */
 export enum ForksGameReferenceFields {
    "ID" = "forks.id",
    "CHECKSUM" = "forks.checksum",
    "AGE_RATINGS" = "forks.age_ratings",
    "AGGREGRATED_RATING" = "forks.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "forks.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "forks.alternative_names",
    "ARTWORKS" = "forks.artworks",
    "BUNDLES" = "forks.bundles",
    "CATEGORY" = "forks.category",
    "COLLECTION" = "forks.collection",
    "COVER" = "forks.cover",
    "CREATED_AT" = "forks.created_at",
    "DLCS" = "forks.dlcs",
    "EXPANDED_GAMES" = "forks.expanded_games",
    "EXPANSIONS" = "forks.expansions",
    "EXTERNAL_GAMES" = "forks.external_games",
    "FIRST_RELEASE_DATE" = "forks.first_release_date",
    "FOLLOWS" = "forks.follows",
    "FORKS" = "forks.forks",
    "FRANCHISE" = "forks.franchise",
    "FRANCHISES" = "forks.franchises",
    "GAME_ENGINES" = "forks.game_engines",
    "GAME_MODES" = "forks.game_modes",
    "GENRES" = "forks.genres",
    "HYPES" = "forks.hypes",
    "INVOLVED_COMPANIES" = "forks.involved_companies",
    "KEYWORDS" = "forks.keywords",
    "MULTIPLAYER_MODES" = "forks.multiplayer_modes",
    "NAME" = "forks.name",
    "PARENT_GAME" = "forks.parent_game",
    "PLATFORMS" = "forks.platforms",
    "PLAYER_PERSPECTIVES" = "forks.player_perspectives",
    "PORTS" = "forks.ports",
    "RATING" = "forks.rating",
    "RATING_COUNT" = "forks.rating_count",
    "RELEASE_DATES" = "forks.release_dates",
    "REMAKES" = "forks.remakes",
    "REMASTERS" = "forks.remasters",
    "SCREENSHOTS" = "forks.screenshots",
    "SIMILAR_GAMES" = "forks.similar_games",
    "SLUG" = "forks.slug",
    "STANDALONE_EXPANSIONS" = "forks.standalone_expansions",
    "STATUS" = "forks.status",
    "STORYLINE" = "forks.storyline",
    "SUMMARY" = "forks.summary",
    "TAGS" = "forks.tags",
    "THEMES" = "forks.themes", 
    "TOTAL_RATING" = "forks.total_rating",
    "TOTAL_RATING_COUNT" = "forks.total_rating_count",
    "UPDATED_AT" = "forks.updated_at",
    "URL" = "forks.url",
    "VERSION_PARENT" = "forks.version_parent",
    "VERSION_TITLE" = "forks.version_title",
    "VIDEOS" = "forks.videos",
    "WEBSITES" = "forks.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - ports field
 */
 export enum PortsGameReferenceFields {
    "ID" = "ports.id",
    "CHECKSUM" = "ports.checksum",
    "AGE_RATINGS" = "ports.age_ratings",
    "AGGREGRATED_RATING" = "ports.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "ports.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "ports.alternative_names",
    "ARTWORKS" = "ports.artworks",
    "BUNDLES" = "ports.bundles",
    "CATEGORY" = "ports.category",
    "COLLECTION" = "ports.collection",
    "COVER" = "ports.cover",
    "CREATED_AT" = "ports.created_at",
    "DLCS" = "ports.dlcs",
    "EXPANDED_GAMES" = "ports.expanded_games",
    "EXPANSIONS" = "ports.expansions",
    "EXTERNAL_GAMES" = "ports.external_games",
    "FIRST_RELEASE_DATE" = "ports.first_release_date",
    "FOLLOWS" = "ports.follows",
    "FORKS" = "ports.forks",
    "FRANCHISE" = "ports.franchise",
    "FRANCHISES" = "ports.franchises",
    "GAME_ENGINES" = "ports.game_engines",
    "GAME_MODES" = "ports.game_modes",
    "GENRES" = "ports.genres",
    "HYPES" = "ports.hypes",
    "INVOLVED_COMPANIES" = "ports.involved_companies",
    "KEYWORDS" = "ports.keywords",
    "MULTIPLAYER_MODES" = "ports.multiplayer_modes",
    "NAME" = "ports.name",
    "PARENT_GAME" = "ports.parent_game",
    "PLATFORMS" = "ports.platforms",
    "PLAYER_PERSPECTIVES" = "ports.player_perspectives",
    "PORTS" = "ports.ports",
    "RATING" = "ports.rating",
    "RATING_COUNT" = "ports.rating_count",
    "RELEASE_DATES" = "ports.release_dates",
    "REMAKES" = "ports.remakes",
    "REMASTERS" = "ports.remasters",
    "SCREENSHOTS" = "ports.screenshots",
    "SIMILAR_GAMES" = "ports.similar_games",
    "SLUG" = "ports.slug",
    "STANDALONE_EXPANSIONS" = "ports.standalone_expansions",
    "STATUS" = "ports.status",
    "STORYLINE" = "ports.storyline",
    "SUMMARY" = "ports.summary",
    "TAGS" = "ports.tags",
    "THEMES" = "ports.themes", 
    "TOTAL_RATING" = "ports.total_rating",
    "TOTAL_RATING_COUNT" = "ports.total_rating_count",
    "UPDATED_AT" = "ports.updated_at",
    "URL" = "ports.url",
    "VERSION_PARENT" = "ports.version_parent",
    "VERSION_TITLE" = "ports.version_title",
    "VIDEOS" = "ports.videos",
    "WEBSITES" = "ports.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - remakes field
 */
 export enum RemakesGameReferenceFields {
    "ID" = "remakes.id",
    "CHECKSUM" = "remakes.checksum",
    "AGE_RATINGS" = "remakes.age_ratings",
    "AGGREGRATED_RATING" = "remakes.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "remakes.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "remakes.alternative_names",
    "ARTWORKS" = "remakes.artworks",
    "BUNDLES" = "remakes.bundles",
    "CATEGORY" = "remakes.category",
    "COLLECTION" = "remakes.collection",
    "COVER" = "remakes.cover",
    "CREATED_AT" = "remakes.created_at",
    "DLCS" = "remakes.dlcs",
    "EXPANDED_GAMES" = "remakes.expanded_games",
    "EXPANSIONS" = "remakes.expansions",
    "EXTERNAL_GAMES" = "remakes.external_games",
    "FIRST_RELEASE_DATE" = "remakes.first_release_date",
    "FOLLOWS" = "remakes.follows",
    "FORKS" = "remakes.forks",
    "FRANCHISE" = "remakes.franchise",
    "FRANCHISES" = "remakes.franchises",
    "GAME_ENGINES" = "remakes.game_engines",
    "GAME_MODES" = "remakes.game_modes",
    "GENRES" = "remakes.genres",
    "HYPES" = "remakes.hypes",
    "INVOLVED_COMPANIES" = "remakes.involved_companies",
    "KEYWORDS" = "remakes.keywords",
    "MULTIPLAYER_MODES" = "remakes.multiplayer_modes",
    "NAME" = "remakes.name",
    "PARENT_GAME" = "remakes.parent_game",
    "PLATFORMS" = "remakes.platforms",
    "PLAYER_PERSPECTIVES" = "remakes.player_perspectives",
    "PORTS" = "remakes.ports",
    "RATING" = "remakes.rating",
    "RATING_COUNT" = "remakes.rating_count",
    "RELEASE_DATES" = "remakes.release_dates",
    "REMAKES" = "remakes.remakes",
    "REMASTERS" = "remakes.remasters",
    "SCREENSHOTS" = "remakes.screenshots",
    "SIMILAR_GAMES" = "remakes.similar_games",
    "SLUG" = "remakes.slug",
    "STANDALONE_EXPANSIONS" = "remakes.standalone_expansions",
    "STATUS" = "remakes.status",
    "STORYLINE" = "remakes.storyline",
    "SUMMARY" = "remakes.summary",
    "TAGS" = "remakes.tags",
    "THEMES" = "remakes.themes", 
    "TOTAL_RATING" = "remakes.total_rating",
    "TOTAL_RATING_COUNT" = "remakes.total_rating_count",
    "UPDATED_AT" = "remakes.updated_at",
    "URL" = "remakes.url",
    "VERSION_PARENT" = "remakes.version_parent",
    "VERSION_TITLE" = "remakes.version_title",
    "VIDEOS" = "remakes.videos",
    "WEBSITES" = "remakes.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - remasters field
 */
 export enum RemastersGameReferenceFields {
    "ID" = "remasters.id",
    "CHECKSUM" = "remasters.checksum",
    "AGE_RATINGS" = "remasters.age_ratings",
    "AGGREGRATED_RATING" = "remasters.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "remasters.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "remasters.alternative_names",
    "ARTWORKS" = "remasters.artworks",
    "BUNDLES" = "remasters.bundles",
    "CATEGORY" = "remasters.category",
    "COLLECTION" = "remasters.collection",
    "COVER" = "remasters.cover",
    "CREATED_AT" = "remasters.created_at",
    "DLCS" = "remasters.dlcs",
    "EXPANDED_GAMES" = "remasters.expanded_games",
    "EXPANSIONS" = "remasters.expansions",
    "EXTERNAL_GAMES" = "remasters.external_games",
    "FIRST_RELEASE_DATE" = "remasters.first_release_date",
    "FOLLOWS" = "remasters.follows",
    "FORKS" = "remasters.forks",
    "FRANCHISE" = "remasters.franchise",
    "FRANCHISES" = "remasters.franchises",
    "GAME_ENGINES" = "remasters.game_engines",
    "GAME_MODES" = "remasters.game_modes",
    "GENRES" = "remasters.genres",
    "HYPES" = "remasters.hypes",
    "INVOLVED_COMPANIES" = "remasters.involved_companies",
    "KEYWORDS" = "remasters.keywords",
    "MULTIPLAYER_MODES" = "remasters.multiplayer_modes",
    "NAME" = "remasters.name",
    "PARENT_GAME" = "remasters.parent_game",
    "PLATFORMS" = "remasters.platforms",
    "PLAYER_PERSPECTIVES" = "remasters.player_perspectives",
    "PORTS" = "remasters.ports",
    "RATING" = "remasters.rating",
    "RATING_COUNT" = "remasters.rating_count",
    "RELEASE_DATES" = "remasters.release_dates",
    "REMAKES" = "remasters.remakes",
    "REMASTERS" = "remasters.remasters",
    "SCREENSHOTS" = "remasters.screenshots",
    "SIMILAR_GAMES" = "remasters.similar_games",
    "SLUG" = "remasters.slug",
    "STANDALONE_EXPANSIONS" = "remasters.standalone_expansions",
    "STATUS" = "remasters.status",
    "STORYLINE" = "remasters.storyline",
    "SUMMARY" = "remasters.summary",
    "TAGS" = "remasters.tags",
    "THEMES" = "remasters.themes", 
    "TOTAL_RATING" = "remasters.total_rating",
    "TOTAL_RATING_COUNT" = "remasters.total_rating_count",
    "UPDATED_AT" = "remasters.updated_at",
    "URL" = "remasters.url",
    "VERSION_PARENT" = "remasters.version_parent",
    "VERSION_TITLE" = "remasters.version_title",
    "VIDEOS" = "remasters.videos",
    "WEBSITES" = "remasters.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - similar_games field
 */
 export enum SimilarGamesGameReferenceFields {
    "ID" = "similar_games.id",
    "CHECKSUM" = "similar_games.checksum",
    "AGE_RATINGS" = "similar_games.age_ratings",
    "AGGREGRATED_RATING" = "similar_games.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "similar_games.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "similar_games.alternative_names",
    "ARTWORKS" = "similar_games.artworks",
    "BUNDLES" = "similar_games.bundles",
    "CATEGORY" = "similar_games.category",
    "COLLECTION" = "similar_games.collection",
    "COVER" = "similar_games.cover",
    "CREATED_AT" = "similar_games.created_at",
    "DLCS" = "similar_games.dlcs",
    "EXPANDED_GAMES" = "similar_games.expanded_games",
    "EXPANSIONS" = "similar_games.expansions",
    "EXTERNAL_GAMES" = "similar_games.external_games",
    "FIRST_RELEASE_DATE" = "similar_games.first_release_date",
    "FOLLOWS" = "similar_games.follows",
    "FORKS" = "similar_games.forks",
    "FRANCHISE" = "similar_games.franchise",
    "FRANCHISES" = "similar_games.franchises",
    "GAME_ENGINES" = "similar_games.game_engines",
    "GAME_MODES" = "similar_games.game_modes",
    "GENRES" = "similar_games.genres",
    "HYPES" = "similar_games.hypes",
    "INVOLVED_COMPANIES" = "similar_games.involved_companies",
    "KEYWORDS" = "similar_games.keywords",
    "MULTIPLAYER_MODES" = "similar_games.multiplayer_modes",
    "NAME" = "similar_games.name",
    "PARENT_GAME" = "similar_games.parent_game",
    "PLATFORMS" = "similar_games.platforms",
    "PLAYER_PERSPECTIVES" = "similar_games.player_perspectives",
    "PORTS" = "similar_games.ports",
    "RATING" = "similar_games.rating",
    "RATING_COUNT" = "similar_games.rating_count",
    "RELEASE_DATES" = "similar_games.release_dates",
    "REMAKES" = "similar_games.remakes",
    "REMASTERS" = "similar_games.remasters",
    "SCREENSHOTS" = "similar_games.screenshots",
    "SIMILAR_GAMES" = "similar_games.similar_games",
    "SLUG" = "similar_games.slug",
    "STANDALONE_EXPANSIONS" = "similar_games.standalone_expansions",
    "STATUS" = "similar_games.status",
    "STORYLINE" = "similar_games.storyline",
    "SUMMARY" = "similar_games.summary",
    "TAGS" = "similar_games.tags",
    "THEMES" = "similar_games.themes", 
    "TOTAL_RATING" = "similar_games.total_rating",
    "TOTAL_RATING_COUNT" = "similar_games.total_rating_count",
    "UPDATED_AT" = "similar_games.updated_at",
    "URL" = "similar_games.url",
    "VERSION_PARENT" = "similar_games.version_parent",
    "VERSION_TITLE" = "similar_games.version_title",
    "VIDEOS" = "similar_games.videos",
    "WEBSITES" = "similar_games.websites"
}

/**
 * Self Referenced from [Game]({@link Game.ts}) - standalone_expansions field
 */
 export enum StandaloneExpansionsGameReferenceFields {
    "ID" = "standalone_expansions.id",
    "CHECKSUM" = "standalone_expansions.checksum",
    "AGE_RATINGS" = "standalone_expansions.age_ratings",
    "AGGREGRATED_RATING" = "standalone_expansions.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "standalone_expansions.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "standalone_expansions.alternative_names",
    "ARTWORKS" = "standalone_expansions.artworks",
    "BUNDLES" = "standalone_expansions.bundles",
    "CATEGORY" = "standalone_expansions.category",
    "COLLECTION" = "standalone_expansions.collection",
    "COVER" = "standalone_expansions.cover",
    "CREATED_AT" = "standalone_expansions.created_at",
    "DLCS" = "standalone_expansions.dlcs",
    "EXPANDED_GAMES" = "standalone_expansions.expanded_games",
    "EXPANSIONS" = "standalone_expansions.expansions",
    "EXTERNAL_GAMES" = "standalone_expansions.external_games",
    "FIRST_RELEASE_DATE" = "standalone_expansions.first_release_date",
    "FOLLOWS" = "standalone_expansions.follows",
    "FORKS" = "standalone_expansions.forks",
    "FRANCHISE" = "standalone_expansions.franchise",
    "FRANCHISES" = "standalone_expansions.franchises",
    "GAME_ENGINES" = "standalone_expansions.game_engines",
    "GAME_MODES" = "standalone_expansions.game_modes",
    "GENRES" = "standalone_expansions.genres",
    "HYPES" = "standalone_expansions.hypes",
    "INVOLVED_COMPANIES" = "standalone_expansions.involved_companies",
    "KEYWORDS" = "standalone_expansions.keywords",
    "MULTIPLAYER_MODES" = "standalone_expansions.multiplayer_modes",
    "NAME" = "standalone_expansions.name",
    "PARENT_GAME" = "standalone_expansions.parent_game",
    "PLATFORMS" = "standalone_expansions.platforms",
    "PLAYER_PERSPECTIVES" = "standalone_expansions.player_perspectives",
    "PORTS" = "standalone_expansions.ports",
    "RATING" = "standalone_expansions.rating",
    "RATING_COUNT" = "standalone_expansions.rating_count",
    "RELEASE_DATES" = "standalone_expansions.release_dates",
    "REMAKES" = "standalone_expansions.remakes",
    "REMASTERS" = "standalone_expansions.remasters",
    "SCREENSHOTS" = "standalone_expansions.screenshots",
    "SIMILAR_GAMES" = "standalone_expansions.similar_games",
    "SLUG" = "standalone_expansions.slug",
    "STANDALONE_EXPANSIONS" = "standalone_expansions.standalone_expansions",
    "STATUS" = "standalone_expansions.status",
    "STORYLINE" = "standalone_expansions.storyline",
    "SUMMARY" = "standalone_expansions.summary",
    "TAGS" = "standalone_expansions.tags",
    "THEMES" = "standalone_expansions.themes", 
    "TOTAL_RATING" = "standalone_expansions.total_rating",
    "TOTAL_RATING_COUNT" = "standalone_expansions.total_rating_count",
    "UPDATED_AT" = "standalone_expansions.updated_at",
    "URL" = "standalone_expansions.url",
    "VERSION_PARENT" = "standalone_expansions.version_parent",
    "VERSION_TITLE" = "standalone_expansions.version_title",
    "VIDEOS" = "standalone_expansions.videos",
    "WEBSITES" = "standalone_expansions.websites"
}

/**
 * Referenced from [Company]({@link Company.ts}) - published field
 */
 export enum PublishedGameReferenceFields {
    "ID" = "published.id",
    "CHECKSUM" = "published.checksum",
    "AGE_RATINGS" = "published.age_ratings",
    "AGGREGRATED_RATING" = "published.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "published.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "published.alternative_names",
    "ARTWORKS" = "published.artworks",
    "BUNDLES" = "published.bundles",
    "CATEGORY" = "published.category",
    "COLLECTION" = "published.collection",
    "COVER" = "published.cover",
    "CREATED_AT" = "published.created_at",
    "DLCS" = "published.dlcs",
    "EXPANDED_GAMES" = "published.expanded_games",
    "EXPANSIONS" = "published.expansions",
    "EXTERNAL_GAMES" = "published.external_games",
    "FIRST_RELEASE_DATE" = "published.first_release_date",
    "FOLLOWS" = "published.follows",
    "FORKS" = "published.forks",
    "FRANCHISE" = "published.franchise",
    "FRANCHISES" = "published.franchises",
    "GAME_ENGINES" = "published.game_engines",
    "GAME_MODES" = "published.game_modes",
    "GENRES" = "published.genres",
    "HYPES" = "published.hypes",
    "INVOLVED_COMPANIES" = "published.involved_companies",
    "KEYWORDS" = "published.keywords",
    "MULTIPLAYER_MODES" = "published.multiplayer_modes",
    "NAME" = "published.name",
    "PARENT_GAME" = "published.parent_game",
    "PLATFORMS" = "published.platforms",
    "PLAYER_PERSPECTIVES" = "published.player_perspectives",
    "PORTS" = "published.ports",
    "RATING" = "published.rating",
    "RATING_COUNT" = "published.rating_count",
    "RELEASE_DATES" = "published.release_dates",
    "REMAKES" = "published.remakes",
    "REMASTERS" = "published.remasters",
    "SCREENSHOTS" = "published.screenshots",
    "SIMILAR_GAMES" = "published.similar_games",
    "SLUG" = "published.slug",
    "STANDALONE_EXPANSIONS" = "published.standalone_expansions",
    "STATUS" = "published.status",
    "STORYLINE" = "published.storyline",
    "SUMMARY" = "published.summary",
    "TAGS" = "published.tags",
    "THEMES" = "published.themes", 
    "TOTAL_RATING" = "published.total_rating",
    "TOTAL_RATING_COUNT" = "published.total_rating_count",
    "UPDATED_AT" = "published.updated_at",
    "URL" = "published.url",
    "VERSION_PARENT" = "published.version_parent",
    "VERSION_TITLE" = "published.version_title",
    "VIDEOS" = "published.videos",
    "WEBSITES" = "published.websites"
}

/**
 * Referenced from [Company]({@link Company.ts}) - developed field
 */
 export enum DevelopedGameReferenceFields {
    "ID" = "developed.id",
    "CHECKSUM" = "developed.checksum",
    "AGE_RATINGS" = "developed.age_ratings",
    "AGGREGRATED_RATING" = "developed.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "developed.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "developed.alternative_names",
    "ARTWORKS" = "developed.artworks",
    "BUNDLES" = "developed.bundles",
    "CATEGORY" = "developed.category",
    "COLLECTION" = "developed.collection",
    "COVER" = "developed.cover",
    "CREATED_AT" = "developed.created_at",
    "DLCS" = "developed.dlcs",
    "EXPANDED_GAMES" = "developed.expanded_games",
    "EXPANSIONS" = "developed.expansions",
    "EXTERNAL_GAMES" = "developed.external_games",
    "FIRST_RELEASE_DATE" = "developed.first_release_date",
    "FOLLOWS" = "developed.follows",
    "FORKS" = "developed.forks",
    "FRANCHISE" = "developed.franchise",
    "FRANCHISES" = "developed.franchises",
    "GAME_ENGINES" = "developed.game_engines",
    "GAME_MODES" = "developed.game_modes",
    "GENRES" = "developed.genres",
    "HYPES" = "developed.hypes",
    "INVOLVED_COMPANIES" = "developed.involved_companies",
    "KEYWORDS" = "developed.keywords",
    "MULTIPLAYER_MODES" = "developed.multiplayer_modes",
    "NAME" = "developed.name",
    "PARENT_GAME" = "developed.parent_game",
    "PLATFORMS" = "developed.platforms",
    "PLAYER_PERSPECTIVES" = "developed.player_perspectives",
    "PORTS" = "developed.ports",
    "RATING" = "developed.rating",
    "RATING_COUNT" = "developed.rating_count",
    "RELEASE_DATES" = "developed.release_dates",
    "REMAKES" = "developed.remakes",
    "REMASTERS" = "developed.remasters",
    "SCREENSHOTS" = "developed.screenshots",
    "SIMILAR_GAMES" = "developed.similar_games",
    "SLUG" = "developed.slug",
    "STANDALONE_EXPANSIONS" = "developed.standalone_expansions",
    "STATUS" = "developed.status",
    "STORYLINE" = "developed.storyline",
    "SUMMARY" = "developed.summary",
    "TAGS" = "developed.tags",
    "THEMES" = "developed.themes", 
    "TOTAL_RATING" = "developed.total_rating",
    "TOTAL_RATING_COUNT" = "developed.total_rating_count",
    "UPDATED_AT" = "developed.updated_at",
    "URL" = "developed.url",
    "VERSION_PARENT" = "developed.version_parent",
    "VERSION_TITLE" = "developed.version_title",
    "VIDEOS" = "developed.videos",
    "WEBSITES" = "developed.websites"
}


/**
 * Referenced from [Game Version]({@link GameVersion.ts}) - game field
 * 
 * Referenced from [Search]({@link Search.ts}) - game field
 * 
 * Referenced from [External Game]({@link ExternalGame.ts}) - game field
 */
export enum GameReferenceFields {
    "ID" = "game.id",
    "CHECKSUM" = "game.checksum",
    "AGE_RATINGS" = "game.age_ratings",
    "AGGREGRATED_RATING" = "game.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "game.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "game.alternative_names",
    "ARTWORKS" = "game.artworks",
    "BUNDLES" = "game.bundles",
    "CATEGORY" = "game.category",
    "COLLECTION" = "game.collection",
    "COVER" = "game.cover",
    "CREATED_AT" = "game.created_at",
    "DLCS" = "game.dlcs",
    "EXPANDED_GAMES" = "game.expanded_games",
    "EXPANSIONS" = "game.expansions",
    "EXTERNAL_GAMES" = "game.external_games",
    "FIRST_RELEASE_DATE" = "game.first_release_date",
    "FOLLOWS" = "game.follows",
    "FORKS" = "game.forks",
    "FRANCHISE" = "game.franchise",
    "FRANCHISES" = "game.franchises",
    "GAME_ENGINES" = "game.game_engines",
    "GAME_MODES" = "game.game_modes",
    "GENRES" = "game.genres",
    "HYPES" = "game.hypes",
    "INVOLVED_COMPANIES" = "game.involved_companies",
    "KEYWORDS" = "game.keywords",
    "MULTIPLAYER_MODES" = "game.multiplayer_modes",
    "NAME" = "game.name",
    "PARENT_GAME" = "game.parent_game",
    "PLATFORMS" = "game.platforms",
    "PLAYER_PERSPECTIVES" = "game.player_perspectives",
    "PORTS" = "game.ports",
    "RATING" = "game.rating",
    "RATING_COUNT" = "game.rating_count",
    "RELEASE_DATES" = "game.release_dates",
    "REMAKES" = "game.remakes",
    "REMASTERS" = "game.remasters",
    "SCREENSHOTS" = "game.screenshots",
    "SIMILAR_GAMES" = "game.similar_games",
    "SLUG" = "game.slug",
    "STANDALONE_EXPANSIONS" = "game.standalone_expansions",
    "STATUS" = "game.status",
    "STORYLINE" = "game.storyline",
    "SUMMARY" = "game.summary",
    "TAGS" = "game.tags",
    "THEMES" = "game.themes", 
    "TOTAL_RATING" = "game.total_rating",
    "TOTAL_RATING_COUNT" = "game.total_rating_count",
    "UPDATED_AT" = "game.updated_at",
    "URL" = "game.url",
    "VERSION_PARENT" = "game.version_parent",
    "VERSION_TITLE" = "game.version_title",
    "VIDEOS" = "game.videos",
    "WEBSITES" = "game.websites"
}


/**
 * Referenced from [Collection]({@link Collection.ts}) - games field
 * 
 * Referenced from [Character]({@link Character.ts}) - games field
 * 
 * Referenced from [Franchise]({@link Franchise.ts}) - games field
 * 
 * Referenced from [Game Version]({@link GameVersion.ts}) - games field
 */
export enum GamesReferenceFields {
    "ID" = "games.id",
    "CHECKSUM" = "games.checksum",
    "AGE_RATINGS" = "games.age_ratings",
    "AGGREGRATED_RATING" = "games.aggregrated_rating",
    "AGGREGRATED_RATING_COUNT" = "games.aggregrated_rating_count",
    "ALTERNATIVE_NAMES" = "games.alternative_names",
    "ARTWORKS" = "games.artworks",
    "BUNDLES" = "games.bundles",
    "CATEGORY" = "games.category",
    "COLLECTION" = "games.collection",
    "COVER" = "games.cover",
    "CREATED_AT" = "games.created_at",
    "DLCS" = "games.dlcs",
    "EXPANDED_GAMES" = "games.expanded_games",
    "EXPANSIONS" = "games.expansions",
    "EXTERNAL_GAMES" = "games.external_games",
    "FIRST_RELEASE_DATE" = "games.first_release_date",
    "FOLLOWS" = "games.follows",
    "FORKS" = "games.forks",
    "FRANCHISE" = "games.franchise",
    "FRANCHISES" = "games.franchises",
    "GAME_ENGINES" = "games.game_engines",
    "GAME_MODES" = "games.game_modes",
    "GENRES" = "games.genres",
    "HYPES" = "games.hypes",
    "INVOLVED_COMPANIES" = "games.involved_companies",
    "KEYWORDS" = "games.keywords",
    "MULTIPLAYER_MODES" = "games.multiplayer_modes",
    "NAME" = "games.name",
    "PARENT_GAME" = "games.parent_game",
    "PLATFORMS" = "games.platforms",
    "PLAYER_PERSPECTIVES" = "games.player_perspectives",
    "PORTS" = "games.ports",
    "RATING" = "games.rating",
    "RATING_COUNT" = "games.rating_count",
    "RELEASE_DATES" = "games.release_dates",
    "REMAKES" = "games.remakes",
    "REMASTERS" = "games.remasters",
    "SCREENSHOTS" = "games.screenshots",
    "SIMILAR_GAMES" = "games.similar_games",
    "SLUG" = "games.slug",
    "STANDALONE_EXPANSIONS" = "games.standalone_expansions",
    "STATUS" = "games.status",
    "STORYLINE" = "games.storyline",
    "SUMMARY" = "games.summary",
    "TAGS" = "games.tags",
    "THEMES" = "games.themes", 
    "TOTAL_RATING" = "games.total_rating",
    "TOTAL_RATING_COUNT" = "games.total_rating_count",
    "UPDATED_AT" = "games.updated_at",
    "URL" = "games.url",
    "VERSION_PARENT" = "games.version_parent",
    "VERSION_TITLE" = "games.version_title",
    "VIDEOS" = "games.videos",
    "WEBSITES" = "games.websites"
}


export enum GameStatus { 
    "released" = 0, 
    "alpha" = 2, 
    "beta" = 3, 
    "early_access" = 4 , 
    "offline" = 5, 
    "cancelled" = 6,
    "rumored" = 7, 
    "delisted" = 8 
}

export enum GameCategory { 
    "main_game" = 0, 
    "dlc_addon" , 
    "expansion" , 
    "bundle" , 
    "standalone_expansion" , 
    "mod" , 
    "episode" , 
    "season" , 
    "remake" , 
    "remaster" , 
    "expanded_game" , 
    "port" , 
    "fork" 
}
