export interface IAuth {
    access_token: string
    expires_in: number
    token_type: 'bearer'
}

export interface IGame {
    id: number
    age_ratings: number[]
    aggregrated_rating: number
    aggregrated_rating_count: number
    alternative_names: number[]
    artworks: number[]
    bundles: number[]
    category: number
    collection: number
    cover: ICover
    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_localizations: number[]
    game_modes: number[]
    genres: IGenre[]
    hypes: number
    involved_companies: IInvolvedCompany[]
    keywords: number[]
    language_supports: number[]
    multiplayer_modes: number[]
    name: string
    parent_game: string
    platforms: IPlatform[]
    player_perspectives: number[]
    ports: number[]
    rating: number
    rating_count: number
    release_dates: number[]
    remakes: number[]
    remasters: number[]
    screenshots: IScreenshots[]
    similar_games: number[]
    slug: string
    standalone_expansions: number[]
    status: number
    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 interface ICover {
    id: number
    alpha_channel: boolean
    animated: boolean
    game: number
    game_localization: number
    height: number
    image_id: string
    url: string
    width: number
}

export interface IScreenshots {
    id: number
    alpha_channel: boolean
    animated: boolean
    game: number
    height: number
    image_id: string
    url: string
    width: number
}

export interface IGenre {
    id: number
    created_at: number
    name: string
    slug: string
    updated_at: number
    url: string
}

interface IInvolvedCompany {
    id: number
    company: {
        id: number
        name: string
    }
    created_at: number
    developer: boolean
    game: number
    porting: boolean
    publisher: boolean
    supporting: boolean
    updated_at: number
    checksum: string
}

export interface IPlatform {
    id: number
    abbreviation: string
    alternative_name: string
    category: number
    created_at: number
    generation: number
    name: string
    platform_logo: number
    platform_family: number
    slug: string
    updated_at: number
    url: string
    versions: number[]
    websites: number[]
}

export interface IPlatformCategrory {
    category: 'pc' | 'playstation' | 'xbox' | 'nintendo'
    platforms: EGamePlatform[]
}