Operator guideEN

Casino / Sub-categories / Add Games

Relation workflow for assigning, removing, bulk-loading, and resetting games for one casino sub-category.

How to use this guide

Start with the main guide

Follow the explanation and examples first. Extra definitions and formulas are available below when you need them.

What this page does

Use this page to manage which games belong to one casino sub-category. The page has two lists:

  • Games you add will appear here: games currently assigned to the selected sub-category.
  • Available Games: active casino games that can be assigned to the selected sub-category.

The route and code call the selected id categoryId, but in this workflow it is the selected sub-category id.

What operators can do

  • Add one available game into the sub-category.
  • Remove one current game from the sub-category.
  • Search both lists by name and game code.
  • Filter available games by provider.
  • Show removed games on the available side.
  • For bonus-excluded sub-categories, show only games excluded due to the Buy-In feature.
  • Bulk upload games by pasting game names into the Upload Games modal.
  • Reset changed game mappings back to their previous valid/invalid state.

How Add and Remove work

Adding or removing a game changes the sub-category/game mapping row. The update flow keeps mapping history by updating the join row instead of simply deleting it.

  • Adding a game sets the mapping as valid.
  • Removing a game sets the mapping as invalid.
  • Both actions can toggle the change marker used by the page to show changed rows.
  • The current list highlights changed rows in green.
  • The available list can highlight removed changed rows in red when they are returned by the available-games query.

How Upload Games works

The Upload Games modal is a two-step flow.

First, the operator pastes game names and clicks Upload Order. The precheck compares pasted names with existing casino games. If some names are not found, the modal lists them and asks the operator whether to continue anyway.

Second, the operator clicks Continue Upload New Game or Continue Upload anyway. The merge flow assigns the matching games to the selected sub-category and returns how many games were merged.

How Reset works

Reset only affects mappings marked as changed. It flips each changed mapping back by toggling both the valid flag and the change marker. If there are no changed mappings, reset returns a no-op result.

Known caveats

  • This page manages game membership for a sub-category. It does not edit the sub-category record itself.
  • The page title says category, but the selected id is the sub-category id.
  • Search changes reset the matching list to page 1.
  • Add and remove update local list state immediately, then send the save request and refresh list data.
  • Reset is confirmed in a modal, but the page-level reset handler also refreshes list data immediately after starting the reset request.
  • The Buy-In excluded filter is shown only when the selected sub-category English name contains bonus-excluded.
  • Buy-In exclusion logic also depends on the casino setting that controls exclusion of Buy-In games from bonus play.
More details

Definitions and formulas

Open only the section you need. The relevant section opens automatically when you request help for a specific item on screen.

Calculations11 topicsOpen details

Selected sub-category context

Explains how the page chooses the sub-category whose game mappings are being managed.

Formula
The route parameter named categoryId is sent to relation endpoints as masterGameSubCategoryId or casinoCategoryId. The page also reads the sub-category list and finds the row whose masterGameSubCategoryId equals that route value.
Caveats
The page heading says category, but this route manages a casino sub-category.

Current games query

Explains which rows appear on the left-side current-games list.

Formula
Current games are read by the current sub-category games query with the selected sub-category id. The query includes page, limit, name search, game code, changed-row ordering, newest changed rows first, and the Buy-In exclusion filter only when the Buy-In switch is enabled.
Caveats
Current-list rows are valid mappings where master_casino_game_to_sub_categories.is_valid is true for the selected sub-category., Search or Buy-In filter changes reset the current page to 1.

Available games query

Explains which rows appear on the right-side available-games list.

Formula
Available games are read by the available-games query with active games only, the selected sub-category id, and relation-exclusion mode enabled. The query excludes currently valid mappings for that sub-category. Optional filters include name search, game code, provider, and removed-game visibility.
Caveats
Show Removed Games can require removed changed mappings to be included so they can be re-added., Available-list filter changes reset the available page to 1.

Provider display label

Explains why provider text includes provider and aggregator names.

Formula
The page reads providers with active aggregators. Each game row is mapped to a display label using the provider name and the provider's aggregator name.
Caveats
If provider lookup is missing, the provider label can be absent while the game id/name still render.

Buy-In excluded flag

Explains when the Buy-In excluded filter and badge can appear.

Formula
The switch is visible only when the selected sub-category English name contains bonus-excluded. When enabled, the source checks the casino setting for excluding Buy-In games from bonus play. If the setting is false, the filter produces no matches. If true, the source marks games with Buy-In behavior as excluded unless their game id is present in active freespins or no-deposit-freespins bonus game ids.
Caveats
This is a filtering/display rule for the Add Games page; it does not itself change mappings.

Changed row highlighting

Explains green and red row styling.

Formula
Current-list rows are highlighted green when the current mapping row has isChange=true. Available-list rows are highlighted red when the returned removed mapping relation has isChange=true.
Caveats
Highlight colors are local page hints based on returned relation state, not separate statuses stored on the game row itself.

Add game mapping toggle

Explains what happens when an available game is added.

Formula
Add sends masterGameSubCategoryId, games=[selectedGameId], and an isChange hint from the available row's existing relation state. The save flow upserts the join row as is_valid=true and stores is_change as the inverse of the submitted hint.
Caveats
Local lists update before source refresh, so refresh after errors to reconcile display with stored data., A previously removed changed row can be reactivated and have its change marker toggled back.

Remove game mapping toggle

Explains what happens when a current game is removed.

Formula
Remove sends a mapping-removal update with remove=true, game id, sub-category id, name, active=true, and the inverse of the current mapping's change-marker value. The save flow upserts the join row as invalid and stores the submitted change-marker value.
Caveats
Remove preserves mapping history by invalidating the join row rather than deleting it., The route is shared with game editing, but this page sends mapping/removal fields only.

Pagination after add/remove

Explains why page numbers can move after a row action.

Formula
After add/remove, if a list is beyond page 1, has fewer than two local rows left, and the source count is positive, the page decrements that list page by one.
Caveats
This is a page pagination adjustment and does not affect stored mappings.

Bulk upload precheck and merge

Explains the Upload Games modal's two-step behavior.

Formula
Precheck splits pasted game names by newline and finds exact name matches in the casino games table. It returns names not found without merging. Continue upload runs with preCheck=false, upserts matching games as valid mappings for the selected sub-category, toggles each mapping's isChange based on prior relation state, and returns the merged amount.
Caveats
Matching is by exact game name., Precheck does not write mapping changes., The modal says Upload Order, but no explicit order values are saved by this flow.

Reset changed mappings

Explains what Reset reverts.

Formula
Reset selects join rows for the selected sub-category where isChange=true. For each row, it writes isValid as the inverse of the current isValid value and isChange as the inverse of the current isChange value. Rows with isChange=false are not touched.
Caveats
If no changed rows exist, reset returns Nothing to reset., Reset is not a full rebuild from the casino games catalog., The page handler refreshes list data immediately after starting reset, so a later refresh may be needed if the list does not reflect the final reset result.
Fields33 topicsOpen details

Route sub-category id

Selected sub-category id from the Add Games route. The route parameter is named categoryId, but the saved relation uses it as masterGameSubCategoryId.

Data Type
integer
Editable
false

Add games to category: <name>

Page heading showing the selected sub-category English name.

Data Type
ui-heading
Editable
false
Caveats
The label says category even though the selected id is a sub-category id.

Reset

Opens the reset confirmation modal for changed game mappings.

Data Type
action-button
Editable
false

Upload Games

Opens the modal for bulk assigning games by pasted game names.

Data Type
action-button
Editable
false

Games you add will appear here

Left-side list of games currently valid for the selected sub-category.

Data Type
relation-grid
Editable
false

Search

Filters current games by name.

Data Type
text-filter
Editable
true
Payload Mapping
search

Game Code

Filters current games by exact identifier/game code.

Data Type
text-filter
Editable
true
Payload Mapping
identifier

Show Buy-In Excluded Only

Shows only games flagged by the source as excluded due to Buy-In behavior.

Data Type
boolean-filter
Editable
true
Payload Mapping
excludedByBuyIn
Visibility
Shown When: Selected sub-category English name contains `bonus-excluded`.
Caveats
Filtering still depends on the casino setting for Buy-In bonus-play exclusion.

ID

Master casino game id for a current sub-category game.

Data Type
integer
Editable
false

Name

Casino game name in the current sub-category list.

Data Type
string
Editable
false

Provider

Provider and aggregator label for the current game.

Data Type
relation-label
Editable
false

Excluded due to Buy-In feature

Current-list indicator shown only for bonus-excluded sub-categories when the source marks the game as excluded due to Buy-In behavior.

Data Type
badge
Editable
false

Actions

Current-list remove control for marking a mapping invalid.

Data Type
row-action
Editable
false

Current games page

Current-games page number. Search and Buy-In filter changes reset it to page 1.

Data Type
pagination-state
Editable
true

Current games rows per page

Current-games page size, with visible options 15, 20, and 100.

Data Type
pagination-limit
Editable
true

Available Games

Right-side list of active casino games available to assign to the selected sub-category.

Data Type
relation-grid
Editable
false

Search

Filters available games by name.

Data Type
text-filter
Editable
true
Payload Mapping
search

Game Code

Filters available games by exact identifier/game code.

Data Type
text-filter
Editable
true
Payload Mapping
simpleIdentifier

Provider

Filters available games by casino provider.

Data Type
relation-filter
Editable
true
Payload Mapping
providerId

Show Removed Games

Includes removed changed mappings in the available-games query so operators can re-add them.

Data Type
boolean-filter
Editable
true
Payload Mapping
showRemovedGames

ID

Master casino game id for an available game.

Data Type
integer
Editable
false

Name

Casino game name in the available game list.

Data Type
string
Editable
false

Provider

Provider and aggregator label for the available game.

Data Type
relation-label
Editable
false

Actions

Available-list add control for assigning a game to the selected sub-category.

Data Type
row-action
Editable
false

Available games page

Available-games page number. Available-list filter changes reset it to page 1.

Data Type
pagination-state
Editable
true

Available games rows per page

Available-games page size, with visible options 15, 20, and 100.

Data Type
pagination-limit
Editable
true

Changed row highlight

Green current-list rows and red available-list rows indicate mappings whose saved change marker is true.

Data Type
ui-state
Editable
false

Games Upload

Modal for bulk assigning games from pasted game names.

Data Type
modal
Editable
false

Game names

Newline-separated game names used by the bulk upload precheck and merge steps.

Data Type
multiline-text
Editable
true
Payload Mapping
gameList

Upload Order

Starts the bulk upload precheck for the pasted game list.

Data Type
action-button
Editable
false

Not matching games

Names that the upload precheck could not match to casino games.

Data Type
validation-result
Editable
false

Continue Upload New Game / Continue Upload anyway

Runs the bulk assignment merge after precheck.

Data Type
action-button
Editable
false

Reset

Confirmation modal for reverting changed mappings for the selected sub-category.

Data Type
modal
Editable
false
More help

Related pages

Casino / Sub-categories

Operator guide for sub-category catalog maintenance, including list, create or edit, reorder, and add-games relation flow.

Casino / Sub-categories / Form

Create and edit form for one sub-category, including translations, description, icon handling, parent category, and active state.

Casino / Sub-categories / List

Searchable sub-category grid with summary cards, parent-category and status filters, game counts, translation coverage, and row-level maintenance actions.

Casino / Sub-categories / Reorder

Parent-category-specific drag-and-drop ordering screen for casino sub-categories.

Bonuses / Player Bonuses

Related operator ledger for issued bonus instances, including filters, CSV export, and per-user bonus detail.

Casino / Aggregators

Operator overview for the casino-side aggregator registry, pagination, and activation workflow.