Repository navigation
feat(catalog): let a partner describe a section with no offers left (STORE-5471) - #81
kirill-stash wants to merge 1 commit into
Conversation
…STORE-5471) When a player buys everything in a section, the section disappears and the player cannot tell why. A partner had no way to say what such a section shows. Section gains an optional EmptyState: an image URL, a message and a detail, the two texts as LocalizableText. A section with a header and an empty state stays in the shop when it has no offers. A section without one is left out, as it is today. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ee77d81 to
46d22b9
Compare
| option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { | ||
| json_schema: { | ||
| title: "Catalog Section Empty State" | ||
| description: "What a section shows when no offers remain. Each value is optional, and a value that is absent or resolves to blank is left out. A section with a header and an empty state stays in the shop when it has no offers; a section without one is left out, as it is today." |
There was a problem hiding this comment.
Medium · interface — If the deployed web shop does not yet render emptyState, a partner sending a header, no items, and an empty-state message will still see the section disappear, despite this promise. Check the web-shop renderer and rollout status, and add the planned “not shown yet” caveat until rendering is deployed.
There was a problem hiding this comment.
Standing, no code change. This is the caveat that Soeren asked us to remove on the same stack: public-api field docs read as built, and nothing in the stack would take the sentence out later (#80 (comment)). Rollout covers the gap instead: the published docs follow the pie-mono bump, and partners hear about the field only after the shop renders it. Recorded under Verification in this PR.
— Beast
https://linear.app/stashgg/issue/STORE-5471/the-public-catalog-empty-state-field
Intent
The public catalog contract needs a way for a partner to describe what an emptied section shows: a message, a detail and an image, in the player's language. The field is optional, and a partner that does not send it keeps the contract it has today.
Verification
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Tip
💥 Blast Radius — No Risk
Intent: Let partners describe what players see when a catalog section has no offers left.
The new field is optional, so existing catalog responses can remain unchanged.
Overview
Section.empty_stateadds an image URL and two localizable text fields to the catalog contract.Shop reach: none beyond partners that send
empty_state— existing responses omit it.Data/proto: A partner can send
GetCatalogResponse.catalog.sections[].emptyStateto the Stash catalog consumer for the shop renderer. Responses that omit it retain their previous shape; renderer deployment is not established by this repository.Scope is the catalog proto and two generated documentation files.
Not reviewed: 2 generated file(s) — marked
linguist-generatedin.gitattributes:docs/gen/redoc.v1.html,docs/gen/swagger.v1.json.