generator client { provider = "prisma-client" output = "../generated/prisma" } datasource db { provider = "sqlite" } model MonitoredWallet { id String @id @default(cuid()) address String @unique label String? isActive Boolean @default(true) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt leaderPositions LeaderPosition[] copyTrades CopyTrade[] } model LeaderPosition { id String @id @default(cuid()) walletId String wallet MonitoredWallet @relation(fields: [walletId], references: [id], onDelete: Cascade) positionAddress String @unique lbPairAddress String tokenXMint String tokenYMint String lowerBinId Int upperBinId Int strategyType String? status String @default("OPEN") openTxSignature String? closeTxSignature String? openedAt DateTime @default(now()) closedAt DateTime? followerPosition FollowerPosition? copyTrades CopyTrade[] } model FollowerPosition { id String @id @default(cuid()) leaderPositionId String @unique leaderPosition LeaderPosition @relation(fields: [leaderPositionId], references: [id], onDelete: Cascade) positionAddress String @unique lbPairAddress String lowerBinId Int upperBinId Int status String @default("OPEN") amountXDeposited String @default("0") amountYDeposited String @default("0") openedAt DateTime @default(now()) closedAt DateTime? } model CopyTrade { id String @id @default(cuid()) walletId String wallet MonitoredWallet @relation(fields: [walletId], references: [id], onDelete: Cascade) leaderPositionId String? leaderPosition LeaderPosition? @relation(fields: [leaderPositionId], references: [id], onDelete: SetNull) action String leaderTxSignature String followerTxSignature String? lbPairAddress String tokenXMint String? tokenYMint String? leaderAmountX String? leaderAmountY String? leaderMinBinId Int? leaderMaxBinId Int? leaderBpsToRemove Int? followerAmountX String? followerAmountY String? status String @default("PENDING") errorMessage String? detectedAt DateTime @default(now()) executedAt DateTime? } model ActivityLog { id String @id @default(cuid()) type String message String metadata String? createdAt DateTime @default(now()) }