protobuf-platform 1.2.619 → 1.2.622
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -0
- package/CLAUDE.md +2 -175
- package/bet/bet.proto +44 -0
- package/bet/bet_grpc_pb.js +102 -0
- package/bet/bet_pb.js +1168 -0
- package/docs/promotional-big-wins.md +76 -0
- package/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Promotional Big Wins contract
|
|
2
|
+
|
|
3
|
+
Release: `protobuf-platform@1.2.620`.
|
|
4
|
+
|
|
5
|
+
## Public feed
|
|
6
|
+
|
|
7
|
+
`bet.Bet/getPromotionalBigWins(PaginationRequest) -> WinRatesResponse` is a separate
|
|
8
|
+
simulated promotional feed. Gateway selects this method only when promotional
|
|
9
|
+
mode is explicitly requested. The requesting UI must visibly disclose that the
|
|
10
|
+
cards are simulated promotional examples, not genuine player activity.
|
|
11
|
+
|
|
12
|
+
Only `limit` and `offset` are used. Offset follows the existing Big Wins convention:
|
|
13
|
+
a zero-based page number, with the row start calculated as `offset * limit`.
|
|
14
|
+
The shared request's user/history filters do not apply to this method.
|
|
15
|
+
|
|
16
|
+
`getWinRates`, `getLastWins`, `getTopWinByMultiplier`, `PaginationRequest`,
|
|
17
|
+
`WinRatesResponse`, and `WinRateItem` retain their existing fields and semantics.
|
|
18
|
+
There is no response disclosure flag, player ID, or financial operation in the
|
|
19
|
+
new contract. The public amount retains its existing protobuf `float` type.
|
|
20
|
+
Implementations must account for wire rounding when enforcing generated ranges;
|
|
21
|
+
configuration decimal strings must never be converted to floats for storage.
|
|
22
|
+
|
|
23
|
+
## Configuration management
|
|
24
|
+
|
|
25
|
+
These methods are internal and must be exposed only through the gateway's
|
|
26
|
+
authenticated, authorized BackOffice path. They manage bet-service configuration,
|
|
27
|
+
never real bets, users, wallets, or ledger entries.
|
|
28
|
+
|
|
29
|
+
| RPC | Request | Response |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| `readListPromotionalBigWins` | `PaginationRequest` | `PromotionalBigWinItemsResponse` |
|
|
32
|
+
| `setPromotionalBigWin` | `PromotionalBigWinRequest` | `PromotionalBigWinItem` |
|
|
33
|
+
| `deletePromotionalBigWin` | `PromotionalBigWinKey` | `PromotionalBigWinStatusResponse` |
|
|
34
|
+
|
|
35
|
+
The list includes active and inactive configurations and uses the same page-offset
|
|
36
|
+
convention. Set is a full create-or-replace operation keyed by canonical game ID.
|
|
37
|
+
It requires positive `game_id`, positive integer `frequency`, exact non-negative
|
|
38
|
+
decimal `min_win` and `max_win` with `max_win >= min_win`, and explicit `is_active`.
|
|
39
|
+
The optional boolean preserves absent versus explicitly false on the wire; the
|
|
40
|
+
service must reject absence. Setting false disables selection. Delete is
|
|
41
|
+
idempotent: absence is successful.
|
|
42
|
+
|
|
43
|
+
Amounts are in the authoritative runtime BaseCurrency, with the platform currency
|
|
44
|
+
scale and implementation range validation. They do not encode a fixed currency.
|
|
45
|
+
Frequency is a selection weight, not a count or quota. Timestamps in returned
|
|
46
|
+
configuration items are service-generated ISO timestamps.
|
|
47
|
+
|
|
48
|
+
## Game authority and seed resolution
|
|
49
|
+
|
|
50
|
+
Existing `game.Game/getProviderCatalogBatch` and `getGameCatalogBatch` expose
|
|
51
|
+
canonical IDs, titles, slugs, provider associations, and availability flags.
|
|
52
|
+
`getGamesByIds` provides card metadata. No game contract change is required.
|
|
53
|
+
Runtime validation must consider game/provider availability: the existing poor
|
|
54
|
+
metadata lookup excludes deactivated content but alone does not check all active
|
|
55
|
+
and hidden flags.
|
|
56
|
+
|
|
57
|
+
Seed matching must join provider identity and game title/slug conservatively,
|
|
58
|
+
report missing/ambiguous matches, and store only resolved game IDs. Invalid source
|
|
59
|
+
rows and conflicting duplicate configurations must be reported and skipped rather
|
|
60
|
+
than defaulted or overwritten according to spreadsheet order.
|
|
61
|
+
|
|
62
|
+
## Compatibility and rollout
|
|
63
|
+
|
|
64
|
+
This release only adds RPCs and messages. Older clients can call existing methods
|
|
65
|
+
on upgraded servers unchanged. New promotional methods are unavailable on older
|
|
66
|
+
bet servers; gateway must never fall back to genuine wins for a promotional request.
|
|
67
|
+
|
|
68
|
+
Publish the prepared package manually, then verify registry resolution and update
|
|
69
|
+
bet/gateway package locks before their implementation. Deploy the bet migration
|
|
70
|
+
and server support before enabling the gateway selector. The game service must
|
|
71
|
+
already expose the existing catalog and metadata methods. Frontend disclosure
|
|
72
|
+
must be present before promotional mode is exposed to users.
|
|
73
|
+
|
|
74
|
+
On rollback, disable promotional routing before rolling back bet support. Keep
|
|
75
|
+
configuration data unless a separately reviewed migration rollback is intended.
|
|
76
|
+
Package publication alone neither deploys the feature nor runs a migration/seed.
|