Enhance payment processing and rental features
- Updated the BTCPay service to support internal Lightning invoices with private route hints, improving payment routing for users with private channels. - Added reconciliation methods for pending rents and subscriptions to ensure missed payments are processed on startup. - Enhanced the rental and subscription services to handle payments in satoshis, aligning with Lightning Network standards. - Improved the rental modal and content detail components to display rental status and pricing more clearly, including a countdown for rental expiration. - Refactored various components to streamline user experience and ensure accurate rental access checks.
This commit is contained in:
@@ -10,7 +10,7 @@ export interface ApiProject {
|
||||
title: string
|
||||
slug: string
|
||||
synopsis: string
|
||||
status: 'draft' | 'published' | 'rejected'
|
||||
status: 'draft' | 'published' | 'rejected' | 'under-review'
|
||||
type: 'film' | 'episodic' | 'music-video'
|
||||
format: string
|
||||
category: string
|
||||
@@ -20,7 +20,9 @@ export interface ApiProject {
|
||||
releaseDate: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
genre?: ApiGenre
|
||||
genres?: ApiGenre[]
|
||||
film?: ApiContent
|
||||
filmmaker?: ApiFilmmaker
|
||||
}
|
||||
|
||||
@@ -102,7 +104,8 @@ export interface ApiRent {
|
||||
export interface ApiGenre {
|
||||
id: string
|
||||
name: string
|
||||
slug: string
|
||||
slug?: string
|
||||
type?: string
|
||||
}
|
||||
|
||||
export interface ApiFestival {
|
||||
@@ -174,15 +177,15 @@ export interface PaginatedResponse<T> {
|
||||
export interface ApiPaymentMethod {
|
||||
id: string
|
||||
filmmakerUserId: string
|
||||
type: 'lightning' | 'bank'
|
||||
type: 'lightning' | 'bank' | 'LIGHTNING' | 'BANK'
|
||||
lightningAddress?: string
|
||||
bankName?: string
|
||||
accountNumber?: string
|
||||
routingNumber?: string
|
||||
withdrawalFrequency: 'manual' | 'weekly' | 'monthly'
|
||||
isSelected: boolean
|
||||
withdrawalFrequency: 'manual' | 'weekly' | 'monthly' | 'automatic' | 'daily'
|
||||
selected: boolean
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
export interface ApiFilmmakerAnalytics {
|
||||
@@ -261,16 +264,21 @@ export interface UpdateProjectData {
|
||||
title?: string
|
||||
slug?: string
|
||||
synopsis?: string
|
||||
status?: ProjectStatus
|
||||
status?: string
|
||||
type?: ProjectType
|
||||
format?: string
|
||||
category?: string
|
||||
poster?: string
|
||||
trailer?: string
|
||||
rentalPrice?: number
|
||||
releaseDate?: string
|
||||
genres?: string[]
|
||||
genreId?: string | null
|
||||
deliveryMode?: 'native' | 'partner'
|
||||
film?: {
|
||||
rentalPrice?: number
|
||||
releaseDate?: string
|
||||
file?: string
|
||||
[key: string]: any
|
||||
}
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
export interface UploadInitResponse {
|
||||
|
||||
@@ -22,6 +22,8 @@ export interface Content {
|
||||
drmEnabled?: boolean
|
||||
streamingUrl?: string
|
||||
apiData?: any
|
||||
/** The Content entity ID (film/episode) for rental/payment flows */
|
||||
contentId?: string
|
||||
|
||||
// Dual-mode content delivery
|
||||
deliveryMode?: 'native' | 'partner'
|
||||
|
||||
Reference in New Issue
Block a user