Operator guideENplayersbonusesrelation

Players / Bonuses

Cross-player issued-bonus inventory with server-side filters, preview popover, CSV export, and navigation into one issued-bonus detail page.

Reader view

Clean portal guidance

This page keeps the operator explanation, field and action descriptions, and screenshots visible without exposing repo paths, raw sidecars, or editorial-only implementation details.

Narrative content

Page body

What this page shows

Players / Bonuses is the cross-player inventory for issued bonus rows (UserBonus). It lets operators search and review issued bonuses without first opening one player workspace.

The page combines:

  • server-backed filters for email, user ID, status, bonus type, and date window
  • a paginated result table
  • a FE preview popover for one selected row
  • navigation to the full issued-bonus detail page
  • CSV export of the filtered issued-bonus dataset

When to use it

Use this page when you need to:

  • find bonuses issued to a specific player
  • review issued-bonus status across players
  • inspect the amount, wagering, conversion, correction, and expiry state for a row
  • preview a bonus quickly before opening the full detail page
  • export the current issued-bonus slice

How to read it

The page has two layers:

  1. Main filter row for Email, User ID, Status, Bonus Type, and the advanced Date From / Date Till window.
  2. Result table with the issued-bonus identity, player link, money columns, lifecycle chips, preview action, and Details navigation.

The row-level preview popover is useful for quick inspection, but the canonical deep-dive surface remains /players/bonuses/[userBonusId].

Main actions

  • Preview opens the FE popover preview without leaving the grid.
  • Details opens the read-only issued-bonus detail page.
  • Export CSV downloads the filtered issued-bonus rows.
  • Filters expands or collapses the date-range filter block.

Known caveats

  • This cross-player page does not expose the manual cancel action. Cancellation belongs to player-context bonus flows, not to this surface.
  • There is no free-text local search here. Filtering is done through server-backed email, user ID, status, bonus type, and date-window parameters.
  • Created At is explicitly rendered in UTC on the table surface.
  • The preview popover is FE-only and should not be treated as the full source of truth when exact lifecycle metadata is required.

Verification status

  • status: verified_backend
  • last verified: 2026-04-18
  • note: FE page, list/export hooks, backend get-users-bonuses service, and detail navigation path are traced.
Grid columns

Columns

field

User Bonus ID

Internal identifier for one issued bonus instance.

Data Type
integer
field

Bonus ID

Reusable bonus definition referenced by the issued bonus row.

Data Type
integer
field

User Email

Player email attached to the issued bonus row. Clicking it opens the player workspace.

Data Type
string
field

Currency

Currency code used for the row amounts.

Data Type
string
field

Bonus Name

Human-readable name of the referenced reusable bonus definition.

Data Type
string
field

Bonus Amount

Granted amount of the issued bonus in the row currency.

Data Type
amount
field

Wager Left

Remaining amount the player still has to wager before clearing the bonus.

Data Type
amount
field

Winning Amount

Current winnings tracked against the issued bonus.

Data Type
amount
field

Amount Converted

Converted amount already moved out of the bonus flow.

Data Type
amount
field

Correction Amount

Manual correction amount attached to the issued bonus row.

Data Type
amount
field

Bonus Status

Current lifecycle state of the issued bonus.

Data Type
enum
field

Bonus Type

Category of the issued bonus.

Data Type
enum
field

Expire At

Expiration timestamp for the issued bonus instance.

Data Type
datetime
field

Created At

Creation timestamp rendered in UTC.

Data Type
datetime
field

Actions

Exposes preview and detail navigation for one issued-bonus row.

Data Type
action-group
Filter dictionary

Filters

field

Search by user email

Restricts the grid to one player's email.

Type
text
field

Search by user ID

Restricts the grid to one player ID.

Type
text
field

Status

Filters rows by issued-bonus lifecycle state such as active, cancelled, expired, or win.

Type
select
field

Bonus Type

Filters rows by issued-bonus category.

Type
select
field

Date From

Lower date bound for issued bonus records.

Type
date
field

Date Till

Upper date bound for issued bonus records.

Type
date
Operational notes

Notes

item

This cross-player page uses `get-users-bonuses` for the grid and `get-user-bonus` only after navigating into the detail page.

item

Preview is FE-only and built from the row payload already present in the grid response.

item

This surface does not expose the manual cancel mutation; cancellation belongs to player-context bonus workflows.

item

Export uses the dedicated `/api/admin/bonuses/export-csv` route with the same filter set as the grid.

Related references

Related pages

pageBonuses / Player Bonuses

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

pagePlayers / Bonus Detail

Read-only detail page for one issued bonus, showing user, bonus, transaction, issuer, game, and lifecycle metadata.

pageAffiliate Payment Settings / Sending Window

Related sending-window surface attached to affiliate payment settings.

pageBonus Map

Operator guide for building retention Bonus Map campaigns, a draft-first calendar of daily prizes that players claim across a fixed period.

pageBonus Map / Form

Shared create-and-edit form that captures a Bonus Map name, unique key, title and button translations, and the campaign period.

pageBonus Map / List

Grid of all Bonus Map campaigns with derived lifecycle status, period, generated-day progress, and create, edit, and delete controls.