- Add Stripe and Mercado Pago providers for handling subscriptions. - Create billing repository and access services for managing billing records. - Implement webhook handlers for processing events from Stripe and Mercado Pago. - Add routes for checkout, canceling subscriptions, and retrieving billing status. - Introduce billing status management with appropriate state transitions. - Create tests for billing functionalities including webhook idempotency and provider resolution. - Document the billing module architecture, environment variables, and API endpoints.
186 lines
4.3 KiB
TypeScript
186 lines
4.3 KiB
TypeScript
export {
|
|
planFeatureFlagsSchema,
|
|
planRulesSchema,
|
|
planRulesV1Schema,
|
|
planSchema,
|
|
planSummarySchema,
|
|
planWithFeaturesSchema,
|
|
planLimitsSchema,
|
|
} from './plan';
|
|
export type {
|
|
Plan,
|
|
PlanFeatureFlags,
|
|
PlanRules,
|
|
PlanRulesV1,
|
|
PlanSummary,
|
|
PlanWithFeatures,
|
|
PlanLimits,
|
|
} from './plan';
|
|
export {
|
|
acceptComplexInvitationsSchema,
|
|
complexInvitationSchema,
|
|
complexInvitationStatusSchema,
|
|
complexMemberSchema,
|
|
complexUsersOverviewSchema,
|
|
complexSchema,
|
|
complexUserRoleSchema,
|
|
complexWithRoleSchema,
|
|
createComplexSchema,
|
|
inviteComplexUserSchema,
|
|
revokeComplexUserSchema,
|
|
selectComplexSchema,
|
|
updateComplexSchema,
|
|
} from './complex';
|
|
export type {
|
|
AcceptComplexInvitationsInput,
|
|
AcceptComplexInvitationsResponse,
|
|
CancelComplexInvitationResponse,
|
|
Complex,
|
|
ComplexInvitation,
|
|
ComplexInvitationStatus,
|
|
ComplexMember,
|
|
ComplexUserRole,
|
|
ComplexWithRole,
|
|
CreateComplexInput,
|
|
CreateComplexPayload,
|
|
CreateComplexResponse,
|
|
ComplexUsersOverview,
|
|
SelectComplexInput,
|
|
InviteComplexUserInput,
|
|
InviteComplexUserResponse,
|
|
UpdateComplexInput,
|
|
UpdateComplexPayload,
|
|
UpdateComplexResponse,
|
|
RevokeComplexUserInput,
|
|
} from './complex';
|
|
export {
|
|
dayOfWeekSchema,
|
|
courtAvailabilityInputSchema,
|
|
courtAvailabilitySchema,
|
|
courtPriceRuleSchema,
|
|
courtSchema,
|
|
createCourtSchema,
|
|
updateCourtSchema,
|
|
} from './court';
|
|
export type {
|
|
DayOfWeek,
|
|
Court,
|
|
CourtAvailability,
|
|
CourtAvailabilityInput,
|
|
CourtPriceRule,
|
|
CreateCourtInput,
|
|
UpdateCourtInput,
|
|
} from './court';
|
|
export {
|
|
adminBookingSchema,
|
|
adminBookingSportSchema,
|
|
bookingStatusSchema,
|
|
createAdminBookingSchema,
|
|
createRecurringBookingSchema,
|
|
listAdminBookingsQuerySchema,
|
|
listAdminBookingsResponseSchema,
|
|
listRecurringGroupsResponseSchema,
|
|
recurringBookingGroupSchema,
|
|
recurringGroupStatusSchema,
|
|
rescheduleAdminBookingSchema,
|
|
updateAdminBookingStatusSchema,
|
|
updateRecurringGroupSchema,
|
|
} from './admin-booking';
|
|
export type {
|
|
AdminBooking,
|
|
AdminBookingSport,
|
|
BookingStatus,
|
|
CreateAdminBookingInput,
|
|
CreateRecurringBookingInput,
|
|
ListAdminBookingsQuery,
|
|
ListAdminBookingsResponse,
|
|
ListRecurringGroupsResponse,
|
|
RecurringBookingGroup,
|
|
RecurringGroupStatus,
|
|
RescheduleAdminBookingInput,
|
|
UpdateAdminBookingStatusInput,
|
|
UpdateRecurringGroupInput,
|
|
} from './admin-booking';
|
|
export {
|
|
createPublicBookingSchema,
|
|
publicAvailabilityCourtSchema,
|
|
publicAvailabilityQuerySchema,
|
|
publicAvailabilityResponseSchema,
|
|
publicBookingConfirmationSchema,
|
|
publicBookingSchema,
|
|
publicBookingSlotSchema,
|
|
publicBookingSportSchema,
|
|
cancelPublicBookingSchema,
|
|
} from './public-booking';
|
|
export type {
|
|
CreatePublicBookingInput,
|
|
CancelPublicBookingInput,
|
|
PublicAvailabilityCourt,
|
|
PublicAvailabilityQuery,
|
|
PublicAvailabilityResponse,
|
|
PublicBooking,
|
|
PublicBookingConfirmation,
|
|
PublicBookingSlot,
|
|
PublicBookingSport,
|
|
} from './public-booking';
|
|
export { sportSchema, createSportSchema, updateSportSchema } from './sport';
|
|
export type { Sport, CreateSportInput, UpdateSportInput } from './sport';
|
|
export {
|
|
userProfileSchema,
|
|
passwordResetStartSchema,
|
|
passwordResetVerifySchema,
|
|
passwordResetResendSchema,
|
|
} from './user';
|
|
export type {
|
|
UserProfile,
|
|
UserProfileResponse,
|
|
PasswordResetStartInput,
|
|
PasswordResetVerifyInput,
|
|
PasswordResetResendInput,
|
|
PasswordResetStartResponse,
|
|
PasswordResetVerifyResponse,
|
|
PasswordResetResendResponse,
|
|
} from './user';
|
|
export {
|
|
adminComplexListItemSchema,
|
|
adminComplexStatsSchema,
|
|
adminCreatePlanSchema,
|
|
adminUpdatePlanSchema,
|
|
adminUserSchema,
|
|
adminBlockUserSchema,
|
|
adminGlobalStatsSchema,
|
|
adminPaymentStatusSchema,
|
|
adminUserSessionSchema,
|
|
adminGeoCitySchema,
|
|
adminGeoCountrySchema,
|
|
adminGeoStatsSchema,
|
|
} from './admin';
|
|
export {
|
|
billingProviderSchema,
|
|
billingStatusSchema,
|
|
billingStatusResponseSchema,
|
|
createCheckoutSchema,
|
|
checkoutResponseSchema,
|
|
} from './billing';
|
|
export type {
|
|
BillingProvider,
|
|
BillingStatus,
|
|
BillingStatusResponse,
|
|
CreateCheckoutInput,
|
|
CheckoutResponse,
|
|
} from './billing';
|
|
export type {
|
|
AdminComplexListItem,
|
|
AdminComplexStats,
|
|
AdminCreatePlanInput,
|
|
AdminUpdatePlanInput,
|
|
AdminUser,
|
|
AdminBlockUserInput,
|
|
AdminGlobalStats,
|
|
AdminPaymentStatus,
|
|
AdminUserSession,
|
|
AdminGeoCity,
|
|
AdminGeoCountry,
|
|
AdminGeoStats,
|
|
} from './admin';
|