The persisted data model of aphrodite, generated from its schema.prisma — every table (Prisma model + its Postgres @@map name), its columns, the enums it defines, and the foreign-key edges that wire them together.
28Tables
375Columns
24Enums
44FK relations
Tables (28)#
id String PKuserId String uniqstageName Stringbio String?avatarUrl String?bannerUrl String?profileVideoUrl String?status BroadcasterStatusverificationStatus VerificationStatusverifiedAt DateTime?ageVerified BooleanidVerified BooleanisOnline BooleanisStreaming BooleanlastSeenAt DateTime?timezone String +25 moreFK:
receivedTips→Tip · receivedSubscriptions→Subscription · followers→Followid String PKuserId String uniqdisplayName StringavatarUrl String?ageVerified BooleanageVerifiedAt DateTime?status ViewerStatusisBanned BooleanbanReason String?bannedUntil DateTime?tokenBalance IntlifetimePurchased IntlifetimeSpent IntpreferredCategories String[]showExplicit BooleannotificationsEnabled Boolean +12 moreFK:
tips→Tip · subscriptions→Subscription · follows→Followid String PKbroadcasterId Stringtitle Stringdescription String?thumbnailUrl String?previewUrl String?status StreamStatusstreamType StreamTypestreamKey String uniqrtmpUrl String?hlsUrl String?webrtcUrl String?isExplicit Booleancategories String[]tags String[]ageRestricted Boolean +17 moreFK:
broadcaster→Broadcaster · goals→StreamGoalid String PKstreamId Stringstatus PrivateShowStatusshowType PrivateShowTypepricePerMinute IntminimumMinutes IntstartedAt DateTime?endedAt DateTime?duration Int?totalCost Intrequests PrivateShowRequest[]participants PrivateShowParticipant[]createdAt DateTimeupdatedAt DateTimeFK:
stream→Streamid String PKshowId StringviewerId Stringstatus PrivateShowRequestStatusrequestedMinutes Intmessage String?createdAt DateTimerespondedAt DateTime?FK:
show→PrivateShow · viewer→Viewerid String PKshowId StringviewerId StringjoinedAt DateTimeleftAt DateTime?duration InttokensSpent IntFK:
show→PrivateShowid String PKviewerId StringstreamId StringstartedAt DateTimeendedAt DateTime?duration IntipAddress String?userAgent String?deviceType String?FK:
viewer→Viewer · stream→Streamid String PKbroadcasterId Stringtitle String?scheduledStart DateTimescheduledEnd DateTime?isRecurring BooleanrecurrenceRule String?status ScheduleStatusnotificationsSent BooleancreatedAt DateTimeupdatedAt DateTimeFK:
broadcaster→Broadcasterid String PKbroadcasterId StringstreamId String?title Stringdescription String?targetAmount IntcurrentAmount Intstatus GoalStatuscompletedAt DateTime?createdAt DateTimeupdatedAt DateTimeFK:
broadcaster→Broadcaster · stream→Streamid String PKbroadcasterId StringstreamId String?title Stringdescription String?thumbnailUrl String?videoUrl Stringduration IntfileSize BigIntresolution String?isPublic Booleanprice IntviewCount IntpurchaseCount IntrecordedAt DateTimecreatedAt DateTimeFK:
broadcaster→Broadcaster · stream→Streamid String PKviewerId StringbroadcasterId StringstreamId String?amount Intmessage String?isAnonymous BooleantipMenuItemId String?deviceTriggered BooleandeviceDuration Int?deviceIntensity Int?platformFee IntbroadcasterShare IntcreatedAt DateTimeFK:
viewer→Viewer · broadcaster→Broadcaster · stream→Stream · tipMenuItem→TipMenuItemid String PKviewerId StringtokenAmount IntpriceUsd Intcurrency StringexchangeRate FloatpaymentProvider StringpaymentMethodType String?externalPaymentId String?status PaymentStatusfailureReason String?createdAt DateTimecompletedAt DateTime?FK:
viewer→Viewerid String PKbroadcasterId Stringamount Intcurrency StringpayoutMethod PayoutMethodexternalPayoutId String?payoutDetails Json?status PayoutStatusfailureReason String?periodStart DateTimeperiodEnd DateTimecreatedAt DateTimeprocessedAt DateTime?completedAt DateTime?FK:
broadcaster→Broadcasterid String PKviewerId StringbroadcasterId StringtierId Stringstatus SubscriptionStatusprice IntcurrentPeriodStart DateTimecurrentPeriodEnd DateTimenextBillingDate DateTime?autoRenew BooleancancelledAt DateTime?cancellationReason String?totalBilled IntbillingCount IntcreatedAt DateTimeupdatedAt DateTimeFK:
viewer→Viewer · broadcaster→Broadcaster · tier→SubscriptionTierid String PKbroadcasterId Stringname Stringdescription String?price IntbillingCycle BillingCyclecolor String?icon String?priority Intfeatures String[]isActive BooleanisPublic BooleanmaxSubscribers Int?subscriptions Subscription[]createdAt DateTimeupdatedAt DateTimeFK:
broadcaster→Broadcasterid String PKviewerId StringbroadcasterId StringnotifyOnLive BooleannotifyOnContent BooleancreatedAt DateTimeFK:
viewer→Viewer · broadcaster→Broadcasterid String PKbroadcasterId Stringname StringdeviceType DeviceTypemanufacturer String?model String?connectionType DeviceConnectionTypeconnectionStatus DeviceConnectionStatusdeviceId String?lastConnectedAt DateTime?isActive BooleanallowViewerControl BooleanmaxIntensity IntdefaultIntensity IntsupportedPatterns String[]controls DeviceControl[] +3 moreFK:
broadcaster→Broadcasterid String PKbroadcasterId Stringname Stringdescription String?synchronizeIntensity BooleanmasterDeviceId String?members DeviceGroupMember[]createdAt DateTimeupdatedAt DateTimeFK:
broadcaster→Broadcasterid String PKgroupId StringdeviceId StringintensityMultiplier FloatFK:
group→DeviceGroup Cascade · device→Device Cascadeid String PKdeviceId StringviewerId StringcontrolType DeviceControlTypeintensity Intduration Int?pattern String?sourceType DeviceControlSourcesourceTipId String?status DeviceControlStatusexecutedAt DateTime?createdAt DateTimeFK:
device→Device · viewer→Viewerid String PKstreamId StringviewerId Stringcontent StringmessageType ChatMessageTypeisHighlighted BooleantipAmount Int?isDeleted BooleandeletedAt DateTime?deletedBy String?createdAt DateTimeFK:
stream→Stream · viewer→Viewerid String PKbroadcasterId StringviewerId Stringreason String?isPermanent BooleanexpiresAt DateTime?createdAt DateTimeFK:
broadcaster→Broadcaster · viewer→Viewerid String PKviewerId Stringtype NotificationTypetitle Stringbody String?data Json?isRead BooleanreadAt DateTime?archivedAt DateTime?createdAt DateTimeFK:
viewer→Viewerid String PKviewerId Stringendpoint String uniqp256dh Stringauth StringuserAgent String?createdAt DateTimeFK:
viewer→Viewerid String PKpairKey StringfromUserId StringtoUserId Stringcontent StringmessageType DmMessageTypemediaUrl String?isRead BooleanreadAt DateTime?hiddenFor String[]createdAt DateTimeid String PKblockerUserId StringblockedUserId StringcreatedAt DateTimeid String PKtype Stringtimestamp DateTimeuserId String?creatorId String?streamId String?sessionId String?properties Jsonmetadata Json?createdAt DateTimeEnums (24)#
DmMessageType4 valuesTEXTIMAGEVIDEOFILEBroadcasterStatus5 valuesPENDINGACTIVESUSPENDEDBANNEDDELETEDVerificationStatus4 valuesUNVERIFIEDPENDINGVERIFIEDREJECTEDViewerStatus4 valuesACTIVESUSPENDEDBANNEDDELETEDStreamStatus6 valuesOFFLINESTARTINGLIVEPAUSEDENDINGENDEDStreamType5 valuesPUBLICPRIVATETICKETGROUPFAN_CLUBPrivateShowStatus4 valuesPENDINGACTIVEENDEDCANCELLEDPrivateShowType3 valuesONE_ON_ONEGROUPSPYPrivateShowRequestStatus4 valuesPENDINGACCEPTEDREJECTEDEXPIREDNotificationType6 valuesSTREAM_LIVESHOW_STARTINGTIP_RECEIPTSUBSCRIPTIONFOLLOWSYSTEMScheduleStatus4 valuesSCHEDULEDLIVECOMPLETEDCANCELLEDGoalStatus4 valuesACTIVECOMPLETEDEXPIREDCANCELLEDPaymentStatus6 valuesPENDINGPROCESSINGCOMPLETEDFAILEDREFUNDEDCANCELLEDPayoutStatus5 valuesPENDINGPROCESSINGCOMPLETEDFAILEDCANCELLEDPayoutMethod4 valuesBANK_TRANSFERPAYPALCRYPTOCHECKSubscriptionStatus5 valuesACTIVEPAUSEDCANCELLEDEXPIREDPAST_DUEBillingCycle3 valuesMONTHLYQUARTERLYYEARLYDeviceType6 valuesVIBRATORROTATORCONSTRICTIONSTROKERMULTI_FUNCTIONOTHERDeviceConnectionType4 valuesBLUETOOTHWIFIUSBNETWORKDeviceConnectionStatus4 valuesDISCONNECTEDCONNECTINGCONNECTEDERRORDeviceControlType5 valuesVIBRATEROTATECONSTRICTPATTERNSTOPDeviceControlSource5 valuesTIPTIP_MENUSUBSCRIPTIONMANUALGOALDeviceControlStatus4 valuesPENDINGEXECUTINGCOMPLETEDFAILEDChatMessageType5 valuesTEXTTIPSYSTEMEMOTESTICKER