mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 17:46:06 +00:00
feat(billing): integrate Stripe for subscription management and billing access
- Added billing-related fields to the User model in the database. - Implemented functions for managing billing access, including trial periods and subscription statuses. - Created new billing utility functions for Stripe integration. - Updated onboarding page to include billing overview and workspace creation eligibility. - Enhanced route access checks to require billing access for certain actions. - Implemented cleanup scripts for expired billing workspaces and associated media. - Updated header component to conditionally show app navigation based on billing access. - Added new migrations for billing-related database changes.
This commit is contained in:
@@ -22,6 +22,16 @@ model User {
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
onboardingCompletedAt DateTime?
|
||||
trialEndsAt DateTime?
|
||||
billingTrialConsumedAt DateTime?
|
||||
stripeCustomerId String? @unique
|
||||
stripeSubscriptionId String? @unique
|
||||
stripePriceId String?
|
||||
stripeCurrentPeriodEnd DateTime?
|
||||
stripeCancelAtPeriodEnd Boolean @default(false)
|
||||
stripeCancelAt DateTime?
|
||||
billingAccessEndedAt DateTime?
|
||||
subscriptionStatus BillingSubscriptionStatus @default(FREE)
|
||||
|
||||
// Relations
|
||||
accounts Account[]
|
||||
@@ -44,6 +54,17 @@ model User {
|
||||
@@map("users")
|
||||
}
|
||||
|
||||
enum BillingSubscriptionStatus {
|
||||
FREE
|
||||
TRIALING
|
||||
ACTIVE
|
||||
PAST_DUE
|
||||
CANCELED
|
||||
UNPAID
|
||||
INCOMPLETE
|
||||
INCOMPLETE_EXPIRED
|
||||
}
|
||||
|
||||
enum FeedbackEntryType {
|
||||
FEEDBACK
|
||||
REVIEW
|
||||
|
||||
Reference in New Issue
Block a user