Skip to content

feat(catalog): add loyalty tier fields to egress catalog API - #28

Merged
dinosoeren merged 1 commit into
mainfrom
scout/feat/STORE-312-egress-freeitem-tier-id
Jul 8, 2026
Merged

feat(catalog): add loyalty tier fields to egress catalog API#28
dinosoeren merged 1 commit into
mainfrom
scout/feat/STORE-312-egress-freeitem-tier-id

Conversation

@dinosoeren

@dinosoeren dinosoeren commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Adds optional loyalty-tier fields to the egress catalog API so a game backend can serve tier-aware catalogs (e.g. a tier-based daily gift) without resolving the player's tier itself.

ResponseFreeItem:

  • target_tier_id (9): identifier of the loyalty tier a free item targets. For a locked preview of the next tier's reward, return the item with status LOCKED and the next tier's id.

RequestGetCatalogRequest:

  • current_tier_id (7): the player's current loyalty tier, resolved by Stash when a loyalty program is enabled.
  • next_tier_id (8): the tier directly above the current one (absent at the top tier), for returning a locked preview of the next tier's reward.

All fields are optional and additive (buf breaking clean vs main). Regenerated docs/gen/swagger.v1.json.


Note

Low Risk
Additive, optional protobuf/OpenAPI changes only; no runtime logic in this diff.

Overview
Extends the egress Get Catalog contract so tier-based free rewards (e.g. daily gifts) can be built without the game backend resolving loyalty tiers.

Request — optional query fields currentTierId and nextTierId: Stash supplies the player’s current tier and the tier above (when not at max), so the game can pick the right bundle and optionally show a locked preview of the next tier’s reward.

Response — optional targetTierId on FreeItem: tags which tier a free item belongs to; locked next-tier previews should use status LOCKED with that tier id.

docs/gen/swagger.v1.json is regenerated to match the proto changes. All fields are optional and additive.

Reviewed by Cursor Bugbot for commit 6b8724b. Bugbot is set up for automated code reviews on this repo. Configure here.

Copy link
Copy Markdown
Collaborator Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@dinosoeren
dinosoeren marked this pull request as ready for review June 18, 2026 05:59
@dinosoeren
dinosoeren force-pushed the scout/feat/STORE-312-egress-freeitem-tier-id branch from 5e18a59 to 1be5ea1 Compare June 18, 2026 06:10
@dinosoeren dinosoeren changed the title feat(catalog): add optional tier_id to egress FreeItem feat(catalog): add optional target_tier_id to egress FreeItem Jun 18, 2026
@dinosoeren
dinosoeren requested a review from stephensxu June 18, 2026 06:28
@dinosoeren
dinosoeren force-pushed the scout/feat/STORE-312-egress-freeitem-tier-id branch from 1be5ea1 to f02d889 Compare June 18, 2026 07:21
@dinosoeren dinosoeren changed the title feat(catalog): add optional target_tier_id to egress FreeItem feat(catalog): add loyalty tier fields to egress catalog API Jun 18, 2026
@dinosoeren
dinosoeren requested a review from cchamberlain June 18, 2026 07:58
@dinosoeren
dinosoeren force-pushed the scout/feat/STORE-312-egress-freeitem-tier-id branch 2 times, most recently from 314a255 to d3693d7 Compare June 25, 2026 20:31
@dinosoeren
dinosoeren force-pushed the scout/feat/STORE-312-egress-freeitem-tier-id branch from d3693d7 to 5957369 Compare July 1, 2026 03:26
@dinosoeren
dinosoeren force-pushed the scout/feat/STORE-312-egress-freeitem-tier-id branch from 5957369 to 6b8724b Compare July 8, 2026 05:06
@dinosoeren
dinosoeren merged commit 3abb347 into main Jul 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant