Add channel dataset and Stripe + Firebase billing integration stubs #39
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds 210-channel dataset with tier-based gating and serverless billing webhook scaffolding. Draft PR for credential injection and deployment review.
Files Added
Dataset & Loader
src/data/channels.full.json- 210 channels (IDs 25-220). Gold tier: 26, 33, 36, 40src/utils/loadChannels.js- JSON loader with fs fallback, error handlingClient-Side Gating
src/components/ChannelLock.stubs.jsx- React component demonstrating tier-based access control with mock entitlements hook. Placeholder for Firestore-backed checks.Webhook Infrastructure
functions/stripe-webhooks/index.js- Express app for Firebase Functions. Handles invoice., customer.subscription. events. TODOs: signature verification, Firestore updates via metadata mappingfunctions/README.md- Deploy sequence, functions:config:set for stripe.secret_key and stripe.webhook_secretDocumentation
docs/STRIPE_FIREBASE_INTEGRATION.md- Firestore schema (/users/{uid}, /subscriptions/{subId}, /entitlements/{uid}), Checkout Session flow, security notesREADME/DEVNOTES.md- CI credential checklist (STRIPE_, FIREBASE_, ANDROID_KEYSTORE vars)Example Usage
Maintainer Checklist
No secrets committed. All configuration reads from process.env.
Original prompt
This pull request was created as a result of the following prompt from Copilot chat.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.