Skip to main content

Casino Game Data Models

This page describes the data models used in the Casino Game API for the Main application. These models represent the structure of data that clients receive when interacting with casino game-related operations.

Core Models​

CasinoGameModel​

Main entity for casino game data. Contains all the necessary information about a casino game.

type CasinoGameModel {
id: ID!
slug: String
name: String!
type: CasinoGameType!
hasFreeBets: Boolean!
backgroundUrl: String
thumbnailUrl: String
thumbnailBlurHash: String
thumbnailBlurHashWidth: Int
thumbnailBlurHashHeight: Int
bonusMoneyExcluded: Boolean
underMaintenance: Boolean
features: [String]
tagNames: [String]
thumbnailAlt: String
wideThumbnailUrl: String
squareThumbnailUrl: String
coverImageUrl: String
coverImageAlt: String
trailerUrl: String
trailerAlt: String
}

Fields Description:

  • id: Unique identifier for the game
  • slug: URL-friendly identifier for the game
  • name: Display name of the game
  • type: Type of casino game (SLOTS, JACKPOTS, etc.)
  • hasFreeBets: Whether the game supports free bets
  • backgroundUrl: URL of the game's background image
  • thumbnailUrl: URL of the game's thumbnail image
  • thumbnailBlurHash: Blur hash for the thumbnail image (used for the time that thumbnail is loading)
  • thumbnailBlurHashWidth: Width of the thumbnail blur hash
  • thumbnailBlurHashHeight: Height of the thumbnail blur hash
  • bonusMoneyExcluded: Whether the game is excluded from bonus money
  • underMaintenance: Whether the game is under maintenance
  • features: List of game features
  • tagNames: List of tags associated with the game
  • thumbnailAlt: Alt text for the thumbnail image
  • wideThumbnailUrl: URL of the wide thumbnail image
  • squareThumbnailUrl: URL of the square thumbnail image
  • coverImageUrl: URL of the game's cover image
  • coverImageAlt: Alt text for the cover image
  • trailerUrl: URL of the game's trailer video
  • trailerAlt: Alt text for the trailer video

Resolver Fields:

  • isFavoriteGame: Boolean - Indicates if the game is in the user's favorites
  • providerWithGames: CasinoGameProviderWithGamesModel - Retrieve the game's provider information with its top games
  • providerSlug: String - The slug of the game's provider (It is a mirror of the subProviderSlug in the game schema)
  • geoLocationRestricted: Boolean - It will return false for now
  • casinoPages: [CasinoPageModel] - List of casino pages where this game appears
  • gameLaunchUrl: String - URL to launch the game (requires authentication)
  • gameLaunchUrlDemo: String - URL to launch the game in demo mode (requires authentication)
  • seo: SEOSingleLanguageModel - SEO information for the game
  • description: String - Description of the game
  • activePlayers: ActivePlayerCountFormattedResponse - Count of active players within the last 24 hours for the game
  • slider: CasinoGameSliderModel - Slider configuration for the game

CasinoGameSliderModel​

Represents the slider configuration for a casino game.

type CasinoGameSliderModel {
description: String
altText: String
imageUrl: String!
imageAltText: String
trailerUrl: String!
videoAltText: String
seo: CasinoGameSliderSeoModel
link: String
backgroundGradient: String
backgroundFill: String
}

Fields Description:

  • description: Slider description text (deprecated - use casinoGame.description instead)
  • altText: Alt text for the slider
  • imageUrl: URL of the slider image
  • imageAltText: Alt text for the slider image
  • trailerUrl: URL of the slider trailer video
  • videoAltText: Alt text for the slider video
  • seo: SEO information for the slider (deprecated - use casinoGame.seo instead)
  • link: URL for link and button actions (empty/undefined for auth action)
  • backgroundGradient: Background gradient for the slider
  • backgroundFill: Background fill for the slider

CasinoGameSliderSeoModel​

Represents SEO information for a casino game slider.

type CasinoGameSliderSeoModel {
title: String!
description: String!
socialImage: String!
slug: String!
}

Fields Description:

  • title: SEO title for the slider
  • description: SEO description for the slider
  • socialImage: URL of the social media image
  • slug: SEO-friendly slug for the slider

CasinoGameSearchModel​

Specialized model for search results, containing all the same fields as CasinoGameModel plus additional search-specific fields.

type CasinoGameSearchModel {
id: ID!
slug: String
name: String!
type: CasinoGameType!
hasFreeBets: Boolean!
backgroundUrl: String
thumbnailUrl: String
thumbnailBlurHash: String
thumbnailBlurHashWidth: Int
thumbnailBlurHashHeight: Int
bonusMoneyExcluded: Boolean
underMaintenance: Boolean
features: [String]
tagNames: [String]
thumbnailAlt: String
wideThumbnailUrl: String
squareThumbnailUrl: String
coverImageUrl: String
coverImageAlt: String
trailerUrl: String
trailerAlt: String
score: Float
highlights: [SearchHighlight]
}

Fields Description:

All fields from CasinoGameModel are available, plus:

  • score: Search relevance score indicating how well the result matches the search query
  • highlights: Array of highlighted text matches showing where the search terms were found

When searching for games, the API provides highlighting information that shows:

  • The field where the match was found (path)
  • The matched text with its type (value and type)
  • Multiple highlights per result if matches are found in different fields

This helps users quickly identify why a particular game matched their search query.

Resolver Fields:

The same resolver fields as CasinoGameModel are available here for CasinoGameSearchModel:

  • isFavoriteGame: Boolean - Indicates if the game is in the user's favorites
  • providerWithGames: CasinoGameProviderWithGamesModel - Retrieve the game's provider information with its top games
  • providerSlug: String - The slug of the game's provider (It is a mirror of the subProviderSlug in the game schema)
  • geoLocationRestricted: Boolean - It will return false for now
  • casinoPages: [CasinoPageModel] - List of casino pages where this game appears
  • gameLaunchUrl: String - URL to launch the game (requires authentication)
  • gameLaunchUrlDemo: String - URL to launch the game in demo mode (requires authentication)
  • seo: SEOSingleLanguageModel - SEO information for the game
  • description: String - Description of the game
  • activePlayers: ActivePlayerCountFormattedResponse - Count of active players within the last 24 hours for the game
  • slider: CasinoGameSliderModel - Slider configuration for the game

SearchHighlight​

Represents highlighted text in search results:

type SearchHighlight {
path: String!
texts: [HighlightText!]
}

HighlightText​

Represents a highlighted text fragment:

type HighlightText {
value: String!
type: String!
}

ActivePlayerCountFormattedResponse​

Represents the count of active players for a casino game:

type ActivePlayerCountFormattedResponse {
count: Int!
formattedCount: String!
}

Fields Description:

  • count: The count of active players
  • formattedCount: The formatted count of active players (e.g., "1.2K", "500")

CasinoGameSearchResponse​

The paginated response type for casino game search operations:

type CasinoGameSearchResponse {
data: [CasinoGameSearchModel!]!
count: Int!
offset: Int!
limit: Int!
}

This response type extends the base pagination type and includes:

  • data: Array of search results with highlights and scores
  • count: Total number of results
  • offset: Current pagination offset
  • limit: Current page size limit

CasinoGameProviderModel​

Represents a casino game provider with basic information.

type CasinoGameProviderModel {
id: ID!
slug: String!
name: String!
logoUrl: String
}

Resolver Fields:

  • description: String - Description of the casino game provider
  • seo: SEOSingleLanguageModel - SEO information for the provider

CasinoGameProviderWithGamesModel​

Extends CasinoGameProviderModel with additional game information:

type CasinoGameProviderWithGamesModel extends CasinoGameProviderModel {
games: [CasinoGameModel]
}

Enum Types​

CasinoGameType​

Types of casino games:

enum CasinoGameType {
SLOTS
JACKPOTS
VIDEO_POKER
ROULETTE
TABLE_CARD
BLACKJACK
BACCARAT
MINIGAMES
OTHERS
DEFAULT
OTHERS_LIVE
LIVE_BACCARAT
LIVE_BLACKJACK
GAME_SHOW
LIVE_ROULETTE
CRASH
BINGO
LIVE_DICE
DICE
DRAGON_TIGER
ARCADE
LOTTERY
VIRTUAL
LIVE_POKER
OTHERS_TABLE
CRYPTO_FUTURES
SCRATCH_CARDS
SCRATCH
LIVE_DRAGON_TIGER
}

CasinoGameOrderBy​

Ordering options for casino games:

enum CasinoGameOrderBy {
FEATURED_BY_PROVIDER
FEATURED_BY_CASINO_PAGE
NAME
TYPE
TRENDING
RECENTLY_ADDED
INDEX_IN_PROVIDER
}

Values Description:

  • FEATURED_BY_PROVIDER: Order by index of casino game providers
    • Each casino game is indexed in one casino game provider
    • When the games are retrived by casino game provider slug list , this orderBy should be used
  • FEATURED_BY_CASINO_PAGE: Order by index of casino page within
    • Eache game can be index in several casino page
    • When the games are retrived by casino page slug, this orderBy should be used
  • NAME: Order alphabetically by game name
  • TYPE: Order by game type
  • TRENDING: Order by trending games (based on the index of the game in the trending casino page)
  • RECENTLY_ADDED: Order by recently added games
  • INDEX_IN_PROVIDER: Exactly same as the FEATURED_BY_PROVIDER

Platform​

Supported platforms for casino games:

enum Platform {
DESKTOP
MOBILE
}

PageLayout​

Layout options for casino pages:

enum PageLayout {
CLASSIC_CAROUSEL
RECTANGULAR_FANCY_CAROUSEL
TWO_BIG_CARDS
BIG_CARD
MID_BIG_CARDS
SQUARES
SQUARES_FANCY_CAROUSEL
}

Input Types​

CasinoGameSearchArgs​

Input for searching casino games:

input CasinoGameSearchArgs {
query: String!
limit: Int = 20
offset: Int = 0
}

CasinoGamesFilterInput​

Input for retrieving casino game provider information:

input CasinoGamesFilterInput {
query: String
casinoPageSlug: String
providerSlugs: [String]
}

CasinoGamesInput​

Input for retrieving casino games with filtering, ordering, and pagination:

input CasinoGamesInput {
orderBy: CasinoGameOrderBy = TRENDING
filter: CasinoGamesFilterInput
limit: Int = 20
offset: Int = 0
}