mirror of https://github.com/ghostfolio/ghostfolio
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							201 lines
						
					
					
						
							4.6 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							201 lines
						
					
					
						
							4.6 KiB
						
					
					
				
								// This is your Prisma schema file,
							 | 
						|
								// learn more about it in the docs: https://pris.ly/d/prisma-schema
							 | 
						|
								
							 | 
						|
								datasource db {
							 | 
						|
								  provider = "postgresql"
							 | 
						|
								  url      = env("DATABASE_URL")
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								generator client {
							 | 
						|
								  provider        = "prisma-client-js"
							 | 
						|
								  binaryTargets   = ["debian-openssl-1.1.x", "native"]
							 | 
						|
								  previewFeatures = ["orderByRelation", "selectRelationCount"]
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Access {
							 | 
						|
								  createdAt     DateTime @default(now())
							 | 
						|
								  GranteeUser   User     @relation(fields: [granteeUserId], name: "accessGet", references: [id])
							 | 
						|
								  granteeUserId String
							 | 
						|
								  id            String   @default(uuid())
							 | 
						|
								  updatedAt     DateTime @updatedAt
							 | 
						|
								  User          User     @relation(fields: [userId], name: "accessGive", references: [id])
							 | 
						|
								  userId        String
							 | 
						|
								
							 | 
						|
								  @@id([id, userId])
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Account {
							 | 
						|
								  accountType AccountType @default(SECURITIES)
							 | 
						|
								  balance     Float       @default(0)
							 | 
						|
								  createdAt   DateTime    @default(now())
							 | 
						|
								  currency    Currency    @default(USD)
							 | 
						|
								  id          String      @default(uuid())
							 | 
						|
								  isDefault   Boolean     @default(false)
							 | 
						|
								  name        String?
							 | 
						|
								  Order       Order[]
							 | 
						|
								  Platform    Platform?   @relation(fields: [platformId], references: [id])
							 | 
						|
								  platformId  String?
							 | 
						|
								  updatedAt   DateTime    @updatedAt
							 | 
						|
								  User        User        @relation(fields: [userId], references: [id])
							 | 
						|
								  userId      String
							 | 
						|
								
							 | 
						|
								  @@id([id, userId])
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Analytics {
							 | 
						|
								  activityCount Int      @default(0)
							 | 
						|
								  updatedAt     DateTime @updatedAt
							 | 
						|
								  User          User     @relation(fields: [userId], references: [id])
							 | 
						|
								  userId        String   @id
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model AuthDevice {
							 | 
						|
								  createdAt           DateTime @default(now())
							 | 
						|
								  credentialId        Bytes
							 | 
						|
								  credentialPublicKey Bytes
							 | 
						|
								  counter             Int
							 | 
						|
								  id                  String   @id @default(uuid())
							 | 
						|
								  updatedAt           DateTime @updatedAt
							 | 
						|
								  User                User     @relation(fields: [userId], references: [id])
							 | 
						|
								  userId              String
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model MarketData {
							 | 
						|
								  createdAt   DateTime @default(now())
							 | 
						|
								  date        DateTime
							 | 
						|
								  id          String   @default(uuid())
							 | 
						|
								  symbol      String
							 | 
						|
								  marketPrice Float
							 | 
						|
								
							 | 
						|
								  @@unique([date, symbol])
							 | 
						|
								  @@index(fields: [symbol])
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Order {
							 | 
						|
								  Account         Account?       @relation(fields: [accountId, accountUserId], references: [id, userId])
							 | 
						|
								  accountId       String?
							 | 
						|
								  accountUserId   String?
							 | 
						|
								  createdAt       DateTime       @default(now())
							 | 
						|
								  currency        Currency
							 | 
						|
								  dataSource      DataSource     @default(YAHOO)
							 | 
						|
								  date            DateTime
							 | 
						|
								  fee             Float
							 | 
						|
								  id              String         @default(uuid())
							 | 
						|
								  quantity        Float
							 | 
						|
								  symbol          String
							 | 
						|
								  SymbolProfile   SymbolProfile? @relation(fields: [symbolProfileId], references: [id])
							 | 
						|
								  symbolProfileId String?
							 | 
						|
								  type            Type
							 | 
						|
								  unitPrice       Float
							 | 
						|
								  updatedAt       DateTime       @updatedAt
							 | 
						|
								  User            User           @relation(fields: [userId], references: [id])
							 | 
						|
								  userId          String
							 | 
						|
								
							 | 
						|
								  @@id([id, userId])
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Platform {
							 | 
						|
								  Account Account[]
							 | 
						|
								  id      String    @id @default(uuid())
							 | 
						|
								  name    String?
							 | 
						|
								  url     String    @unique
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Property {
							 | 
						|
								  key   String @id
							 | 
						|
								  value String
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Settings {
							 | 
						|
								  currency  Currency?
							 | 
						|
								  viewMode  ViewMode?
							 | 
						|
								  updatedAt DateTime  @updatedAt
							 | 
						|
								  User      User      @relation(fields: [userId], references: [id])
							 | 
						|
								  userId    String    @id
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model SymbolProfile {
							 | 
						|
								  countries  Json?
							 | 
						|
								  createdAt  DateTime   @default(now())
							 | 
						|
								  currency   Currency?
							 | 
						|
								  dataSource DataSource
							 | 
						|
								  id         String     @id @default(uuid())
							 | 
						|
								  name       String?
							 | 
						|
								  Order      Order[]
							 | 
						|
								  updatedAt  DateTime   @updatedAt
							 | 
						|
								  sectors    Json?
							 | 
						|
								  symbol     String
							 | 
						|
								
							 | 
						|
								  @@unique([dataSource, symbol])
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model Subscription {
							 | 
						|
								  createdAt DateTime @default(now())
							 | 
						|
								  expiresAt DateTime
							 | 
						|
								  id        String   @default(uuid())
							 | 
						|
								  updatedAt DateTime @updatedAt
							 | 
						|
								  User      User     @relation(fields: [userId], references: [id])
							 | 
						|
								  userId    String
							 | 
						|
								
							 | 
						|
								  @@id([id, userId])
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								model User {
							 | 
						|
								  Access        Access[]       @relation("accessGet")
							 | 
						|
								  AccessGive    Access[]       @relation(name: "accessGive")
							 | 
						|
								  accessToken   String?
							 | 
						|
								  Account       Account[]
							 | 
						|
								  alias         String?
							 | 
						|
								  Analytics     Analytics?
							 | 
						|
								  authChallenge String?
							 | 
						|
								  AuthDevice    AuthDevice[]
							 | 
						|
								  createdAt     DateTime       @default(now())
							 | 
						|
								  id            String         @id @default(uuid())
							 | 
						|
								  Order         Order[]
							 | 
						|
								  provider      Provider?
							 | 
						|
								  role          Role           @default(USER)
							 | 
						|
								  Settings      Settings?
							 | 
						|
								  Subscription  Subscription[]
							 | 
						|
								  thirdPartyId  String?
							 | 
						|
								  updatedAt     DateTime       @updatedAt
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								enum AccountType {
							 | 
						|
								  CASH
							 | 
						|
								  SECURITIES
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								enum Currency {
							 | 
						|
								  CHF
							 | 
						|
								  EUR
							 | 
						|
								  GBP
							 | 
						|
								  USD
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								enum DataSource {
							 | 
						|
								  ALPHA_VANTAGE
							 | 
						|
								  GHOSTFOLIO
							 | 
						|
								  RAKUTEN
							 | 
						|
								  YAHOO
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								enum ViewMode {
							 | 
						|
								  DEFAULT
							 | 
						|
								  ZEN
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								enum Provider {
							 | 
						|
								  ANONYMOUS
							 | 
						|
								  GOOGLE
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								enum Role {
							 | 
						|
								  ADMIN
							 | 
						|
								  DEMO
							 | 
						|
								  USER
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								enum Type {
							 | 
						|
								  BUY
							 | 
						|
								  SELL
							 | 
						|
								}
							 | 
						|
								
							 |