{# Live region for the Insight page. Rendered inside insight.html.twig on first load AND standalone by AgentController::insightData(), re-fetched by the agent-insight Stimulus controller every ~15s. Keep markup identical between the two so the innerHTML swap is diff-free where data is unchanged. Every table is `data-insight-paginate` + carries an `.insight-pager` footer; the Stimulus controller slices each to 10 rows/page (state survives the swap). #} {% import _self as insight %} {# ── Headline tiles ── #}
{{ tile.label }}
{{ tile.value }}
{{ tile.sub }}
Deposit & Withdrawal Requests
| Time | Player | Kind | Amount | Status |
|---|---|---|---|---|
| {{ req.createdAt|date('M d, H:i') }} | {{ req.entity.user.firstName }} {{ req.entity.user.lastName }} | {% if req.kind == 'deposit' %} Deposit {% else %} Withdrawal {% endif %} | ₱{{ req.entity.amount|number_format(2) }} | {% if req.entity.status == 'approved' %} Approved {% elseif req.entity.status == 'rejected' %} Rejected {% else %} Pending {% endif %} |
| No deposit or withdrawal requests from your downline. | ||||
Players Online · {{ periodLabel }}
| Name | Mobile | Last Seen |
|---|---|---|
| {{ row.firstName }} {{ row.lastName }} | {{ row.mobileNumber }} | {% if isToday %}{{ row.minutesAgo == 0 ? 'just now' : row.minutesAgo ~ ' min ago' }} {% else %}{{ row.lastSeenAt|date('M j, H:i') }}{% endif %} |
| No one in your downline was seen on {{ periodLabel }}. | ||
Players Who Played · {{ periodLabel }}
| Name | Mobile | Bets | Staked |
|---|---|---|---|
| {{ row.firstName }} {{ row.lastName }} | {{ row.mobileNumber }} | {{ row.betCount }} | ₱{{ row.betAmount|number_format(2) }} |
| No one in your downline placed a bet on {{ periodLabel }}. | |||
Player Activity — Last Deposit & Last Bet
| Player | Mobile | Last Deposit Request | Last Bet | Game |
|---|---|---|---|---|
| {{ row.firstName }} {{ row.lastName }} | {{ row.mobileNumber }} | {% if row.lastDeposit %} ₱{{ row.lastDeposit.amount|number_format(2) }} · {{ row.lastDeposit.createdAt|date('M d, H:i') }} {% if row.lastDeposit.status == 'approved' %} Approved {% elseif row.lastDeposit.status == 'rejected' %} Rejected {% else %} Pending {% endif %} {% else %} — {% endif %} | {% if row.lastBet %} ₱{{ row.lastBet.amount|number_format(2) }} · {{ row.lastBet.placedAt|date('M d, H:i') }} {% else %} — {% endif %} | {{ row.lastBet ? row.lastBet.game : '—' }} |
| No deposit or bet activity from your {{ scope == 'all' ? 'downline' : 'direct players' }} yet. | ||||
| Time | Player | Type | Amount | Balance After |
|---|---|---|---|---|
| {{ tx.createdAt|date('M d, H:i') }} | {{ tx.user.firstName }} {{ tx.user.lastName }} | {{ helper.tx_type_badge(tx.type) }} | ₱{{ tx.amount|number_format(2) }} | ₱{{ tx.balanceAfter|number_format(2) }} |
| {{ emptyText }} | ||||
Direct Players — Recent Transactions
{{ insight.tx_table(directTx, 'agent-insight-direct-tx-table', 'No recent transactions from your direct players.') }}Sub-Agents' Players — Recent Transactions
{{ insight.tx_table(subAgentTx, 'agent-insight-subagent-tx-table', 'No recent transactions from your sub-agents\' players.') }}