344 lines
9.2 KiB
Plaintext
344 lines
9.2 KiB
Plaintext
generator client_cms {
|
|
provider = "prisma-client-js"
|
|
output = "clients/cms"
|
|
}
|
|
|
|
datasource db_cms {
|
|
provider = "mysql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model AdminAccount {
|
|
UUID_AA String @id @default(uuid())
|
|
Username_AA String @unique
|
|
Email_AA String @unique
|
|
Password_AA String
|
|
LastLogin_AA DateTime?
|
|
UpdatedAt_AA DateTime @updatedAt
|
|
CreatedAt_AA DateTime @default(now())
|
|
}
|
|
|
|
model AppCredential {
|
|
UUID_AC String @id @default(uuid())
|
|
CreatedAt_AC DateTime @default(now())
|
|
TokenCredential_AC String @unique
|
|
UpdatedAt_AC DateTime @updatedAt
|
|
}
|
|
|
|
model AppContent {
|
|
UUID_APC String @id @default(uuid())
|
|
Content_APC String @db_cms.Text
|
|
CreatedAt_APC DateTime @default(now())
|
|
Filename_APC String?
|
|
Title_APC String
|
|
UpdatedAt_APC DateTime @updatedAt
|
|
Url_APC String?
|
|
Type_APC ContentType
|
|
CorpType_APC CorpType
|
|
TargetUrl_APC String?
|
|
}
|
|
|
|
model AppCampaign {
|
|
UUID_ACP String @id @default(uuid())
|
|
Title_ACP String
|
|
Content_ACP String @db_cms.Text
|
|
Date_ACP DateTime
|
|
Status_ACP CampaignStatus @default(pending)
|
|
UpdatedAt_ACP DateTime @updatedAt
|
|
CreatedAt_ACP DateTime @default(now())
|
|
TargetUsers_ACP Int? @default(0)
|
|
SentCount_ACP Int? @default(0)
|
|
SuccessCount_ACP Int? @default(0)
|
|
FailureCount_ACP Int? @default(0)
|
|
DeliveryRate_ACP Float? @default(0)
|
|
SentAt_ACP DateTime?
|
|
CompletedAt_ACP DateTime?
|
|
ErrorMessage_ACP String? @db_cms.Text
|
|
Data_ACP String? @db_cms.Text
|
|
ImageUrl_ACP String?
|
|
CampaignDelivery CampaignDelivery[]
|
|
}
|
|
|
|
model CampaignDelivery {
|
|
UUID_CD String @id @default(uuid()) @db_cms.Char(36)
|
|
Campaign_CD String
|
|
UserID_CD String
|
|
Token_CD String
|
|
Status_CD DeliveryStatus @default(pending)
|
|
SentAt_CD DateTime?
|
|
DeliveredAt_CD DateTime?
|
|
FailedAt_CD DateTime?
|
|
ErrorMessage_CD String? @db_cms.Text
|
|
ResponseData_CD String? @db_cms.Text
|
|
CreatedAt_CD DateTime @default(now())
|
|
UpdatedAt_CD DateTime @updatedAt
|
|
AppCampaign AppCampaign @relation(fields: [Campaign_CD], references: [UUID_ACP], onDelete: Cascade)
|
|
|
|
@@index([Campaign_CD])
|
|
@@index([UserID_CD])
|
|
}
|
|
|
|
model UsersToken {
|
|
UUID_UT String @id @default(uuid())
|
|
UserID_UT String @unique
|
|
Token_UT String @unique
|
|
UpdatedAt_UT DateTime @updatedAt
|
|
CreatedAt_UT DateTime @default(now())
|
|
UsersActivity UsersActivity[]
|
|
}
|
|
|
|
model UsersActivity {
|
|
UUID_UA String @id @default(uuid())
|
|
UUID_UT String
|
|
ActivityType_UA ActivityType
|
|
Params_UA String
|
|
NotifyAt_UA DateTime @default(now())
|
|
UpdatedAt_UA DateTime @updatedAt
|
|
CreatedAt_UA DateTime @default(now())
|
|
Processed_UA Boolean @default(false)
|
|
UsersToken UsersToken @relation(fields: [UUID_UT], references: [UUID_UT], onDelete: Cascade)
|
|
|
|
@@index([UUID_UT], map: "UsersActivity_UUID_UT_fkey")
|
|
}
|
|
|
|
model CrashReport {
|
|
UUID_CR String @id @default(uuid())
|
|
AppId_CR String
|
|
AppVersion_CR String
|
|
BuildVersion_CR String?
|
|
CrashId_CR String @unique
|
|
SessionId_CR String?
|
|
UserId_CR String?
|
|
CrashType_CR String
|
|
ExceptionName_CR String?
|
|
ExceptionReason_CR String? @db_cms.Text
|
|
StackTrace_CR String? @db_cms.LongText
|
|
ThreadName_CR String?
|
|
IsFatal_CR Boolean @default(true)
|
|
Severity_CR CrashSeverity @default(fatal)
|
|
Status_CR CrashStatus @default(new)
|
|
DeviceModel_CR String?
|
|
DeviceBrand_CR String?
|
|
OSName_CR DeviceOS @default(android)
|
|
OSVersion_CR String?
|
|
Architecture_CR String?
|
|
AvailableRam_CR BigInt?
|
|
TotalRam_CR BigInt?
|
|
AvailableDisk_CR BigInt?
|
|
TotalDisk_CR BigInt?
|
|
BatteryLevel_CR Float?
|
|
IsRooted_CR Boolean? @default(false)
|
|
IsDebugger_CR Boolean? @default(false)
|
|
NetworkType_CR String?
|
|
Breadcrumbs_CR Json?
|
|
CustomData_CR Json?
|
|
Logs_CR Json?
|
|
CrashCount_CR Int @default(1)
|
|
FirstOccurred_CR DateTime @default(now())
|
|
LastOccurred_CR DateTime @default(now())
|
|
AffectedUsers_CR Int @default(1)
|
|
CreatedAt_CR DateTime @default(now())
|
|
UpdatedAt_CR DateTime @updatedAt
|
|
ResolvedAt_CR DateTime?
|
|
ResolvedBy_CR String?
|
|
}
|
|
|
|
model CrashSession {
|
|
UUID_CS String @id @default(uuid())
|
|
SessionId_CS String @unique
|
|
AppId_CS String
|
|
AppVersion_CS String
|
|
UserId_CS String?
|
|
StartedAt_CS DateTime
|
|
EndedAt_CS DateTime?
|
|
Duration_CS Int?
|
|
IsCrashed_CS Boolean @default(false)
|
|
CrashCount_CS Int @default(0)
|
|
DeviceModel_CS String?
|
|
OSVersion_CS String?
|
|
CreatedAt_CS DateTime @default(now())
|
|
UpdatedAt_CS DateTime @updatedAt
|
|
}
|
|
|
|
model CrashAnalytics {
|
|
UUID_CA String @id @default(uuid())
|
|
AppId_CA String
|
|
AppVersion_CA String
|
|
Date_CA DateTime @db_cms.Date
|
|
TotalCrashes_CA Int @default(0)
|
|
FatalCrashes_CA Int @default(0)
|
|
NonFatalCrashes_CA Int @default(0)
|
|
UniqueCrashes_CA Int @default(0)
|
|
AffectedUsers_CA Int @default(0)
|
|
TotalSessions_CA Int @default(0)
|
|
CrashedSessions_CA Int @default(0)
|
|
CrashFreeRate_CA Float?
|
|
TopCrashes_CA Json?
|
|
CreatedAt_CA DateTime @default(now())
|
|
UpdatedAt_CA DateTime @updatedAt
|
|
|
|
@@unique([AppId_CA, AppVersion_CA, Date_CA])
|
|
}
|
|
|
|
model AINotification {
|
|
UUID_AIN String @id @default(uuid())
|
|
UserID_AIN String
|
|
AnalyzedActivities_AIN Int @default(0)
|
|
ActivityTypes_AIN String? @db_cms.Text
|
|
GeneratedTitle_AIN String
|
|
GeneratedDesc_AIN String @db_cms.Text
|
|
SentStatus_AIN DeliveryStatus @default(pending)
|
|
SentAt_AIN DateTime?
|
|
DeliveredAt_AIN DateTime?
|
|
FailedAt_AIN DateTime?
|
|
ErrorMessage_AIN String? @db_cms.Text
|
|
FCMMessageId_AIN String?
|
|
ResponseTime_AIN Int?
|
|
ProcessingTime_AIN Int?
|
|
ActivityTimeRange_AIN Int @default(60)
|
|
AIModel_AIN String @default("google/gemma-3n-e4b-it")
|
|
ScheduledAt_AIN DateTime?
|
|
PredictedConfidence_AIN Int?
|
|
PredictionReasoning_AIN String? @db_cms.VarChar(255)
|
|
UserEngagementPattern_AIN String? @db_cms.VarChar(50)
|
|
DelayMinutes_AIN Int?
|
|
CreatedAt_AIN DateTime @default(now())
|
|
UpdatedAt_AIN DateTime @updatedAt
|
|
|
|
@@index([UserID_AIN])
|
|
@@index([SentStatus_AIN])
|
|
@@index([CreatedAt_AIN])
|
|
@@index([SentStatus_AIN, ScheduledAt_AIN], name: "idx_scheduled_notifications")
|
|
@@index([UserID_AIN, UserEngagementPattern_AIN], name: "idx_user_pattern")
|
|
}
|
|
|
|
model AINotificationAnalytics {
|
|
UUID_ANA String @id @default(uuid())
|
|
Date_ANA DateTime @unique @db_cms.Date
|
|
TotalAnalyzed_ANA Int @default(0)
|
|
TotalGenerated_ANA Int @default(0)
|
|
TotalSent_ANA Int @default(0)
|
|
TotalDelivered_ANA Int @default(0)
|
|
TotalFailed_ANA Int @default(0)
|
|
DeliveryRate_ANA Float? @default(0)
|
|
AvgResponseTime_ANA Float? @default(0)
|
|
AvgProcessingTime_ANA Float? @default(0)
|
|
TopActivityTypes_ANA Json?
|
|
PopularTitles_ANA Json?
|
|
ErrorBreakdown_ANA Json?
|
|
CreatedAt_ANA DateTime @default(now())
|
|
UpdatedAt_ANA DateTime @updatedAt
|
|
}
|
|
|
|
model AppMenu {
|
|
UUID_AM String @id @default(uuid())
|
|
Name_AM String
|
|
Route_AM String
|
|
Icon_AM String
|
|
IsActive_AM Boolean @default(true)
|
|
Badge_AM String?
|
|
Order_AM Int @default(0)
|
|
Type_AM MenuType @default(IN_APP_ROUTE)
|
|
CreatedAt_AM DateTime @default(now())
|
|
UpdatedAt_AM DateTime @updatedAt
|
|
|
|
@@index([Order_AM])
|
|
@@index([IsActive_AM])
|
|
}
|
|
|
|
enum MenuType {
|
|
IN_APP_ROUTE
|
|
WEB_OPEN
|
|
}
|
|
|
|
enum CampaignStatus {
|
|
failed
|
|
pending
|
|
cancelled
|
|
completed
|
|
}
|
|
|
|
enum ContentType {
|
|
splash
|
|
promo
|
|
article
|
|
banner
|
|
floatingWidget
|
|
}
|
|
|
|
enum CorpType {
|
|
walanja
|
|
simaya
|
|
cifo
|
|
}
|
|
|
|
enum ActivityType {
|
|
VisitHotel
|
|
VisitRoom
|
|
VisitRetail
|
|
VisitCCTV
|
|
VisitTopup
|
|
VisitTransfer
|
|
VisitSwap
|
|
CheckBalance
|
|
InputDepositAmount
|
|
InputTransferAmount
|
|
ScanQRCode
|
|
SelectSwapPair
|
|
ViewArticle
|
|
ViewPromo
|
|
ViewDiscount
|
|
SearchHotel
|
|
FilterHotel
|
|
ViewHotelGallery
|
|
CheckRoomAvail
|
|
ViewProfile
|
|
UpdateProfile
|
|
ChangePIN
|
|
ViewQRCode
|
|
InitiateBooking
|
|
SelectCheckInDate
|
|
SelectCheckOutDate
|
|
ViewBookingSummary
|
|
SelectPaymentMethod
|
|
ViewPaymentEstimate
|
|
InitiatePayment
|
|
CheckInternetBill
|
|
ViewTransactionHistory
|
|
ViewNotification
|
|
ShareContent
|
|
SaveFavorite
|
|
ContactSupport
|
|
ViewFAQ
|
|
}
|
|
|
|
enum DeliveryStatus {
|
|
pending
|
|
scheduled
|
|
sent
|
|
delivered
|
|
failed
|
|
cancelled
|
|
}
|
|
|
|
enum CrashSeverity {
|
|
fatal
|
|
error
|
|
warning
|
|
info
|
|
}
|
|
|
|
enum CrashStatus {
|
|
new
|
|
acknowledged
|
|
resolved
|
|
ignored
|
|
}
|
|
|
|
enum DeviceOS {
|
|
android
|
|
ios
|
|
web
|
|
desktop
|
|
}
|