Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
4.0 kB
4
Indexable
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"

}

datasource db {
  provider = "mongodb"
  url      = env("DATABASE_URL")
}

// emuns

enum StreamType {
  OwnStream
  Restricted
  M3u8
  Web
}

enum VideoType {
  None
  Youtube
  Sportmonk
}

enum ThumbnailType {
  None
  Url
  Image
}

enum NotificationType {
  OneSignal
  FCM
}

model User {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  name String?
  email String @unique
  password String 
  adminType String?
  emailVerified DateTime?
  image String?
  salt String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}


model Match {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  fixtureId       String?
  matchTime       String  
  matchTitle      String    
  teamOneName     String    
  teamOneImage    String    
  teamTwoName     String    
  teamTwoImage    String
  matchStatus     Boolean   
  streamingSources Stream[]
}



model Stream {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  matchId String @db.ObjectId
  streamTitle       String   
  isPremium         Boolean  
  resulation        String   
  platform          String
  portraitWatermark String  
  landscapeWatermark String 
  streamType        StreamType @default(OwnStream)   
  streamUrl         String?   
  headers           String?
  streamKey         String? 
  streamRestrictedData   String?

  match  Match  @relation(fields: [matchId], references: [id], onDelete: Cascade, onUpdate: Cascade)
}


model Highlight {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  fixtureId String?
  title String
  shortDescription String?
  status Boolean
  youtubeUrl String?
  youtubeThumbnail String?
  videoType VideoType @default(None)
  thumbnailType ThumbnailType @default(None)
  imageUrl String?
  imageFile String?
}


model AppSettings {
 id String @id @default(auto()) @map("_id") @db.ObjectId
 platform String @default("android")
 notificationType NotificationType @default(OneSignal)
 oneSignalAppID String?
 oneSignalApiKey String?
 firebaseServerKey String?
 firebaseTopics String?
 sportsApiBasedUrl String?
 sportsApiKey String?
 androidSettings AndroidSettings[]
 iosSettings IosSettings[]
}

model AndroidSettings {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  androidSettingsId String @db.ObjectId
  privacyPolicy String?
  termsAndCondition String?
  appShareLink String?
  appDefalutPage String?
  appPublishingControl Boolean?
  hideLiveByVersionCode Int?
  adsType String?
  clickControl Int?
  googleAppId String?
  googleAppOpenAddCode String?
  googleBannerAdsCode String?
  googleInterstitialAdsCode String?
  googleNativeAdsCode String?
  googleRewardedAdsCode String?
  versionName String?
  versionCode String?
  forceUpdate Boolean?
  appUrl String?
  buttonText String?
  description String?
  appSettings  AppSettings  @relation(fields: [androidSettingsId], references: [id], onDelete: Cascade, onUpdate: Cascade)
}

model IosSettings {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  iosSettingsId String @db.ObjectId
  privacyPolicy String?
  termsAndCondition String?
  appShareLink String?
  appRatingLink String?
  appDefalutPage String?
  appPublishingControl Boolean?
  hideLiveByVersionCode Int?
  adsType String?
  clickControl Int?
  googleAppId String?
  googleAppOpenAddCode String?
  googleBannerAdsCode String?
  googleInterstitialAdsCode String?
  googleNativeAdsCode String?
  googleRewardedAdsCode String?
  versionName String?
  versionCode String?
  forceUpdate Boolean?
  appUrl String?
  buttonText String?
  description String?
  appSettings  AppSettings  @relation(fields: [iosSettingsId], references: [id], onDelete: Cascade, onUpdate: Cascade)
}