Files
Sauci/docs/product/redemption.md
jjbrunton 006761d3b0 feat(backend): add standalone data plane
Replace the Supabase application data plane with the Node/PostgreSQL API, migrate mobile, admin, web, and MCP callers, add controlled cutover tooling, and define hardened Dokploy infrastructure.
2026-08-28 14:42:11 +01:00

13 lines
625 B
Markdown

# Redemption codes
Promotional codes are redeemed only through `apps/web/app/redeem/page.tsx`.
Do not add redemption UI or a redemption call to the mobile app: mobile premium
access is governed by the platform purchase/RevenueCat flow.
The public web form calls `POST /public/v1/redemptions` on the standalone API.
The Node/Postgres boundary validates active state, expiry, remaining uses, and
prior redemption in one transaction before changing premium status.
Changes require web E2E coverage for validation and success/error states plus a
Postgres integration assertion for the resulting profile and redemption record.