Files
playzer/packages/api-contract/src/index.ts
Jose Selesan e06bc12097 feat(billing): implement billing module with Stripe and Mercado Pago integration
- 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.
2026-06-29 15:55:20 -03:00

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';