Files
dbis_core/prisma/schema.prisma
2026-01-02 20:27:42 -08:00

10844 lines
388 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// DBIS Core Banking System - Database Schema
// Sovereign-grade financial infrastructure
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
// ============================================================================
// Sovereign Banks & Identity
// ============================================================================
model SovereignBank {
id String @id @default(uuid())
sovereignCode String @unique // OMNL, etc.
name String
bic String? @unique
lei String? @unique
hsmIdentity String? // HSM-backed identity reference
rootSovereignKey String? // RSK reference
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// Relations
accounts BankAccount[]
identities SovereignIdentity[]
fxTrades FxTrade[]
cbdcIssuance CbdcIssuance[]
complianceRecords ComplianceRecord[]
contracts SmartContract[]
isoMessages IsoMessage[]
liquidityPools LiquidityPool[]
creditLines InterbankCreditLine[]
settlementNodes SovereignSettlementNode[]
// Volume X Relations
metaCouncilMembers MetaSovereignCouncilMember[]
privileges SovereignPrivilege[]
faceEconomies FaceEconomy[]
chronoSettlementsSource ChronoSettlement[] @relation("ChronoSettlementSource")
chronoSettlementsDestination ChronoSettlement[] @relation("ChronoSettlementDestination")
// Volume XII Relations
ummcMappings UmmcSovereignMapping[]
temporalCurrencyTransactions TemporalCurrencyTransaction[]
aifxTrades AifxTrade[]
interplanetarySsuTransactions InterplanetarySsuTransaction[]
continuityIdentities SovereignContinuityIdentity[]
// Volume XIV Relations
infiniteLayerIdentities InfiniteLayerIdentity[]
holographicAnchors HolographicAnchor[]
// Supplement B Relations
dsez DigitalSovereignEconomicZone[]
// Volume II: Supranational Relations
supranationalMemberships SupranationalEntityMember[]
// Nostro/Vostro Relations
nostroVostroParticipants NostroVostroParticipant[] @relation("NostroVostroParticipantToSovereignBank")
bondMarketParticipants BondMarketParticipant[] @relation("BondMarketParticipantToSovereignBank")
@@index([sovereignCode])
@@index([bic])
@@map("sovereign_banks")
}
model SovereignIdentity {
id String @id @default(uuid())
sovereignBankId String
identityType String // Master, Treasury, CBDC, Settlement, API
identityKey String // Cryptographic key reference
hsmKeyId String? // HSM key identifier
certificate String? // X.509 certificate
quantumKeyId String? // Reference to quantum-safe cryptographic key
isQuantumEnabled Boolean @default(false) // Whether quantum-safe crypto is enabled
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([sovereignBankId])
@@index([identityType])
@@index([quantumKeyId])
@@map("sovereign_identities")
}
// ============================================================================
// Account Management
// ============================================================================
model BankAccount {
id String @id @default(uuid())
accountNumber String @unique
sovereignBankId String
accountType String // sovereign, treasury, commercial, correspondent, settlement
currencyCode String // ISO 4217
assetType String @default("fiat") // fiat, cbdc, commodity, security
balance Decimal @default(0) @db.Decimal(32, 8)
availableBalance Decimal @default(0) @db.Decimal(32, 8)
reservedBalance Decimal @default(0) @db.Decimal(32, 8)
reserveRequirement Decimal? @db.Decimal(32, 8)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
// Ledger relations
debitEntries LedgerEntry[] @relation("DebitAccount")
creditEntries LedgerEntry[] @relation("CreditAccount")
@@index([sovereignBankId])
@@index([accountNumber])
@@index([accountType])
@@index([currencyCode])
@@map("bank_accounts")
}
// ============================================================================
// Global Ledger System
// ============================================================================
model LedgerEntry {
id String @id @default(uuid())
ledgerId String // Master, Sovereign, or Sub-ledger ID
debitAccountId String
creditAccountId String
amount Decimal @db.Decimal(32, 8)
currencyCode String // ISO 4217
fxRate Decimal? @db.Decimal(32, 12)
assetType String @default("fiat")
transactionType String // Type A-G
referenceId String
timestampUtc DateTime @default(now())
blockHash String // SHA-3 hash
previousHash String? // Previous entry hash for chaining
auditFlag Boolean @default(false)
amlRiskScore Int? @default(0)
status String @default("pending") // pending, posted, settled, reversed
metadata Json? // Additional transaction data
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
debitAccount BankAccount @relation("DebitAccount", fields: [debitAccountId], references: [id])
creditAccount BankAccount @relation("CreditAccount", fields: [creditAccountId], references: [id])
@@index([ledgerId])
@@index([referenceId])
@@index([timestampUtc])
@@index([status])
@@index([blockHash])
@@index([transactionType])
@@map("ledger_entries")
}
// Sub-ledgers
model FxSubLedger {
id String @id @default(uuid())
ledgerEntryId String @unique
fxTradeId String
baseCurrency String
quoteCurrency String
baseAmount Decimal @db.Decimal(32, 8)
quoteAmount Decimal @db.Decimal(32, 8)
fxRate Decimal @db.Decimal(32, 12)
createdAt DateTime @default(now())
@@index([fxTradeId])
@@map("fx_sub_ledger")
}
model SecuritiesSubLedger {
id String @id @default(uuid())
ledgerEntryId String @unique
securityId String
securityType String // bond, equity, tokenized
quantity Decimal @db.Decimal(32, 8)
price Decimal? @db.Decimal(32, 12)
createdAt DateTime @default(now())
@@index([securityId])
@@map("securities_sub_ledger")
}
model CommoditiesSubLedger {
id String @id @default(uuid())
ledgerEntryId String @unique
commodityType String // gold, oil, metals
quantity Decimal @db.Decimal(32, 8)
unit String // oz, barrel, kg
price Decimal? @db.Decimal(32, 12)
createdAt DateTime @default(now())
@@index([commodityType])
@@map("commodities_sub_ledger")
}
model DerivativesSubLedger {
id String @id @default(uuid())
ledgerEntryId String @unique
derivativeType String
notionalAmount Decimal @db.Decimal(32, 8)
markToMarket Decimal? @db.Decimal(32, 12)
createdAt DateTime @default(now())
@@map("derivatives_sub_ledger")
}
model CbdcSubLedger {
id String @id @default(uuid())
ledgerEntryId String @unique
cbdcIssuanceId String
walletId String?
operationType String // mint, burn, transfer
amount Decimal @db.Decimal(32, 8)
createdAt DateTime @default(now())
@@index([cbdcIssuanceId])
@@index([walletId])
@@map("cbdc_sub_ledger")
}
model CustodySubLedger {
id String @id @default(uuid())
ledgerEntryId String @unique
custodianId String
assetType String
quantity Decimal @db.Decimal(32, 8)
createdAt DateTime @default(now())
@@index([custodianId])
@@map("custody_sub_ledger")
}
model CollateralSubLedger {
id String @id @default(uuid())
ledgerEntryId String @unique
collateralType String
pledgedAmount Decimal @db.Decimal(32, 8)
valuation Decimal @db.Decimal(32, 12)
createdAt DateTime @default(now())
@@map("collateral_sub_ledger")
}
// ============================================================================
// FX Engine
// ============================================================================
model FxPair {
id String @id @default(uuid())
baseCurrency String
quoteCurrency String
pairCode String @unique // OMF/USD
pricingMethod String // VWAP, TWAP, DBIS_SCI
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
trades FxTrade[]
@@index([pairCode])
@@index([baseCurrency, quoteCurrency])
@@map("fx_pairs")
}
model FxTrade {
id String @id @default(uuid())
tradeId String @unique
sovereignBankId String
fxPairId String
baseCurrency String
quoteCurrency String
tradeType String // spot, forward, swap, option, cbdc_cross_chain
quantity Decimal @db.Decimal(32, 8)
price Decimal @db.Decimal(32, 12)
orderType String // market, limit, stop, sovereign
initiatorEntity String
counterpartyEntity String?
settlementMode String // RTGS, T+1, atomic
status String @default("pending") // pending, executed, settled, cancelled
timestampUtc DateTime @default(now())
executedAt DateTime?
settledAt DateTime?
metadata Json?
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id])
fxPair FxPair @relation(fields: [fxPairId], references: [id])
@@index([sovereignBankId])
@@index([tradeId])
@@index([status])
@@index([timestampUtc])
@@map("fx_trades")
}
model LiquidityPool {
id String @id @default(uuid())
sovereignBankId String
currencyCode String
totalLiquidity Decimal @db.Decimal(32, 8)
availableLiquidity Decimal @db.Decimal(32, 8)
reservedLiquidity Decimal @db.Decimal(32, 8)
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@unique([sovereignBankId, currencyCode])
@@index([sovereignBankId])
@@map("liquidity_pools")
}
// ============================================================================
// CBDC System
// ============================================================================
model CbdcIssuance {
id String @id @default(uuid())
recordId String @unique
sovereignBankId String
walletId String?
amountMinted Decimal @default(0) @db.Decimal(32, 8)
amountBurned Decimal @default(0) @db.Decimal(32, 8)
netChange Decimal @default(0) @db.Decimal(32, 8)
operationType String // mint, burn, transfer
operatorIdentity String
reserveBacking Decimal? @db.Decimal(32, 8) // 1:1 backing verification
timestampUtc DateTime @default(now())
metadata Json?
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([sovereignBankId])
@@index([walletId])
@@index([timestampUtc])
@@map("cbdc_issuance")
}
model CbdcWallet {
id String @id @default(uuid())
walletId String @unique
sovereignBankId String
walletType String // retail, wholesale, institutional
currencyCode String
balance Decimal @default(0) @db.Decimal(32, 8)
status String @default("active")
tieredAccess Json? // Access control configuration
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([sovereignBankId])
@@index([walletType])
@@map("cbdc_wallets")
}
model CbdcOfflineCapsule {
id String @id @default(uuid())
capsuleId String @unique
senderWalletId String
receiverWalletId String
amount Decimal @db.Decimal(32, 8)
timestamp DateTime
expiryWindow Int // Allowed time window in seconds
doubleSpendToken String @unique
signature String
status String @default("pending") // pending, validated, synced, rejected
syncedAt DateTime?
createdAt DateTime @default(now())
@@index([capsuleId])
@@index([doubleSpendToken])
@@index([status])
@@map("cbdc_offline_capsules")
}
// ============================================================================
// Securities & Commodities
// ============================================================================
model Security {
id String @id @default(uuid())
securityId String @unique
securityType String // bond, equity, tokenized
issuer String
currencyCode String
quantity Decimal @db.Decimal(32, 8)
price Decimal? @db.Decimal(32, 12)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([securityId])
@@index([securityType])
@@map("securities")
}
model Commodity {
id String @id @default(uuid())
commodityType String // gold, oil, metals
unit String // oz, barrel, kg
spotPrice Decimal @db.Decimal(32, 12)
priceSource String
lastUpdated DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([commodityType, unit])
@@index([commodityType])
@@map("commodities")
}
// ============================================================================
// Compliance & Risk
// ============================================================================
model ComplianceRecord {
id String @id @default(uuid())
sovereignBankId String
transactionId String?
recordType String // aml_check, sanctions_screening, pep_check, risk_score
entityName String?
entityType String?
riskScore Int @default(0)
status String @default("clear") // clear, flagged, blocked
screeningResult Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([sovereignBankId])
@@index([transactionId])
@@index([recordType])
@@index([status])
@@map("compliance_records")
}
model SuspiciousActivityReport {
id String @id @default(uuid())
reportId String @unique
transactionId String?
reportType String // SAR, STR
severity String // low, medium, high, critical
description String
status String @default("pending") // pending, submitted, acknowledged
submittedAt DateTime?
createdAt DateTime @default(now())
@@index([reportId])
@@index([status])
@@map("suspicious_activity_reports")
}
model SanctionsList {
id String @id @default(uuid())
entityName String
entityType String // individual, organization, country
listSource String // OFAC, EU, UN
listId String
status String @default("active")
effectiveDate DateTime
expiryDate DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([entityName])
@@index([listSource])
@@index([status])
@@map("sanctions_lists")
}
// ============================================================================
// Smart Contracts
// ============================================================================
model SmartContract {
id String @id @default(uuid())
contractId String @unique
sovereignBankId String
templateType String // FX_SWAP, LETTER_OF_CREDIT, SOVEREIGN_GUARANTEE, CBDC_CONDITIONAL, COMMODITY_REDEMPTION
contractState String @default("draft") // draft, active, executed, expired, cancelled
parameters Json
signatories Json // Array of required signatories
signatures Json? // Collected signatures
executionResult Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
executedAt DateTime?
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([sovereignBankId])
@@index([contractId])
@@index([templateType])
@@index([contractState])
@@map("smart_contracts")
}
// ============================================================================
// ISO 20022 Messages
// ============================================================================
model IsoMessage {
id String @id @default(uuid())
messageId String @unique
sovereignBankId String
messageType String // PACS.008, PACS.002, CAMT.053, FXMT.001, etc.
direction String // inbound, outbound
status String @default("pending") // pending, processed, failed, acknowledged
rawMessage String @db.Text
parsedData Json?
dbisExtensions Json? // SOV-ID, MACI, CBDC-MODE
hsmSignature String?
createdAt DateTime @default(now())
processedAt DateTime?
acknowledgedAt DateTime?
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([sovereignBankId])
@@index([messageId])
@@index([messageType])
@@index([status])
@@index([createdAt])
@@map("iso_messages")
}
// ============================================================================
// Treasury & Liquidity
// ============================================================================
model InterbankCreditLine {
id String @id @default(uuid())
sovereignBankId String
counterpartyBankId String
creditLimit Decimal @db.Decimal(32, 8)
usedAmount Decimal @default(0) @db.Decimal(32, 8)
availableAmount Decimal @db.Decimal(32, 8)
currencyCode String
status String @default("active")
expiryDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([sovereignBankId])
@@index([counterpartyBankId])
@@map("interbank_credit_lines")
}
model LiquidityForecast {
id String @id @default(uuid())
sovereignBankId String
forecastDate DateTime
forecastType String // daily, weekly, monthly
lcr Decimal? @db.Decimal(32, 8) // Liquidity Coverage Ratio
nsfr Decimal? @db.Decimal(32, 8) // Net Stable Funding Ratio
hqla Decimal? @db.Decimal(32, 8) // High-Quality Liquid Assets
forecastData Json
createdAt DateTime @default(now())
@@index([sovereignBankId])
@@index([forecastDate])
@@map("liquidity_forecasts")
}
// ============================================================================
// ICC Trade Finance
// ============================================================================
model LetterOfCredit {
id String @id @default(uuid())
lcId String @unique
applicantBankId String
beneficiaryBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
expiryDate DateTime
status String @default("issued") // issued, presented, accepted, rejected, expired
documents Json? // eUCP 2.0 compliant documents
contractReference String? // Smart contract reference
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([lcId])
@@index([status])
@@map("letters_of_credit")
}
model SovereignGuarantee {
id String @id @default(uuid())
guaranteeId String @unique
guarantorBankId String
beneficiaryBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
guaranteeType String // demand_guarantee, bank_guarantee
expiryDate DateTime
status String @default("active") // active, invoked, expired, cancelled
contractReference String? // Smart contract reference
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([guaranteeId])
@@index([status])
@@map("sovereign_guarantees")
}
// ============================================================================
// Governance & Rulebook
// ============================================================================
model RulebookRule {
id String @id @default(uuid())
ruleId String @unique
ruleCategory String // eligibility, liquidity, settlement, default
ruleName String
ruleDescription String @db.Text
ruleLogic Json // Rule evaluation logic
status String @default("active")
effectiveDate DateTime
expiryDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([ruleCategory])
@@index([status])
@@map("rulebook_rules")
}
model DefaultEvent {
id String @id @default(uuid())
eventId String @unique
sovereignBankId String
eventType String // technical_default, liquidity_default, reserve_breach
severity String // low, medium, high, critical
status String @default("active") // active, resolved, escalated
description String @db.Text
resolutionActions Json?
createdAt DateTime @default(now())
resolvedAt DateTime?
@@index([sovereignBankId])
@@index([eventType])
@@index([status])
@@map("default_events")
}
// ============================================================================
// Audit & Monitoring
// ============================================================================
model AuditLog {
id String @id @default(uuid())
eventType String
entityType String
entityId String
action String
actorId String?
actorType String?
details Json?
timestamp DateTime @default(now())
ipAddress String?
userAgent String?
@@index([eventType])
@@index([entityType, entityId])
@@index([timestamp])
@@map("audit_logs")
}
// ============================================================================
// DBIS Volume II: Constitution & Governance
// ============================================================================
model ConstitutionArticle {
id String @id @default(uuid())
articleNumber String // I, II, III, etc.
articleTitle String
section String? // 1.1, 1.2, etc.
content String @db.Text
version Int @default(1)
effectiveDate DateTime
expiryDate DateTime?
status String @default("active") // active, superseded, archived
metadata Json? // Additional legal references
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([articleNumber])
@@index([version])
@@index([status])
@@map("constitution_articles")
}
model GovernanceBody {
id String @id @default(uuid())
bodyType String // BoardOfGovernors, MSC, CAA, SCC
name String
description String @db.Text
memberCount Int?
votingMechanism String // simple_majority, supermajority_2_3, unanimous
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
members GovernanceBodyMember[]
votingRecords VotingRecord[]
@@index([bodyType])
@@index([status])
@@map("governance_bodies")
}
model GovernanceBodyMember {
id String @id @default(uuid())
governanceBodyId String
sovereignBankId String?
memberName String
memberRole String // Governor, Officer, Auditor, etc.
votingWeight Decimal? @db.Decimal(32, 8) // Calculated based on liquidity + stability
status String @default("active")
appointedAt DateTime @default(now())
termEndDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
governanceBody GovernanceBody @relation(fields: [governanceBodyId], references: [id], onDelete: Cascade)
@@index([governanceBodyId])
@@index([sovereignBankId])
@@map("governance_body_members")
}
model VotingRecord {
id String @id @default(uuid())
governanceBodyId String
proposalId String @unique
proposalType String // amendment, operational_update, membership_change, liquidity_guarantee
proposalTitle String
proposalContent String @db.Text
requiredVoteType String // simple_majority, supermajority_2_3, unanimous
status String @default("pending") // pending, approved, rejected, withdrawn
votesFor Int @default(0)
votesAgainst Int @default(0)
votesAbstain Int @default(0)
totalVotingWeight Decimal @default(0) @db.Decimal(32, 8)
votingDeadline DateTime?
votedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
governanceBody GovernanceBody @relation(fields: [governanceBodyId], references: [id])
votes Vote[]
@@index([governanceBodyId])
@@index([proposalId])
@@index([status])
@@map("voting_records")
}
model Vote {
id String @id @default(uuid())
votingRecordId String
memberId String
vote String // for, against, abstain
votingWeight Decimal @db.Decimal(32, 8)
timestamp DateTime @default(now())
votingRecord VotingRecord @relation(fields: [votingRecordId], references: [id], onDelete: Cascade)
@@index([votingRecordId])
@@index([memberId])
@@map("votes")
}
model DisputeResolution {
id String @id @default(uuid())
disputeId String @unique
sovereignBankId1 String
sovereignBankId2 String
disputeType String // settlement, fx, liquidity, compliance
description String @db.Text
stage String @default("bilateral") // bilateral, caa_mediation, binding_arbitration
status String @default("active") // active, resolved, escalated
resolution String? @db.Text
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([disputeId])
@@index([sovereignBankId1])
@@index([sovereignBankId2])
@@index([stage])
@@index([status])
@@map("dispute_resolutions")
}
// ============================================================================
// DBIS Volume II: Quantum-Safe Cryptography
// ============================================================================
model QuantumMigrationPhase {
id String @id @default(uuid())
phaseNumber Int // 1, 2, 3
phaseName String // Phase I - Hybrid, Phase II - Full PQC, Phase III - Quantum-Native
description String @db.Text
targetComponents Json // Array of components to migrate
status String @default("planned") // planned, in_progress, completed
startDate DateTime?
completionDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
migrations MigrationAudit[]
@@index([phaseNumber])
@@index([status])
@@map("quantum_migration_phases")
}
model CryptographicKey {
id String @id @default(uuid())
keyId String @unique
keyType String // ecc_521, pqc_kyber, pqc_dilithium, hybrid, xmss, sphincs_plus
keyPurpose String // ledger_hashing, api_signature, cbdc_capsule, smart_contract, sovereign_identity
publicKey String @db.Text
privateKeyRef String? // Reference to HSM-stored private key
hsmKeyId String? // HSM key identifier
algorithm String // CRYSTALS-Kyber, CRYSTALS-Dilithium, ECC-521, etc.
keySize Int? // Key size in bits
status String @default("active") // active, rotated, revoked
createdAt DateTime @default(now())
rotatedAt DateTime?
expiresAt DateTime?
@@index([keyId])
@@index([keyType])
@@index([keyPurpose])
@@index([status])
@@map("cryptographic_keys")
}
model MigrationAudit {
id String @id @default(uuid())
phaseId String
componentType String // ledger, api, cbdc, smart_contract, identity
componentId String
migrationStatus String // pending, in_progress, completed, failed
oldKeyId String?
newKeyId String?
migrationDate DateTime?
notes String? @db.Text
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
phase QuantumMigrationPhase @relation(fields: [phaseId], references: [id], onDelete: Cascade)
@@index([phaseId])
@@index([componentType])
@@index([componentId])
@@index([migrationStatus])
@@map("migration_audits")
}
// ============================================================================
// DBIS Volume II: Sovereign Risk Index (SRI)
// ============================================================================
model SovereignRiskIndex {
id String @id @default(uuid())
sovereignBankId String
sriScore Decimal @db.Decimal(32, 8) // 0-100 scale
sriRating String // AAA, AA, A, BBB, BB, B, CCC
calculatedAt DateTime @default(now())
effectiveDate DateTime @default(now())
status String @default("active") // active, historical
metadata Json? // Calculation details
inputs SRIInput[]
enforcements SRIEnforcement[]
@@index([sovereignBankId])
@@index([sriScore])
@@index([sriRating])
@@index([calculatedAt])
@@map("sovereign_risk_indices")
}
model SRIInput {
id String @id @default(uuid())
sriId String
inputCategory String // financial_stability, fx_commodity, operational
inputType String // SLCR, NSFR_S, cross_border_exposure, fx_volatility_30d, fx_volatility_90d, commodity_reserve, settlement_failure_rate, aml_compliance, cyber_defense
inputValue Decimal @db.Decimal(32, 8)
weight Decimal? @db.Decimal(32, 8) // Weight in calculation
source String? // Data source
timestamp DateTime @default(now())
sri SovereignRiskIndex @relation(fields: [sriId], references: [id], onDelete: Cascade)
@@index([sriId])
@@index([inputCategory])
@@index([inputType])
@@map("sri_inputs")
}
model SRIEnforcement {
id String @id @default(uuid())
sriId String
sovereignBankId String
triggerLevel String // sri_40, sri_60
enforcementType String // liquidity_requirement, fx_stabilization, enhanced_monitoring, crisis_protocol, liquidity_injection, settlement_restriction
action String @db.Text
status String @default("active") // active, executed, resolved
executedAt DateTime?
resolvedAt DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sri SovereignRiskIndex @relation(fields: [sriId], references: [id], onDelete: Cascade)
@@index([sriId])
@@index([sovereignBankId])
@@index([triggerLevel])
@@index([status])
@@map("sri_enforcements")
}
// ============================================================================
// DBIS Volume II: Accounting & Reporting Standards
// ============================================================================
model ConsolidatedStatement {
id String @id @default(uuid())
statementId String @unique
statementType String // CSLR, CrossBorderExposure, CBDCReserveAdequacy
reportDate DateTime
periodStart DateTime
periodEnd DateTime
status String @default("draft") // draft, final, published
statementData Json // Consolidated data
publishedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([statementId])
@@index([statementType])
@@index([reportDate])
@@index([status])
@@map("consolidated_statements")
}
model SovereignReport {
id String @id @default(uuid())
sovereignBankId String
reportId String @unique
reportType String // daily_liquidity, weekly_fx_reserve, monthly_aml_compliance, quarterly_cbdc_audit
reportPeriod String // daily, weekly, monthly, quarterly
reportDate DateTime
dueDate DateTime
status String @default("pending") // pending, submitted, reviewed, overdue
reportData Json // Report data
submittedAt DateTime?
reviewedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([sovereignBankId])
@@index([reportId])
@@index([reportType])
@@index([reportDate])
@@index([status])
@@map("sovereign_reports")
}
model ValuationRule {
id String @id @default(uuid())
ruleId String @unique
assetType String // fiat, cbdc, commodity, security, derivative
valuationMethod String // fair_value, commodity_feed, fx_reference_rate
feedSource String? // Data feed source
updateFrequency String // real_time, hourly, daily
status String @default("active")
effectiveDate DateTime
expiryDate DateTime?
ruleConfig Json? // Configuration parameters
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([ruleId])
@@index([assetType])
@@index([status])
@@map("valuation_rules")
}
// ============================================================================
// DBIS Volume II: Instant Settlement Network (ISN)
// ============================================================================
model SettlementRoute {
id String @id @default(uuid())
routeId String @unique
sourceBankId String
destinationBankId String
currencyCode String
routeType String // direct, via_intermediary, mesh
intermediaryBankIds Json? // Array of intermediary bank IDs
liquidityProximity Decimal? @db.Decimal(32, 8)
trustWeight Decimal? @db.Decimal(32, 8)
fxCost Decimal? @db.Decimal(32, 12)
estimatedLatency Int? // Milliseconds
// SIRE extensions
sireCost Decimal? @db.Decimal(32, 12) // Total SIRE calculated cost
sriRiskScore Decimal? @db.Decimal(32, 8)
liquidityPenalty Decimal? @db.Decimal(32, 8)
ssuAdjustment Decimal? @db.Decimal(32, 8)
status String @default("active")
lastUsedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
routingDecisions SireRoutingDecision[]
@@index([routeId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([currencyCode])
@@index([status])
@@map("settlement_routes")
}
model AtomicSettlement {
id String @id @default(uuid())
settlementId String @unique
transactionId String?
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String // currency, cbdc, commodity, security
settlementMode String // atomic, rtgs
dualLedgerCommit Boolean @default(false)
sovereignLedgerHash String?
dbisLedgerHash String?
settlementTime Int? // Milliseconds to settle
status String @default("pending") // pending, committed, settled, failed
committedAt DateTime?
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([settlementId])
@@index([transactionId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([status])
@@index([committedAt])
@@map("atomic_settlements")
}
model SyntheticSettlementUnit {
id String @id @default(uuid())
ssuId String @unique
ssuName String
description String @db.Text
underlyingAssets Json // Array of underlying assets
conversionRate Decimal? @db.Decimal(32, 12)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
compositions SsuComposition[]
transactions SsuTransaction[]
redemptionRequests SsuRedemptionRequest[]
@@index([ssuId])
@@index([status])
@@map("synthetic_settlement_units")
}
// ============================================================================
// DBIS Volume II: RegTech Framework
// ============================================================================
model SupervisionRule {
id String @id @default(uuid())
ruleId String @unique
ruleName String
ruleType String // aml_behavior, sanctions_matching, fx_anomaly, transaction_velocity, clustering
ruleLogic Json // Rule evaluation logic
threshold Decimal? @db.Decimal(32, 8)
severity String // low, medium, high, critical
status String @default("active")
effectiveDate DateTime
expiryDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([ruleId])
@@index([ruleType])
@@index([status])
@@map("supervision_rules")
}
model SupervisoryDashboard {
id String @id @default(uuid())
dashboardId String @unique
sovereignBankId String?
dashboardType String // real_time_sri, liquidity_stress, cbdc_penetration, incident_alerts
metrics Json // Dashboard metrics
lastUpdated DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([dashboardId])
@@index([sovereignBankId])
@@index([dashboardType])
@@map("supervisory_dashboards")
}
model ComplianceSandbox {
id String @id @default(uuid())
sandboxId String @unique
sovereignBankId String
scenarioType String // rule_change, aml_scenario, policy_validation
scenarioName String
scenarioConfig Json // Scenario configuration
testResults Json?
status String @default("draft") // draft, running, completed, failed
startedAt DateTime?
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([sandboxId])
@@index([sovereignBankId])
@@index([scenarioType])
@@index([status])
@@map("compliance_sandboxes")
}
// ============================================================================
// DBIS Volume II: Internal Operations & HR
// ============================================================================
model DbisRole {
id String @id @default(uuid())
roleId String @unique
roleName String // Governor, MSC_Officer, CAA_Auditor, Sovereign_Relations_Director, Crisis_Operations_Commander
roleDescription String @db.Text
accessLevel String // tier_1, tier_2, tier_3, tier_4
permissions Json // Array of permissions
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
employees EmployeeCredential[]
@@index([roleId])
@@index([roleName])
@@index([accessLevel])
@@map("dbis_roles")
}
model EmployeeCredential {
id String @id @default(uuid())
employeeId String @unique
roleId String
employeeName String
email String
securityClearance String // tier_1, tier_2, tier_3, tier_4
cryptographicBadgeId String? // Cryptographic identity badge reference
hsmCredentialId String? // HSM-secured credential reference
status String @default("active") // active, suspended, revoked
issuedAt DateTime @default(now())
expiresAt DateTime?
revokedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
role DbisRole @relation(fields: [roleId], references: [id], onDelete: Cascade)
@@index([employeeId])
@@index([roleId])
@@index([securityClearance])
@@index([status])
@@map("employee_credentials")
}
model CrisisProtocol {
id String @id @default(uuid())
protocolId String @unique
protocolName String
crisisType String // fx_collapse, default_event, liquidity_freeze, cyber_attack
escalationChain Json // Array of escalation steps
activationCriteria Json // Criteria for activation
status String @default("active")
effectiveDate DateTime
expiryDate DateTime?
activatedAt DateTime?
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([protocolId])
@@index([crisisType])
@@index([status])
@@map("crisis_protocols")
}
// ============================================================================
// DBIS Volume III: Global Settlement System (GSS)
// ============================================================================
model SovereignSettlementNode {
id String @id @default(uuid())
nodeId String @unique
sovereignBankId String
layer String // layer_1_sovereign, layer_2_master, layer_3_scf, layer_4_fil
nodeType String // SSN (Sovereign Settlement Node)
status String @default("active") // active, suspended, inactive
lastSyncAt DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
masterLedgerEntries GssMasterLedger[]
stateBlocks StateBlock[]
@@index([nodeId])
@@index([sovereignBankId])
@@index([layer])
@@index([status])
@@map("sovereign_settlement_nodes")
}
model GssMasterLedger {
id String @id @default(uuid())
entryId String @unique
nodeId String
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String // fiat, cbdc, commodity, security, synthetic
sovereignSignature String?
dbisSignature String?
dualLedgerCommit Boolean @default(false)
sovereignLedgerHash String?
dbisLedgerHash String?
status String @default("pending") // pending, committed, settled, failed
committedAt DateTime?
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node SovereignSettlementNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([entryId])
@@index([nodeId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([status])
@@index([committedAt])
@@map("gss_master_ledger")
}
model GssLayer {
id String @id @default(uuid())
layerId String @unique
layerNumber Int // 1, 2, 3, 4
layerName String // Sovereign, DBIS Master, Smart Clearing Fabric, Finality & Irreversibility
description String @db.Text
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([layerId])
@@index([layerNumber])
@@map("gss_layers")
}
model StateBlock {
id String @id @default(uuid())
blockId String @unique
nodeId String
transactionPayload Json
sovereignSignature String
hashLock String // SHA3(tx_payload + sovereign_signature)
blockHash String
previousBlockHash String?
status String @default("locked") // locked, unlocked, final
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node SovereignSettlementNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([blockId])
@@index([nodeId])
@@index([hashLock])
@@index([status])
@@map("state_blocks")
}
// ============================================================================
// DBIS Volume III: CBDC Interoperability Matrix (CIM)
// ============================================================================
model CimIdentityMapping {
id String @id @default(uuid())
mappingId String @unique
sourceSovereignBankId String
targetSovereignBankId String
sourceIdentityId String
targetIdentityId String
identityType String // kyc, aml, cbdc_wallet
certificationLevel String // basic, enhanced, sovereign
crossCertificationHash String?
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([mappingId])
@@index([sourceSovereignBankId])
@@index([targetSovereignBankId])
@@index([identityType])
@@map("cim_identity_mappings")
}
model CimInterledgerConversion {
id String @id @default(uuid())
conversionId String @unique
sourceSovereignBankId String
targetSovereignBankId String
sourceCbdcCode String
targetCbdcCode String
amount Decimal @db.Decimal(32, 8)
fxRate Decimal? @db.Decimal(32, 12)
conversionType String // fx_linked, commodity_backed
dualPostingStatus String @default("pending") // pending, scb_posted, dbis_posted, both_posted
scbLedgerHash String?
dbisLedgerHash String?
status String @default("pending") // pending, completed, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([conversionId])
@@index([sourceSovereignBankId])
@@index([targetSovereignBankId])
@@index([status])
@@map("cim_interledger_conversions")
}
model CimContractTemplate {
id String @id @default(uuid())
templateId String @unique
templateCode String // DBIS-CT-001, DBIS-CT-002, etc.
templateName String
templateType String // time_locked, condition_based, cross_border
contractLogic Json // Contract logic definition
validationRules Json // Unified rule validation
status String @default("active")
version Int @default(1)
effectiveDate DateTime
expiryDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([templateId])
@@index([templateCode])
@@index([templateType])
@@index([status])
@@map("cim_contract_templates")
}
model CimOfflineCapsule {
id String @id @default(uuid())
capsuleId String @unique
sourceSovereignBankId String
targetSovereignBankId String
senderWalletId String
receiverWalletId String
amount Decimal @db.Decimal(32, 8)
timestamp DateTime
expiryWindow Int // Allowed time window in seconds
doubleSpendToken String @unique
signature String
crossSovereignRecognition Boolean @default(false)
globalSyncStatus String @default("pending") // pending, recognized, synced, rejected
syncedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([capsuleId])
@@index([doubleSpendToken])
@@index([sourceSovereignBankId])
@@index([targetSovereignBankId])
@@index([globalSyncStatus])
@@map("cim_offline_capsules")
}
// ============================================================================
// DBIS Volume III: Synthetic Settlement Unit (SSU) Extensions
// ============================================================================
model SsuComposition {
id String @id @default(uuid())
ssuId String
currencyWeight Decimal @db.Decimal(32, 8) // 40%
commodityWeight Decimal @db.Decimal(32, 8) // 30%
cbdcWeight Decimal @db.Decimal(32, 8) // 20%
lamWeight Decimal @db.Decimal(32, 8) // 10% (Liquidity Adjustment Mechanism)
topSovereigns Json // Top 10 SCBs
commodities Json // Gold, oil, rare metals
cbdcs Json // Sovereign CBDC tier
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ssu SyntheticSettlementUnit @relation(fields: [ssuId], references: [id], onDelete: Cascade)
@@index([ssuId])
@@map("ssu_compositions")
}
model SsuTransaction {
id String @id @default(uuid())
transactionId String @unique
ssuId String
transactionType String // mint, burn, settle, redeem, recycle
amount Decimal @db.Decimal(32, 8)
sourceBankId String?
destinationBankId String?
settlementId String?
status String @default("pending") // pending, completed, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ssu SyntheticSettlementUnit @relation(fields: [ssuId], references: [id], onDelete: Cascade)
@@index([transactionId])
@@index([ssuId])
@@index([transactionType])
@@index([status])
@@map("ssu_transactions")
}
model SsuRedemptionRequest {
id String @id @default(uuid())
requestId String @unique
ssuId String
sovereignBankId String
amount Decimal @db.Decimal(32, 8)
targetAssetType String // currency, commodity, cbdc
targetCurrencyCode String?
status String @default("pending") // pending, approved, processed, rejected
processedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ssu SyntheticSettlementUnit @relation(fields: [ssuId], references: [id], onDelete: Cascade)
@@index([requestId])
@@index([ssuId])
@@index([sovereignBankId])
@@index([status])
@@map("ssu_redemption_requests")
}
// ============================================================================
// DBIS Volume III: Commodity-Backed Digital System (CBDS)
// ============================================================================
model CommodityDigitalToken {
id String @id @default(uuid())
cdtId String @unique
commodityType String // GOLD, SILVER, PLATINUM, OIL, GAS, AGRICULTURAL
weight Decimal @db.Decimal(32, 8) // e.g., 1.000 troy ounce
unit String // troy_ounce, barrel, kg
reserveCertificateId String
custodianId String
sovereignIssuerId String
timestamp DateTime @default(now())
signature String // HSM signature
status String @default("active") // active, burned, redeemed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reserveCertificate CommodityReserveCertificate @relation(fields: [reserveCertificateId], references: [id])
custodian CommodityCustodian @relation(fields: [custodianId], references: [id])
transactions CdtTransaction[]
@@index([cdtId])
@@index([commodityType])
@@index([reserveCertificateId])
@@index([custodianId])
@@index([status])
@@map("commodity_digital_tokens")
}
model CommodityReserveCertificate {
id String @id @default(uuid())
certificateId String @unique
commodityType String
quantity Decimal @db.Decimal(32, 8)
unit String
custodianId String
certificateHash String // HASH256(...)
verificationStatus String @default("pending") // pending, verified, rejected
auditDate DateTime?
nextAuditDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
custodian CommodityCustodian @relation(fields: [custodianId], references: [id])
cdts CommodityDigitalToken[]
@@index([certificateId])
@@index([certificateHash])
@@index([custodianId])
@@index([verificationStatus])
@@map("commodity_reserve_certificates")
}
model CdtTransaction {
id String @id @default(uuid())
transactionId String @unique
cdtId String
transactionType String // transfer, burn, exchange_cbdc, cross_commodity_swap
sourceBankId String?
destinationBankId String?
targetAssetType String? // cbdc, commodity, ssu
targetAssetId String?
amount Decimal @db.Decimal(32, 8)
status String @default("pending") // pending, completed, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
cdt CommodityDigitalToken @relation(fields: [cdtId], references: [id], onDelete: Cascade)
@@index([transactionId])
@@index([cdtId])
@@index([transactionType])
@@index([status])
@@map("cdt_transactions")
}
model CommodityCustodian {
id String @id @default(uuid())
custodianId String @unique
custodianName String
entityType String // approved_entity, sovereign_custodian
approvalStatus String @default("pending") // pending, approved, suspended
approvalDate DateTime?
commoditiesHandled Json // Array of commodity types
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
certificates CommodityReserveCertificate[]
cdts CommodityDigitalToken[]
@@index([custodianId])
@@map("commodity_custodians")
}
// ============================================================================
// DBIS Volume III: Global Liquidity Pool (GLP)
// ============================================================================
model GlobalLiquidityPool {
id String @id @default(uuid())
poolId String @unique
totalLiquidity Decimal @default(0) @db.Decimal(32, 8)
availableLiquidity Decimal @default(0) @db.Decimal(32, 8)
reservedLiquidity Decimal @default(0) @db.Decimal(32, 8)
currencyCode String?
assetType String // multi_asset
lastUpdated DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contributions GlpContribution[]
withdrawals GlpWithdrawal[]
@@index([poolId])
@@map("global_liquidity_pools")
}
model GlpContribution {
id String @id @default(uuid())
contributionId String @unique
poolId String
sovereignBankId String
contributionType String // scb_reserve, commodity_reserve, cbdc_liquidity, dbis_stabilization
amount Decimal @db.Decimal(32, 8)
currencyCode String?
assetType String?
status String @default("pending") // pending, confirmed, failed
confirmedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pool GlobalLiquidityPool @relation(fields: [poolId], references: [id], onDelete: Cascade)
@@index([contributionId])
@@index([poolId])
@@index([sovereignBankId])
@@index([status])
@@map("glp_contributions")
}
model GlpWithdrawal {
id String @id @default(uuid())
withdrawalId String @unique
poolId String
sovereignBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String?
withdrawalTier String // tier_1_automatic, tier_2_assisted, tier_3_crisis_intervention
liquidityScore Decimal? @db.Decimal(32, 8)
triggerCondition String? // <85% liquidity score, msc_approval, scc_activation
approvalEntityId String?
approvalStatus String @default("pending") // pending, approved, rejected, executed
approvedAt DateTime?
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pool GlobalLiquidityPool @relation(fields: [poolId], references: [id], onDelete: Cascade)
@@index([withdrawalId])
@@index([poolId])
@@index([sovereignBankId])
@@index([withdrawalTier])
@@map("glp_withdrawals")
}
model LiquidityScore {
id String @id @default(uuid())
scoreId String @unique
sovereignBankId String
score Decimal @db.Decimal(32, 8) // 0-100 scale
bufferLevel Decimal? @db.Decimal(32, 8)
riskFactors Json? // Risk factors affecting score
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([scoreId])
@@index([sovereignBankId])
@@index([score])
@@index([calculatedAt])
@@map("liquidity_scores")
}
// ============================================================================
// DBIS Volume III: Cross-Chain Settlement
// ============================================================================
model CrossChainSettlement {
id String @id @default(uuid())
settlementId String @unique
sourceChainType String // dbis_sovereign, scb_cbdc, commodity_tokenization, security_token
sourceChainId String
targetChainType String
targetChainId String
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
assetType String
status String @default("pending") // pending, verified, committed, settled, failed
committedAt DateTime?
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
commitments CrossChainCommitment[]
chainHeaders ChainHeader[]
@@index([settlementId])
@@index([sourceChainType])
@@index([targetChainType])
@@index([sourceBankId])
@@index([status])
@@map("cross_chain_settlements")
}
model ChainHeader {
id String @id @default(uuid())
headerId String @unique
settlementId String
chainType String
chainId String
blockNumber String?
blockHash String
previousBlockHash String?
timestamp DateTime
verificationStatus String @default("pending") // pending, verified, rejected
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement CrossChainSettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([headerId])
@@index([settlementId])
@@index([chainType])
@@index([blockHash])
@@index([verificationStatus])
@@map("chain_headers")
}
model CrossChainCommitment {
id String @id @default(uuid())
commitmentId String @unique
settlementId String
chainId String // SCB1, SCB2, DBIS
commitmentHash String
commitmentType String // scb1_commit, scb2_commit, dbis_commit
status String @default("pending") // pending, committed, verified
committedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement CrossChainSettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([commitmentId])
@@index([settlementId])
@@index([chainId])
@@index([commitmentType])
@@map("cross_chain_commitments")
}
// ============================================================================
// DBIS Volume III: Sovereign Interoperability Routing Engine (SIRE)
// ============================================================================
model SireRoutingDecision {
id String @id @default(uuid())
decisionId String @unique
sourceBankId String
destinationBankId String
routeId String?
routeType String // scb_to_scb, scb_to_dbis_to_scb, scb_to_dbis_to_private_bank
optimalRoute Json // Calculated optimal route
fxCost Decimal? @db.Decimal(32, 12)
sriRiskScore Decimal? @db.Decimal(32, 8)
liquidityPenalty Decimal? @db.Decimal(32, 8)
ssuAdjustment Decimal? @db.Decimal(32, 8)
totalCost Decimal @db.Decimal(32, 12)
decisionTimestamp DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
route SettlementRoute? @relation(fields: [routeId], references: [id])
metrics SireRoutingMetrics?
@@index([decisionId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([routeId])
@@map("sire_routing_decisions")
}
model SireRoutingMetrics {
id String @id @default(uuid())
metricsId String @unique
decisionId String @unique
fxVolatility Decimal? @db.Decimal(32, 12)
liquidityBufferLevel Decimal? @db.Decimal(32, 8)
sriScore Decimal? @db.Decimal(32, 8)
syntheticSettlementCost Decimal? @db.Decimal(32, 12)
commodityIndex Json? // Commodity index values
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
decision SireRoutingDecision @relation(fields: [decisionId], references: [id], onDelete: Cascade)
@@index([metricsId])
@@index([decisionId])
@@map("sire_routing_metrics")
}
// ============================================================================
// DBIS Volume IV: Global Derivatives Settlement Layer (GDSL)
// ============================================================================
model DerivativeContract {
id String @id @default(uuid())
contractId String @unique
derivativeType String // irs, fx_forward, fx_swap, sovereign_cds, oil_future, gold_swap, agricultural_forward, cbdc_liquidity_future, synthetic_ssu_option, tokenized_bond_future
party1BankId String
party2BankId String
notionalAmount Decimal @db.Decimal(32, 8)
contractTerms Json // Contract terms and parameters
smartContractId String? // Reference to smart contract
status String @default("active") // active, expired, terminated, settled
initiatedAt DateTime @default(now())
maturityDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
margins DerivativeMargin[]
settlements DerivativeSettlement[]
collaterals DerivativeCollateral[]
@@index([contractId])
@@index([derivativeType])
@@index([party1BankId])
@@index([party2BankId])
@@index([status])
@@map("derivative_contracts")
}
model DerivativeMargin {
id String @id @default(uuid())
marginId String @unique
contractId String
marginType String // initial_margin, variation_margin
amount Decimal @db.Decimal(32, 8)
exposure Decimal? @db.Decimal(32, 8)
volatility Decimal? @db.Decimal(32, 12)
sriFactor Decimal? @db.Decimal(32, 12)
markToMarket Decimal? @db.Decimal(32, 12)
previousMarkToMarket Decimal? @db.Decimal(32, 12)
calculatedAt DateTime @default(now())
status String @default("pending") // pending, posted, settled
postedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contract DerivativeContract @relation(fields: [contractId], references: [id], onDelete: Cascade)
@@index([marginId])
@@index([contractId])
@@index([marginType])
@@index([status])
@@map("derivative_margins")
}
model DerivativeSettlement {
id String @id @default(uuid())
settlementId String @unique
contractId String
settlementAmount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String // fiat, cbdc, commodity, security
hashLock String // Hash-lock for finality
sovereignLedgerHash String?
dbisLedgerHash String?
dualLedgerCommit Boolean @default(false)
status String @default("pending") // pending, committed, settled, final
committedAt DateTime?
settledAt DateTime?
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contract DerivativeContract @relation(fields: [contractId], references: [id], onDelete: Cascade)
@@index([settlementId])
@@index([contractId])
@@index([hashLock])
@@index([status])
@@map("derivative_settlements")
}
model DerivativeCollateral {
id String @id @default(uuid())
collateralId String @unique
contractId String
assetType String // fiat, cbdc, commodity, security, ssu
assetId String?
amount Decimal @db.Decimal(32, 8)
valuation Decimal @db.Decimal(32, 12)
haircut Decimal? @db.Decimal(32, 12)
status String @default("active") // active, released, liquidated
allocatedAt DateTime @default(now())
releasedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contract DerivativeContract @relation(fields: [contractId], references: [id], onDelete: Cascade)
@@index([collateralId])
@@index([contractId])
@@index([assetType])
@@index([status])
@@map("derivative_collaterals")
}
// ============================================================================
// DBIS Volume IV: Inter-SCB Bond Issuance Network (IBIN)
// ============================================================================
model DigitalBond {
id String @id @default(uuid())
bondId String @unique
issuerBankId String
couponRate Decimal @db.Decimal(32, 12) // Percentage
maturityDate DateTime
principal Decimal @db.Decimal(32, 8)
currencyCode String
settlementMode String @default("cbdc") // cbdc, fiat
collateral Json? // Optional commodity or SSU
hsmSignature String // HSM-signed signature
status String @default("issued") // issued, active, matured, redeemed
issuedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
trades BondTrade[]
couponPayments BondCouponPayment[]
@@index([bondId])
@@index([issuerBankId])
@@index([maturityDate])
@@index([status])
@@map("digital_bonds")
}
model BondOrderBook {
id String @id @default(uuid())
orderId String @unique
bondId String
orderType String // buy, sell
price Decimal @db.Decimal(32, 12)
quantity Decimal @db.Decimal(32, 8)
participantBankId String
priority Int // Price-time priority
status String @default("pending") // pending, matched, cancelled, expired
placedAt DateTime @default(now())
matchedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([orderId])
@@index([bondId])
@@index([orderType])
@@index([status])
@@index([priority])
@@map("bond_order_books")
}
model BondTrade {
id String @id @default(uuid())
tradeId String @unique
bondId String
buyerBankId String
sellerBankId String
quantity Decimal @db.Decimal(32, 8)
price Decimal @db.Decimal(32, 12)
tradeAmount Decimal @db.Decimal(32, 8)
settlementId String? // Reference to settlement
status String @default("pending") // pending, settled, failed
tradedAt DateTime @default(now())
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond DigitalBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([tradeId])
@@index([bondId])
@@index([buyerBankId])
@@index([sellerBankId])
@@index([status])
@@map("bond_trades")
}
model BondCouponPayment {
id String @id @default(uuid())
paymentId String @unique
bondId String
couponAmount Decimal @db.Decimal(32, 8)
currencyCode String
paymentDate DateTime
settlementMode String @default("cbdc") // cbdc with FX conversion as needed
sovereignLedgerHash String?
dbisLedgerHash String?
dualLedgerCommit Boolean @default(false)
status String @default("pending") // pending, settled, failed
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond DigitalBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([paymentId])
@@index([bondId])
@@index([paymentDate])
@@index([status])
@@map("bond_coupon_payments")
}
// ============================================================================
// DBIS Volume IV: Digital Sovereign Debt Market (DSDM)
// ============================================================================
model SovereignDebtInstrument {
id String @id @default(uuid())
instrumentId String @unique
issuerBankId String
participantBankId String
instrumentType String // bond, note, bill
amount Decimal @db.Decimal(32, 8)
currencyCode String
maturityDate DateTime
participantType String // scb, supranational, pension_fund, licensed_institution
status String @default("active") // active, matured, redeemed
issuedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([instrumentId])
@@index([issuerBankId])
@@index([participantBankId])
@@index([participantType])
@@index([status])
@@map("sovereign_debt_instruments")
}
model DebtLadder {
id String @id @default(uuid())
ladderId String @unique
sovereignBankId String
maturityDate DateTime
principalAmount Decimal @db.Decimal(32, 8)
currencyCode String
rolloverContractId String? // Reference to rollover contract
status String @default("active") // active, rolled_over, matured
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([ladderId])
@@index([sovereignBankId])
@@index([maturityDate])
@@index([status])
@@map("debt_ladders")
}
model DebtRollover {
id String @id @default(uuid())
rolloverId String @unique
sovereignBankId String
originalLadderId String
newLadderId String?
rolloverAmount Decimal @db.Decimal(32, 8)
currencyCode String
fundingSource String @default("cbdc") // cbdc, fiat
status String @default("pending") // pending, executed, failed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([rolloverId])
@@index([sovereignBankId])
@@index([originalLadderId])
@@index([status])
@@map("debt_rollovers")
}
model PublicMarketOperation {
id String @id @default(uuid())
pmoId String @unique
sovereignBankId String
operationType String // maturity_ladder, rollover, debt_refinancing
operationData Json // Operation configuration
status String @default("pending") // pending, executed, failed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([pmoId])
@@index([sovereignBankId])
@@index([operationType])
@@index([status])
@@map("public_market_operations")
}
// ============================================================================
// DBIS Volume IV: Quantum-Safe CBDC Wallet Standards
// ============================================================================
model QuantumWallet {
id String @id @default(uuid())
walletId String @unique
sovereignBankId String
walletType String // retail, wholesale, institutional
currencyCode String
balance Decimal @default(0) @db.Decimal(32, 8)
dilithiumKeyId String // PQC signature key (Dilithium)
kyberKeyId String // PQC key exchange key (Kyber)
hsmIdentityCert String // HSM-bound identity certificate
waoId String? // Wallet Attestation Object reference
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
attestations WalletAttestationObject[]
capsules QuantumWalletCapsule[]
riskScores WalletRiskScore[]
@@index([walletId])
@@index([sovereignBankId])
@@index([walletType])
@@index([status])
@@map("quantum_wallets")
}
model WalletAttestationObject {
id String @id @default(uuid())
waoId String @unique
walletId String
deviceAttestation Json // Device attestation data
attestationHash String // Hash of attestation
attestationCycle Int // 12-hour cycle number
status String @default("valid") // valid, expired, revoked
attestedAt DateTime @default(now())
expiresAt DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
wallet QuantumWallet @relation(fields: [walletId], references: [id], onDelete: Cascade)
@@index([waoId])
@@index([walletId])
@@index([status])
@@index([attestationCycle])
@@map("wallet_attestation_objects")
}
model QuantumWalletCapsule {
id String @id @default(uuid())
capsuleId String @unique
senderWalletId String
receiverWalletId String
amount Decimal @db.Decimal(32, 8)
timestamp DateTime
expiryWindow Int // Allowed time window in seconds
doubleSpendToken String @unique
pqcSignature String // PQC-secured signature
scbVerification Boolean @default(false)
dbisVerification Boolean @default(false)
status String @default("pending") // pending, validated, synced, rejected
syncedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
wallet QuantumWallet @relation(fields: [senderWalletId], references: [id], onDelete: Cascade)
@@index([capsuleId])
@@index([doubleSpendToken])
@@index([status])
@@map("quantum_wallet_capsules")
}
model WalletRiskScore {
id String @id @default(uuid())
scoreId String @unique
walletId String
riskScore Decimal @db.Decimal(32, 8) // 0-100 scale
riskFactors Json? // Risk factors
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
wallet QuantumWallet @relation(fields: [walletId], references: [id], onDelete: Cascade)
@@index([scoreId])
@@index([walletId])
@@index([calculatedAt])
@@map("wallet_risk_scores")
}
// ============================================================================
// DBIS Volume IV: Settlement Law Codebook
// ============================================================================
model SettlementLawArticle {
id String @id @default(uuid())
articleId String @unique
articleNumber String // 12, 19, 27, etc.
articleTitle String
content String @db.Text
principle String? // Principle 1 (Finality), Principle 2 (Irrevocability), Principle 3 (Multilateral Recognition)
version Int @default(1)
effectiveDate DateTime
expiryDate DateTime?
status String @default("active") // active, superseded, archived
metadata Json? // Additional legal references
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
finalities SettlementFinality[]
disputes SettlementDispute[]
@@index([articleId])
@@index([articleNumber])
@@index([principle])
@@index([status])
@@map("settlement_law_articles")
}
model SettlementFinality {
id String @id @default(uuid())
finalityId String @unique
transactionId String
articleId String
masterLedgerCommit Boolean @default(false)
legalBinding Boolean @default(false)
principle String // Principle 1, 2, or 3
status String @default("pending") // pending, final, disputed
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
article SettlementLawArticle @relation(fields: [articleId], references: [id], onDelete: Cascade)
@@index([finalityId])
@@index([transactionId])
@@index([articleId])
@@index([status])
@@map("settlement_finalities")
}
model SettlementDispute {
id String @id @default(uuid())
disputeId String @unique
transactionId String
articleId String
party1BankId String
party2BankId String
disputeType String // settlement, finality, cross_border
description String @db.Text
stage String @default("bilateral") // bilateral, caa_review, arbitration_tribunal
status String @default("active") // active, resolved, escalated
resolution String? @db.Text
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
article SettlementLawArticle @relation(fields: [articleId], references: [id], onDelete: Cascade)
arbitrations SettlementArbitration[]
@@index([disputeId])
@@index([transactionId])
@@index([articleId])
@@index([stage])
@@index([status])
@@map("settlement_disputes")
}
model SettlementArbitration {
id String @id @default(uuid())
arbitrationId String @unique
disputeId String
tribunalDecision String @db.Text
decisionType String // final, binding, appealable
status String @default("pending") // pending, decided, enforced
decidedAt DateTime?
enforcedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
dispute SettlementDispute @relation(fields: [disputeId], references: [id], onDelete: Cascade)
@@index([arbitrationId])
@@index([disputeId])
@@index([status])
@@map("settlement_arbitrations")
}
// ============================================================================
// DBIS Volume IV: Sovereign Stablecoin Compliance Framework
// ============================================================================
model SovereignStablecoin {
id String @id @default(uuid())
stablecoinId String @unique
issuerBankId String
stablecoinCode String @unique
name String
totalSupply Decimal @default(0) @db.Decimal(32, 8)
collateralizationRatio Decimal @db.Decimal(32, 12) // Must be >= 1.0
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
collaterals StablecoinCollateral[]
reserves StablecoinReserve[]
audits StablecoinAudit[]
@@index([stablecoinId])
@@index([issuerBankId])
@@index([stablecoinCode])
@@index([status])
@@map("sovereign_stablecoins")
}
model StablecoinCollateral {
id String @id @default(uuid())
collateralId String @unique
stablecoinId String
assetType String // cbdc, gold, commodity, security, ssu
assetId String?
amount Decimal @db.Decimal(32, 8)
valuation Decimal @db.Decimal(32, 12)
status String @default("active") // active, released
allocatedAt DateTime @default(now())
releasedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
stablecoin SovereignStablecoin @relation(fields: [stablecoinId], references: [id], onDelete: Cascade)
@@index([collateralId])
@@index([stablecoinId])
@@index([assetType])
@@index([status])
@@map("stablecoin_collaterals")
}
model StablecoinReserve {
id String @id @default(uuid())
reserveId String @unique
stablecoinId String
snapshotDate DateTime
totalReserves Decimal @db.Decimal(32, 8)
totalSupply Decimal @db.Decimal(32, 8)
collateralizationRatio Decimal @db.Decimal(32, 12)
reserveBreakdown Json // Breakdown by asset type
status String @default("pending") // pending, verified, published
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
stablecoin SovereignStablecoin @relation(fields: [stablecoinId], references: [id], onDelete: Cascade)
@@index([reserveId])
@@index([stablecoinId])
@@index([snapshotDate])
@@index([status])
@@map("stablecoin_reserves")
}
model StablecoinAudit {
id String @id @default(uuid())
auditId String @unique
stablecoinId String
auditDate DateTime
auditType String // daily_reserve, hsm_signed, zk_proof
hsmSignature String? // HSM-signed audit
zkProof String? // Zero-knowledge collateral proof
auditResult Json // Audit findings
status String @default("pending") // pending, verified, published
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
stablecoin SovereignStablecoin @relation(fields: [stablecoinId], references: [id], onDelete: Cascade)
@@index([auditId])
@@index([stablecoinId])
@@index([auditDate])
@@index([auditType])
@@index([status])
@@map("stablecoin_audits")
}
// ============================================================================
// DBIS Volume IV: Multi-Asset Collateralization Engine (MACE)
// ============================================================================
model MultiAssetCollateral {
id String @id @default(uuid())
collateralId String @unique
assetType String // fiat, cbdc, commodity, security, ssu
assetId String?
amount Decimal @db.Decimal(32, 8)
valuation Decimal @db.Decimal(32, 12)
haircut Decimal? @db.Decimal(32, 12)
fxCost Decimal? @db.Decimal(32, 12)
liquidityWeight Decimal? @db.Decimal(32, 12)
sriRiskPenalty Decimal? @db.Decimal(32, 12)
optimizationScore Decimal? @db.Decimal(32, 12)
status String @default("active") // active, released, liquidated
allocatedAt DateTime @default(now())
releasedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
optimizations CollateralOptimization[]
@@index([collateralId])
@@index([assetType])
@@index([status])
@@map("multi_asset_collaterals")
}
model CollateralOptimization {
id String @id @default(uuid())
optimizationId String @unique
collateralId String
optimizationType String // allocation, rebalancing, liquidation
optimalAllocation Json // Optimal allocation result
totalCost Decimal @db.Decimal(32, 12) // haircuts + fx_cost + liquidity_weight + risk_penalty
calculationMethod String // argmin optimization
status String @default("pending") // pending, applied, rejected
calculatedAt DateTime @default(now())
appliedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
collateral MultiAssetCollateral @relation(fields: [collateralId], references: [id], onDelete: Cascade)
@@index([optimizationId])
@@index([collateralId])
@@index([optimizationType])
@@index([status])
@@map("collateral_optimizations")
}
model CollateralHaircut {
id String @id @default(uuid())
haircutId String @unique
assetType String // fiat, cbdc, commodity, security, ssu
haircutRate Decimal @db.Decimal(32, 12) // Percentage
effectiveDate DateTime
expiryDate DateTime?
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([haircutId])
@@index([assetType])
@@index([status])
@@map("collateral_haircuts")
}
model CollateralLiquidity {
id String @id @default(uuid())
liquidityId String @unique
assetType String
liquidityWeight Decimal @db.Decimal(32, 12)
liquidityScore Decimal? @db.Decimal(32, 8) // 0-100 scale
effectiveDate DateTime
expiryDate DateTime?
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([liquidityId])
@@index([assetType])
@@index([status])
@@map("collateral_liquidities")
}
// ============================================================================
// DBIS Volume IV: Global DeFi-Integrated Sovereign Layer
// ============================================================================
model DeFiModule {
id String @id @default(uuid())
moduleId String @unique
moduleName String
moduleType String // swap, lending, staking, liquidity_pool
permissionLevel String // permissioned, sovereign_verified
status String @default("pending") // pending, approved, active, suspended
approvalDate DateTime?
approvedBy String? // SCB or DBIS entity
moduleConfig Json // Module configuration
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
nodes DeFiNode[]
pools DeFiLiquidityPool[]
swaps DeFiSwap[]
@@index([moduleId])
@@index([moduleType])
@@index([permissionLevel])
@@index([status])
@@map("defi_modules")
}
model DeFiNode {
id String @id @default(uuid())
nodeId String @unique
moduleId String
sovereignBankId String?
nodeType String // sovereign_verified, dbis_governed
verificationStatus String @default("pending") // pending, verified, revoked
verificationDate DateTime?
nodeAddress String? // Node network address
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
module DeFiModule @relation(fields: [moduleId], references: [id], onDelete: Cascade)
@@index([nodeId])
@@index([moduleId])
@@index([sovereignBankId])
@@index([verificationStatus])
@@index([status])
@@map("defi_nodes")
}
model DeFiLiquidityPool {
id String @id @default(uuid())
poolId String @unique
moduleId String
poolName String
assetTypes Json // Array of asset types in pool
totalLiquidity Decimal @default(0) @db.Decimal(32, 8)
governanceModel String @default("dbis_governed") // dbis_governed, scb_oversight
status String @default("active") // active, paused, closed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
module DeFiModule @relation(fields: [moduleId], references: [id], onDelete: Cascade)
swaps DeFiSwap[]
@@index([poolId])
@@index([moduleId])
@@index([status])
@@map("defi_liquidity_pools")
}
model DeFiSwap {
id String @id @default(uuid())
swapId String @unique
moduleId String
poolId String?
sourceAssetType String
targetAssetType String
sourceAmount Decimal @db.Decimal(32, 8)
targetAmount Decimal @db.Decimal(32, 8)
exchangeRate Decimal @db.Decimal(32, 12)
participantBankId String
scbOversight Boolean @default(true)
onChainTxHash String? // On-chain transaction hash
status String @default("pending") // pending, executed, failed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
module DeFiModule @relation(fields: [moduleId], references: [id], onDelete: Cascade)
pool DeFiLiquidityPool? @relation(fields: [poolId], references: [id])
@@index([swapId])
@@index([moduleId])
@@index([poolId])
@@index([status])
@@map("defi_swaps")
}
// ============================================================================
// DBIS Volume VI: Global Regulatory Harmonization, Sovereign Digital Identity,
// Autonomous Liquidity Systems, AML Pattern Language, and Financial Ontology
// ============================================================================
// UDFO - Unified DBIS Financial Ontology
model UDFOAsset {
id String @id @default(uuid())
assetType String // FIAT, CBDC, SSU, COMMODITY, SECURITY
code String @unique
name String
definition String @db.Text
properties Json
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([assetType])
@@index([code])
@@map("udfo_assets")
}
model UDFOEntity {
id String @id @default(uuid())
entityType String // SCB, BANK, INDIVIDUAL, INSTITUTION, CONTRACT
identifier String @unique
name String
definition String @db.Text
properties Json
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([entityType])
@@index([identifier])
@@map("udfo_entities")
}
model UDFOProcess {
id String @id @default(uuid())
processType String // SETTLEMENT, ISSUANCE, CONVERSION, REDEMPTION, COLLATERALIZATION
code String @unique
name String
definition String @db.Text
inputs String[] // Asset/Entity IDs
outputs String[] // Asset/Entity IDs
triggers String[] // Event triggers
properties Json
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([processType])
@@index([code])
@@map("udfo_processes")
}
model OntologyMapping {
id String @id @default(uuid())
sourceDomain String // ASSET, ENTITY, PROCESS
sourceId String
targetDomain String // ASSET, ENTITY, PROCESS
targetId String
mappingType String
confidence Decimal @db.Decimal(5, 4) // 0-1
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([sourceDomain, sourceId])
@@index([targetDomain, targetId])
@@map("ontology_mappings")
}
// SDIP - Sovereign Digital Identity Passport
model SovereignDigitalIdentityPassport {
id String @id @default(uuid())
passportId String @unique
entityType String // SCB, BANK, PERSON, INSTITUTION, CONTRACT
entityId String // Reference to GBIG identity
sovereignIssuer String // SCB code
rootCert String // HSM signature
pqSignature String // Dilithium signature
trustLevel String // TL0, TL1, TL2, TL3, TL4
expiry DateTime
revocationStatus String @default("ACTIVE") // ACTIVE, REVOKED, EXPIRED
attributes Json
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
revocations SDIPRevocation[]
@@index([passportId])
@@index([entityId])
@@index([sovereignIssuer])
@@index([trustLevel])
@@index([revocationStatus])
@@map("sovereign_digital_identity_passports")
}
model SDIPRevocation {
id String @id @default(uuid())
revocationId String @unique
passportId String
reason String @db.Text
revokedBy String
createdAt DateTime @default(now())
passport SovereignDigitalIdentityPassport @relation(fields: [passportId], references: [id], onDelete: Cascade)
@@index([revocationId])
@@index([passportId])
@@map("sdip_revocations")
}
// GRHS - Global Regulatory Harmonization Suite
model RegulatoryHarmonizationRule {
id String @id @default(uuid())
pillar String // MONETARY, LEGAL, COMPLIANCE, TRADE
ruleCode String
name String
description String @db.Text
requirements String[]
applicableSovereigns String[] // Empty = all
status String @default("ACTIVE") // ACTIVE, DRAFT, SUSPENDED
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([pillar, ruleCode])
@@index([pillar])
@@index([ruleCode])
@@index([status])
@@map("regulatory_harmonization_rules")
}
model RegulatoryEquivalenceScore {
id String @id @default(uuid())
scoreId String @unique
sovereignBankId String
compliance Decimal @db.Decimal(5, 2) // 0-100
transparency Decimal @db.Decimal(5, 2) // 0-100
amlStrength Decimal @db.Decimal(5, 2) // 0-100
cbdcMaturity Decimal @db.Decimal(5, 2) // 0-100
repScore Decimal @db.Decimal(5, 2) // Calculated
equivalent Boolean @default(false) // repScore >= 95%
calculatedAt DateTime @default(now())
@@index([scoreId])
@@index([sovereignBankId])
@@index([equivalent])
@@index([calculatedAt])
@@map("regulatory_equivalence_scores")
}
model HarmonizationCompliance {
id String @id @default(uuid())
sovereignBankId String
pillar String // MONETARY, LEGAL, COMPLIANCE, TRADE
complianceScore Decimal @db.Decimal(5, 2) // 0-100
lastAssessment DateTime
nextAssessment DateTime
issues String[]
status String @default("COMPLIANT") // COMPLIANT, NON_COMPLIANT, PARTIAL
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([sovereignBankId])
@@index([pillar])
@@index([status])
@@map("harmonization_compliance")
}
model FastTrackPrivilege {
id String @id @default(uuid())
privilegeId String @unique
sovereignBankId String
privilegeType String // SETTLEMENT, LIQUIDITY, OVERSIGHT
grantedAt DateTime @default(now())
expiresAt DateTime?
status String @default("ACTIVE") // ACTIVE, REVOKED, EXPIRED
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([privilegeId])
@@index([sovereignBankId])
@@index([privilegeType])
@@index([status])
@@map("fast_track_privileges")
}
// GASE - Global AML & Sanctions Engine
model GlobalSanctionsList {
id String @id @default(uuid())
entityName String
entityType String // individual, organization, country
listSource String // OFAC, EU, UN, etc.
listId String
country String?
status String @default("active")
effectiveDate DateTime
expiryDate DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([entityName, listSource])
@@index([entityName])
@@index([listSource])
@@index([status])
@@map("global_sanctions_lists")
}
model PEPGraphNode {
id String @id @default(uuid())
entityId String @unique
entityName String
pepType String
country String
position String
riskLevel String // LOW, MEDIUM, HIGH
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
edgesFrom PEPGraphEdge[] @relation("FromNode")
edgesTo PEPGraphEdge[] @relation("ToNode")
@@index([entityId])
@@index([entityName])
@@index([country])
@@map("pep_graph_nodes")
}
model PEPGraphEdge {
id String @id @default(uuid())
fromNodeId String
toNodeId String
relationshipType String
strength Decimal @db.Decimal(5, 4) // 0-1
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
fromNode PEPGraphNode @relation("FromNode", fields: [fromNodeId], references: [entityId], onDelete: Cascade)
toNode PEPGraphNode @relation("ToNode", fields: [toNodeId], references: [entityId], onDelete: Cascade)
@@index([fromNodeId])
@@index([toNodeId])
@@index([relationshipType])
@@map("pep_graph_edges")
}
model SuspiciousActivityScore {
id String @id @default(uuid())
sasId String @unique
transactionId String
entityId String
score Decimal @db.Decimal(5, 2) // 0-100
factors Json // { sanctionsMatch, pepMatch, patternRisk, velocityAnomaly, geographicRisk }
riskTier String // TIER_1, TIER_2, TIER_3, TIER_4
calculatedAt DateTime @default(now())
@@index([sasId])
@@index([transactionId])
@@index([entityId])
@@index([riskTier])
@@index([calculatedAt])
@@map("suspicious_activity_scores")
}
model RiskTier {
id String @id @default(uuid())
entityId String @unique
riskTier String // TIER_1, TIER_2, TIER_3, TIER_4
assignedAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([entityId])
@@index([riskTier])
@@map("risk_tiers")
}
// WAPL - Worldwide AML Pattern Language
model WAPLPattern {
id String @id @default(uuid())
patternCode String @unique
name String
description String @db.Text
patternDefinition String @db.Text
severity String // LOW, MEDIUM, HIGH, CRITICAL
status String @default("ACTIVE") // ACTIVE, DRAFT, SUSPENDED
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
matches PatternMatch[]
@@index([patternCode])
@@index([status])
@@map("wapl_patterns")
}
model PatternMatch {
id String @id @default(uuid())
patternId String
transactionId String
matchScore Decimal @db.Decimal(5, 4) // 0-1
matchedConditions String[]
alertGenerated Boolean @default(false)
detectedAt DateTime @default(now())
pattern WAPLPattern @relation(fields: [patternId], references: [id], onDelete: Cascade)
alerts PatternAlert[]
@@index([id])
@@index([patternId])
@@index([transactionId])
@@index([detectedAt])
@@map("pattern_matches")
}
model PatternAlert {
id String @id @default(uuid())
patternMatchId String
transactionId String
patternCode String
severity String
description String @db.Text
status String @default("PENDING") // PENDING, REVIEWED, RESOLVED, FALSE_POSITIVE
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
patternMatch PatternMatch @relation(fields: [patternMatchId], references: [id], onDelete: Cascade)
@@index([id])
@@index([patternMatchId])
@@index([transactionId])
@@index([status])
@@index([createdAt])
@@map("pattern_alerts")
}
// ALPS - Autonomous Liquidity Provision System
model AutonomousLiquidityAction {
id String @id @default(uuid())
actionId String @unique
actionType String // INJECTION, WITHDRAWAL
sovereignBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String?
triggerReason String @db.Text
executedAt DateTime?
status String @default("PENDING") // PENDING, EXECUTED, FAILED
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([actionId])
@@index([sovereignBankId])
@@index([actionType])
@@index([status])
@@map("autonomous_liquidity_actions")
}
model LiquidityStressEvent {
id String @id @default(uuid())
eventId String @unique
sovereignBankId String
predictedAt DateTime @default(now())
predictedStressDate DateTime
stressLevel String // LOW, MEDIUM, HIGH, CRITICAL
predictedLiquidityRatio Decimal @db.Decimal(5, 2)
confidence Decimal @db.Decimal(5, 4) // 0-1
status String @default("PREDICTED") // PREDICTED, OCCURRED, MITIGATED, FALSE_POSITIVE
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([eventId])
@@index([sovereignBankId])
@@index([status])
@@index([predictedStressDate])
@@map("liquidity_stress_events")
}
model SovereignLiquidityRatio {
id String @id @default(uuid())
sovereignBankId String @unique
ratio Decimal @db.Decimal(5, 2) // SXLR
riskFactors String[]
calculatedAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([sovereignBankId])
@@index([ratio])
@@index([calculatedAt])
@@map("sovereign_liquidity_ratios")
}
// ============================================================================
// DBIS Volume VIII: DBIS Cyber-Defense Command (DCDC)
// ============================================================================
model DcdcDivision {
id String @id @default(uuid())
divisionId String @unique
divisionType String // SDD, ODU, FRB, CIST
divisionName String
description String @db.Text
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
threats CyberThreatIncident[]
actions DefenseLayerAction[]
@@index([divisionId])
@@index([divisionType])
@@index([status])
@@map("dcdc_divisions")
}
model CyberThreatIncident {
id String @id @default(uuid())
incidentId String @unique
divisionId String?
threatType String // technical, financial, coordination
threatCategory String // T1, T2, T3
severity String // low, medium, high, critical
sourceBankId String?
targetBankId String?
description String @db.Text
detectionMethod String // ml_anomaly, pq_signature, sgse, manual
status String @default("detected") // detected, contained, neutralized, resolved
detectedAt DateTime @default(now())
containedAt DateTime?
neutralizedAt DateTime?
resolvedAt DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
division DcdcDivision? @relation(fields: [divisionId], references: [id])
actions DefenseLayerAction[]
mitigations ThreatMitigation[]
@@index([incidentId])
@@index([divisionId])
@@index([threatCategory])
@@index([severity])
@@index([status])
@@index([detectedAt])
@@map("cyber_threat_incidents")
}
model DefenseLayerAction {
id String @id @default(uuid())
actionId String @unique
divisionId String?
incidentId String?
layer String // A (Detection), B (Containment), C (Neutralization), D (Restoration)
actionType String // anomaly_detection, route_isolation, kill_switch, ledger_freeze, rollback
targetNodeId String?
targetBankId String?
description String @db.Text
actionStatus String @default("pending") // pending, executed, failed, rolled_back
executedAt DateTime?
rolledBackAt DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
division DcdcDivision? @relation(fields: [divisionId], references: [id])
incident CyberThreatIncident? @relation(fields: [incidentId], references: [id])
@@index([actionId])
@@index([divisionId])
@@index([incidentId])
@@index([layer])
@@index([actionStatus])
@@map("defense_layer_actions")
}
model SovereignGraphSecurityEngine {
id String @id @default(uuid())
sgseId String @unique
graphType String // threat_graph, identity_graph, transaction_graph
graphData Json // Graph structure data
nodeCount Int?
edgeCount Int?
lastUpdated DateTime @default(now())
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
anomalies LedgerAnomaly[]
@@index([sgseId])
@@index([graphType])
@@index([status])
@@map("sovereign_graph_security_engines")
}
model LedgerAnomaly {
id String @id @default(uuid())
anomalyId String @unique
sgseId String?
ledgerId String
anomalyType String // double_spend, invalid_signature, hash_mismatch, unauthorized_transaction
severity String // low, medium, high, critical
detectedAt DateTime @default(now())
remediatedAt DateTime?
remediationAction String?
status String @default("detected") // detected, under_investigation, remediated
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sgse SovereignGraphSecurityEngine? @relation(fields: [sgseId], references: [id])
@@index([anomalyId])
@@index([sgseId])
@@index([ledgerId])
@@index([anomalyType])
@@index([status])
@@map("ledger_anomalies")
}
model NodeQuarantine {
id String @id @default(uuid())
quarantineId String @unique
nodeId String
sovereignBankId String?
quarantineReason String
quarantineType String // automatic, manual, dcdc_ordered
status String @default("quarantined") // quarantined, released, permanent
quarantinedAt DateTime @default(now())
releasedAt DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([quarantineId])
@@index([nodeId])
@@index([sovereignBankId])
@@index([status])
@@map("node_quarantines")
}
// ============================================================================
// DBIS Volume VIII: Planetary Settlement Grid (PSG)
// ============================================================================
model PsgSovereignNode {
id String @id @default(uuid())
nodeId String @unique
sovereignBankId String
region String // Geographic region
nodeType String // geo_redundant
replicationLinks Json? // PQ-encrypted replication link configs
status String @default("active") // active, suspended, inactive
lastSyncAt DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
epochs SettlementEpoch[]
stateBlocks PsgStateBlock[]
@@index([nodeId])
@@index([sovereignBankId])
@@index([region])
@@index([status])
@@map("psg_sovereign_nodes")
}
model PsgMasterGrid {
id String @id @default(uuid())
gridId String @unique
gridName String @default("DBIS Master Grid")
consensusEngine String // quantum_grade_consensus
status String @default("active")
lastConsensusAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
epochs SettlementEpoch[]
relayHubs SupraSovereignRelayHub[]
@@index([gridId])
@@index([status])
@@map("psg_master_grids")
}
model SupraSovereignRelayHub {
id String @id @default(uuid())
hubId String @unique
gridId String?
hubName String
region String // Continent/region
optimizedRoutes Json? // Optimized routing paths
latencyStats Json? // Latency statistics
status String @default("active") // active, suspended, maintenance
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
grid PsgMasterGrid? @relation(fields: [gridId], references: [id])
@@index([hubId])
@@index([gridId])
@@index([region])
@@index([status])
@@map("supra_sovereign_relay_hubs")
}
model SettlementEpoch {
id String @id @default(uuid())
epochId String @unique
gridId String?
nodeId String?
assetType String // cbdc_fiat, commodity, security
epochInterval Int // 1 (CBDC/fiat), 5 (commodity), 10 (securities) seconds
epochNumber Int
stateHash String // PSG_State = HASH(SCB_blocks + CBDC_tx + Commodity_tx + Security_tx)
committedAt DateTime @default(now())
status String @default("committed") // committed, final, rolled_back
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
grid PsgMasterGrid? @relation(fields: [gridId], references: [id])
node PsgSovereignNode? @relation(fields: [nodeId], references: [id])
stateBlocks PsgStateBlock[]
@@index([epochId])
@@index([gridId])
@@index([nodeId])
@@index([assetType])
@@index([epochNumber])
@@map("settlement_epochs")
}
model PsgStateBlock {
id String @id @default(uuid())
blockId String @unique
epochId String?
nodeId String?
scbBlocks Json // SCB block references
cbdcTransactions Json? // CBDC transactions
commodityTransactions Json? // Commodity transactions
securityTransactions Json? // Security transactions
stateHash String
previousBlockHash String?
status String @default("pending") // pending, committed, final
committedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
epoch SettlementEpoch? @relation(fields: [epochId], references: [id])
node PsgSovereignNode? @relation(fields: [nodeId], references: [id])
@@index([blockId])
@@index([epochId])
@@index([nodeId])
@@index([stateHash])
@@index([status])
@@map("psg_state_blocks")
}
// ============================================================================
// DBIS Volume VIII: Distributed Sovereign Compute Mesh (DSCM-X)
// ============================================================================
model DscmNode {
id String @id @default(uuid())
nodeId String @unique
sovereignBankId String?
nodeType String // SEN, CEN, FXN, CTN
nodeName String
computeCapacity Decimal? @db.Decimal(32, 8) // Compute units
latency Int? // Latency in milliseconds
sovereignPriority Int? // Priority level (1-10)
riskWeight Decimal? @db.Decimal(32, 8)
status String @default("active") // active, suspended, offline
registeredAt DateTime @default(now())
lastHeartbeat DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
tasks ComputeTask[]
aiTasks FederatedAiTask[]
@@index([nodeId])
@@index([sovereignBankId])
@@index([nodeType])
@@index([status])
@@map("dscm_nodes")
}
model ComputeTask {
id String @id @default(uuid())
taskId String @unique
nodeId String
taskType String // smart_contract, settlement, risk_calculation, compliance_check
taskPayload Json
computeCost Decimal? @db.Decimal(32, 8)
latency Int? // Milliseconds
distributionScore Decimal? @db.Decimal(32, 8) // compute_cost + latency + sovereign_priority + risk_weight
status String @default("pending") // pending, executing, completed, failed
assignedAt DateTime @default(now())
startedAt DateTime?
completedAt DateTime?
result Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node DscmNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([taskId])
@@index([nodeId])
@@index([taskType])
@@index([status])
@@map("compute_tasks")
}
model FederatedAiTask {
id String @id @default(uuid())
taskId String @unique
nodeId String
aiType String // risk_analysis, compliance_check, threat_detection
taskPayload Json
federatedNodes Json? // Array of participating nodes
consensusResult Json?
status String @default("pending") // pending, running, consensus_reached, failed
startedAt DateTime?
consensusReachedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node DscmNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([taskId])
@@index([nodeId])
@@index([aiType])
@@index([status])
@@map("federated_ai_tasks")
}
// ============================================================================
// DBIS Volume VIII: CBDC Governance & Monetary Modeling
// ============================================================================
model CbdcMonetaryCommittee {
id String @id @default(uuid())
committeeId String @unique
sovereignBankId String
committeeName String
memberCount Int?
votingMechanism String // simple_majority, supermajority
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
supplyControls CbdcSupplyControl[]
velocityControls CbdcVelocityControl[]
@@index([committeeId])
@@index([sovereignBankId])
@@index([status])
@@map("cbdc_monetary_committees")
}
model DbisMonetaryCouncil {
id String @id @default(uuid())
councilId String @unique
councilName String @default("DBIS Monetary & Settlement Council")
memberCount Int?
votingMechanism String // simple_majority, supermajority_2_3
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([councilId])
@@index([status])
@@map("dbis_monetary_councils")
}
model CbdcComplianceBoard {
id String @id @default(uuid())
boardId String @unique
boardName String @default("CBDC Compliance & Enforcement Board")
memberCount Int?
enforcementLevel String // advisory, binding
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([boardId])
@@index([status])
@@map("cbdc_compliance_boards")
}
model CbdcSupplyControl {
id String @id @default(uuid())
controlId String @unique
committeeId String?
sovereignBankId String
operationType String // issue, burn
amount Decimal @db.Decimal(32, 8)
dualSignature1 String? // First signature (SCB)
dualSignature2 String? // Second signature (DBIS)
stressAdjustedCap Decimal? @db.Decimal(32, 8)
status String @default("pending") // pending, approved, executed
approvedAt DateTime?
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
committee CbdcMonetaryCommittee? @relation(fields: [committeeId], references: [id])
@@index([controlId])
@@index([committeeId])
@@index([sovereignBankId])
@@index([operationType])
@@index([status])
@@map("cbdc_supply_controls")
}
model CbdcVelocityControl {
id String @id @default(uuid())
controlId String @unique
committeeId String?
sovereignBankId String
walletId String?
walletLevelLimit Decimal? @db.Decimal(32, 8)
spendingCategory String? // Category-based spending limits
timeBasedThrottle Json? // Time-based throttle configuration
status String @default("active")
effectiveDate DateTime
expiryDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
committee CbdcMonetaryCommittee? @relation(fields: [committeeId], references: [id])
@@index([controlId])
@@index([committeeId])
@@index([sovereignBankId])
@@index([walletId])
@@index([status])
@@map("cbdc_velocity_controls")
}
model CbdcLiquidityWindow {
id String @id @default(uuid())
windowId String @unique
sovereignBankId String
windowType String // standing, emergency
availableLiquidity Decimal @db.Decimal(32, 8)
swapRate Decimal? @db.Decimal(32, 12) // CBDC-to-SSU swap rate
status String @default("open") // open, closed, suspended
openedAt DateTime @default(now())
closedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([windowId])
@@index([sovereignBankId])
@@index([windowType])
@@index([status])
@@map("cbdc_liquidity_windows")
}
model CbdcMonetarySimulation {
id String @id @default(uuid())
simulationId String @unique
sovereignBankId String?
simulationType String // cross_border_flows, liquidity_shock, fx_spillover, commodity_backed_circulation
supplyChange Decimal? @db.Decimal(32, 8)
velocityFactor Decimal? @db.Decimal(32, 12)
fxReserveStrength Decimal? @db.Decimal(32, 12)
impactScore Decimal? @db.Decimal(32, 12) // CBDC_supply_change * velocity_factor * FX_reserve_strength
simulationResults Json?
status String @default("running") // running, completed, failed
startedAt DateTime @default(now())
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([simulationId])
@@index([sovereignBankId])
@@index([simulationType])
@@index([status])
@@map("cbdc_monetary_simulations")
}
// ============================================================================
// DBIS Volume VIII: Global Quantum Ledger (GQL)
// ============================================================================
model GqlBlock {
id String @id @default(uuid())
blockId String @unique
timestamp DateTime @default(now())
pqSignatures Json // Array of PQ signatures
quantumStateCommit String? // ENTANGLED_HASH (future)
multiAssetRoot String // HASH(cbdc, fiat, ssu, commodity, security)
previousBlockHash String?
blockHash String
status String @default("pending") // pending, verified, final
verifiedAt DateTime?
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pqSignatureBlocks PqSignatureBlock[]
quantumHashes QuantumHash[]
@@index([blockId])
@@index([blockHash])
@@index([previousBlockHash])
@@index([status])
@@map("gql_blocks")
}
model QuantumStateCommitment {
id String @id @default(uuid())
commitmentId String @unique
blockId String?
entangledHash String? // Entanglement-based hash (future)
commitmentType String // entangled_state_commitment
status String @default("pending") // pending, verified (future module)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([commitmentId])
@@index([blockId])
@@map("quantum_state_commitments")
}
model PqSignatureBlock {
id String @id @default(uuid())
signatureId String @unique
blockId String
algorithm String // XMSS, SPHINCS+
signature String @db.Text
publicKey String @db.Text
verificationStatus String @default("pending") // pending, verified, rejected
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
block GqlBlock @relation(fields: [blockId], references: [id], onDelete: Cascade)
@@index([signatureId])
@@index([blockId])
@@index([algorithm])
@@index([verificationStatus])
@@map("pq_signature_blocks")
}
model QuantumHash {
id String @id @default(uuid())
hashId String @unique
blockId String?
hashAlgorithm String // Q-Keccak
hashValue String
originalData Json? // Original data hashed
createdAt DateTime @default(now())
block GqlBlock? @relation(fields: [blockId], references: [id])
@@index([hashId])
@@index([blockId])
@@index([hashAlgorithm])
@@map("quantum_hashes")
}
// ============================================================================
// DBIS Volume VIII: Advanced FX/CBDC/SSU Simulation Engine (A-FCSS)
// ============================================================================
model AfcssSimulation {
id String @id @default(uuid())
simulationId String @unique
simulationType String // fx_volatility, cbdc_circulation, ssu_stabilization, multi_asset_contagion
parameters Json
impactScore Decimal? @db.Decimal(32, 12) // (FX_vol * CBDC_velocity * SSU_weight) - liquidity_shock + sovereign_stability_index
simulationResults Json?
status String @default("running") // running, completed, failed
startedAt DateTime @default(now())
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
impacts FxCbdcSsuImpact[]
contagionRisks MultiAssetContagionRisk[]
@@index([simulationId])
@@index([simulationType])
@@index([status])
@@map("afcss_simulations")
}
model FxCbdcSsuImpact {
id String @id @default(uuid())
impactId String @unique
simulationId String
fxVolatility Decimal? @db.Decimal(32, 12)
cbdcVelocity Decimal? @db.Decimal(32, 12)
ssuWeight Decimal? @db.Decimal(32, 12)
liquidityShock Decimal? @db.Decimal(32, 12)
sovereignStabilityIndex Decimal? @db.Decimal(32, 12)
impactScore Decimal @db.Decimal(32, 12)
impactType String // fx_impact, cbdc_impact, ssu_impact, combined
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
simulation AfcssSimulation @relation(fields: [simulationId], references: [id], onDelete: Cascade)
@@index([impactId])
@@index([simulationId])
@@index([impactType])
@@map("fx_cbdc_ssu_impacts")
}
model MultiAssetContagionRisk {
id String @id @default(uuid())
riskId String @unique
simulationId String
sourceAsset String // cbdc, fiat, commodity, security, ssu
targetAsset String
contagionScore Decimal @db.Decimal(32, 12) // 0-100 scale
riskFactors Json?
severity String // low, medium, high, critical
assessedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
simulation AfcssSimulation @relation(fields: [simulationId], references: [id], onDelete: Cascade)
@@index([riskId])
@@index([simulationId])
@@index([sourceAsset, targetAsset])
@@index([severity])
@@map("multi_asset_contagion_risks")
}
// ============================================================================
// DBIS Volume VIII: Supra-Sovereign Threat Matrix (SSTM)
// ============================================================================
model SupraSovereignThreat {
id String @id @default(uuid())
threatId String @unique
threatCategory String // T1 (Technical), T2 (Financial), T3 (Coordination)
threatType String // pq_key_extraction, smart_contract_infiltration, fx_destabilization, cbdc_bank_run, state_linked_warfare, insider_collusion
severity String // low, medium, high, critical
affectedBanks Json? // Array of affected SCB IDs
coordinationLevel String? // single_scb, multi_scb, supra_sovereign
description String @db.Text
detectedAt DateTime @default(now())
status String @default("detected") // detected, mitigated, resolved
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
patterns CoordinatedThreatPattern[]
mitigations ThreatMitigation[]
@@index([threatId])
@@index([threatCategory])
@@index([threatType])
@@index([severity])
@@index([status])
@@map("supra_sovereign_threats")
}
model CoordinatedThreatPattern {
id String @id @default(uuid())
patternId String @unique
threatId String
patternType String // multi_scb_attack, synthetic_asset_manipulation, rogue_ai_economic_actor
affectedBanks Json // Array of SCB IDs
attackVector String?
patternSignature Json? // Pattern signature for detection
detectedAt DateTime @default(now())
status String @default("detected") // detected, analyzed, mitigated
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
threat SupraSovereignThreat @relation(fields: [threatId], references: [id], onDelete: Cascade)
@@index([patternId])
@@index([threatId])
@@index([patternType])
@@index([status])
@@map("coordinated_threat_patterns")
}
model ThreatMitigation {
id String @id @default(uuid())
mitigationId String @unique
threatId String?
incidentId String?
mitigationType String // dcdc_response, quarantine, ledger_freeze, multi_scb_coordination
action String @db.Text
affectedEntities Json? // Affected nodes, banks, assets
status String @default("pending") // pending, executing, completed, failed
initiatedAt DateTime @default(now())
completedAt DateTime?
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
threat SupraSovereignThreat? @relation(fields: [threatId], references: [id])
incident CyberThreatIncident? @relation(fields: [incidentId], references: [id])
@@index([mitigationId])
@@index([threatId])
@@index([incidentId])
@@index([mitigationType])
@@index([status])
@@map("threat_mitigations")
}
// ============================================================================
// DBIS Volume VII: Global Payments Network (GPN)
// ============================================================================
model GpnPayment {
id String @id @default(uuid())
paymentId String @unique
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String // fiat, cbdc, commodity, security, ssu
paymentType String // person_to_person, bank_to_bank, scb_to_scb, commodity_backed, security_linked, cross_chain
routeId String?
layer1Status String @default("pending") // pending, authenticated, rejected
layer2Status String @default("pending") // pending, routed, rejected
layer3Status String @default("pending") // pending, settled, failed
hashLock String? // Hash-lock for finality
scbLedgerHash String? // SCB ledger hash
dbisLedgerHash String? // DBIS Master Ledger hash
isoMessageId String? // ISO 20022 message reference
smeEnvelope Json? // Sovereign Message Envelope
status String @default("pending") // pending, processing, settled, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
route GpnRoute? @relation(fields: [routeId], references: [id])
settlementLocks GpnSettlementLock[]
@@index([paymentId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([routeId])
@@index([status])
@@index([hashLock])
@@map("gpn_payments")
}
model GpnRoute {
id String @id @default(uuid())
routeId String @unique
sourceBankId String
destinationBankId String
currencyCode String
routePath Json // Array of intermediate nodes
fxCost Decimal @db.Decimal(32, 12)
liquidityScore Decimal @db.Decimal(32, 8)
sriWeight Decimal @db.Decimal(32, 8)
totalCost Decimal @db.Decimal(32, 12)
status String @default("active") // active, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
payments GpnPayment[]
@@index([routeId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([status])
@@map("gpn_routes")
}
model GpnSettlementLock {
id String @id @default(uuid())
lockId String @unique
paymentId String
hashLock String // Hash-lock value
scbLedgerHash String? // SCB ledger hash
dbisLedgerHash String? // DBIS Master Ledger hash
lockStatus String @default("pending") // pending, matched, expired
matchedAt DateTime?
expiresAt DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
payment GpnPayment @relation(fields: [paymentId], references: [id], onDelete: Cascade)
@@index([lockId])
@@index([paymentId])
@@index([hashLock])
@@index([lockStatus])
@@map("gpn_settlement_locks")
}
// ============================================================================
// DBIS Volume VII: Multi-Asset RTGS System (M-RTGS)
// ============================================================================
model MrtgsQueue {
id String @id @default(uuid())
queueId String @unique
paymentId String
priorityTier Int // 1 = Sovereign & systemic, 2 = Interbank, 3 = Retail CBDC
priorityScore Decimal @db.Decimal(32, 12) // systemic_value + fx_cost_penalty + liquidity_weight + SRI_adjustment
assetType String // fiat, cbdc, ssu, commodity, security
amount Decimal @db.Decimal(32, 8)
currencyCode String
sourceBankId String
destinationBankId String
queuePosition Int
status String @default("queued") // queued, processing, settled, failed
queuedAt DateTime @default(now())
processedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement MrtgsSettlement?
@@index([queueId])
@@index([paymentId])
@@index([priorityTier])
@@index([priorityScore])
@@index([status])
@@index([queuedAt])
@@map("mrtgs_queues")
}
model MrtgsSettlement {
id String @id @default(uuid())
settlementId String @unique
queueId String @unique
paymentId String
assetType String
amount Decimal @db.Decimal(32, 8)
currencyCode String
sourceBankId String
destinationBankId String
settlementTime Int // Milliseconds
ledgerSyncStatus Json // Multi-ledger synchronization status
status String @default("pending") // pending, settled, failed
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
queue MrtgsQueue @relation(fields: [queueId], references: [id], onDelete: Cascade)
riskAlerts MrtgsRiskAlert[]
@@index([settlementId])
@@index([queueId])
@@index([paymentId])
@@index([status])
@@map("mrtgs_settlements")
}
model MrtgsRiskAlert {
id String @id @default(uuid())
alertId String @unique
settlementId String
alertType String // velocity, liquidity_congestion, fx_slip, commodity_shock, cbdc_routing_anomaly
severity String // low, medium, high, critical
description String @db.Text
metrics Json // Alert metrics
status String @default("active") // active, resolved, acknowledged
createdAt DateTime @default(now())
resolvedAt DateTime?
updatedAt DateTime @updatedAt
settlement MrtgsSettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([alertId])
@@index([settlementId])
@@index([alertType])
@@index([severity])
@@index([status])
@@map("mrtgs_risk_alerts")
}
// ============================================================================
// DBIS Volume VII: Sovereign Cloud Infrastructure (SCI)
// ============================================================================
model SovereignComputeZone {
id String @id @default(uuid())
zoneId String @unique
sovereignBankId String
zoneName String
zoneType String // primary, replica, backup
region String
zeroTrustConfig Json // Zero-trust isolation configuration
pqHsmConfig Json? // PQ-HSM configuration
status String @default("active") // active, suspended, decommissioned
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
replications SovereignReplication[]
contracts SevmContract[]
attestations SovereignAttestation[]
@@index([zoneId])
@@index([sovereignBankId])
@@index([status])
@@map("sovereign_compute_zones")
}
model SovereignReplication {
id String @id @default(uuid())
replicationId String @unique
zoneId String
targetZoneId String
replicationType String // metadata, full, incremental
metadataHash String // Hash of metadata (updated every 30s)
lastHashTime DateTime
status String @default("active") // active, paused, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
zone SovereignComputeZone @relation(fields: [zoneId], references: [id], onDelete: Cascade)
@@index([replicationId])
@@index([zoneId])
@@index([targetZoneId])
@@index([status])
@@map("sovereign_replications")
}
model SevmContract {
id String @id @default(uuid())
contractId String @unique
zoneId String
contractType String // cbdc_workflow, fx_swap, commodity_redemption, settlement_contract
contractAddress String // SEVM contract address
contractCode String @db.Text // Smart contract code
contractHash String // Hash of contract code
deployerBankId String
status String @default("pending") // pending, deployed, active, suspended
deployedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
zone SovereignComputeZone @relation(fields: [zoneId], references: [id], onDelete: Cascade)
@@index([contractId])
@@index([zoneId])
@@index([contractType])
@@index([contractAddress])
@@index([status])
@@map("sevm_contracts")
}
model SovereignAttestation {
id String @id @default(uuid())
attestationId String @unique
zoneId String
attestationType String // tpm_integrity, pq_encryption, cross_zone_firewall, continuous_integrity
attestationData Json // Attestation evidence
integrityHash String // Integrity verification hash
status String @default("pending") // pending, verified, failed
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
zone SovereignComputeZone @relation(fields: [zoneId], references: [id], onDelete: Cascade)
@@index([attestationId])
@@index([zoneId])
@@index([attestationType])
@@index([status])
@@map("sovereign_attestations")
}
// ============================================================================
// DBIS Volume VII: ZK-CBDC Validation Framework
// ============================================================================
model ZkProof {
id String @id @default(uuid())
proofId String @unique
walletId String
proofType String // zkBP (balance), zkCP (compliance), zkIP (identity)
proofData String @db.Text // ZK proof data
publicInputs Json // Public inputs for verification
verificationKey String // Verification key reference
status String @default("pending") // pending, verified, rejected
verifiedAt DateTime?
expiresAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
verifications ZkVerification[]
@@index([proofId])
@@index([walletId])
@@index([proofType])
@@index([status])
@@map("zk_proofs")
}
model ZkVerification {
id String @id @default(uuid())
verificationId String @unique
proofId String
contractId String? // Smart contract reference
verificationType String // balance_check, compliance_check, identity_check, combined
zkbpResult Boolean? // ZK-Balance Proof result
zkcpResult Boolean? // ZK-Compliance Proof result
zkipResult Boolean? // ZK-Identity Proof result
overallResult Boolean // Combined: zkBP && zkCP && zkIP
status String @default("pending") // pending, verified, rejected
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
proof ZkProof @relation(fields: [proofId], references: [id], onDelete: Cascade)
@@index([verificationId])
@@index([proofId])
@@index([contractId])
@@index([verificationType])
@@index([status])
@@map("zk_verifications")
}
// ============================================================================
// DBIS Volume VII: Autonomous Regulatory Intelligence (ARI)
// ============================================================================
model AriPolicy {
id String @id @default(uuid())
policyId String @unique
policyType String // aml, fx_risk, liquidity, sanctions, settlement
policyName String
policyRules Json // Policy rules and conditions
layer String // cortex, reflex, execution
status String @default("active") // active, suspended, archived
effectiveDate DateTime
expiryDate DateTime?
createdBy String @default("ari") // ari, msc, caa
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
decisions AriDecision[]
updates AriPolicyUpdate[]
@@index([policyId])
@@index([policyType])
@@index([layer])
@@index([status])
@@map("ari_policies")
}
model AriDecision {
id String @id @default(uuid())
decisionId String @unique
policyId String?
decisionType String // policy_update, fx_band_adjustment, liquidity_limit_change, aml_rule_update, sanctions_update
targetSystem String // gpn, m_rtgs, alps, gase, fx_engine
decisionData Json // Decision parameters and actions
triggerCondition String @db.Text // Condition that triggered decision (e.g., "SARE.FXSP > 0.35")
status String @default("pending") // pending, applied, rejected, overridden
appliedAt DateTime?
reviewedBy String? // MSC or CAA reviewer
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
policy AriPolicy? @relation(fields: [policyId], references: [id])
@@index([decisionId])
@@index([policyId])
@@index([decisionType])
@@index([targetSystem])
@@index([status])
@@map("ari_decisions")
}
model AriPolicyUpdate {
id String @id @default(uuid())
updateId String @unique
policyId String
updateType String // creation, modification, suspension, reactivation
previousRules Json? // Previous policy rules
newRules Json // New policy rules
reason String @db.Text
updatedBy String @default("ari") // ari, msc, caa
reviewWindow DateTime? // MSC review window
caaOverride Boolean @default(false)
status String @default("pending") // pending, approved, rejected
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
policy AriPolicy @relation(fields: [policyId], references: [id], onDelete: Cascade)
@@index([updateId])
@@index([policyId])
@@index([updateType])
@@index([status])
@@map("ari_policy_updates")
}
// ============================================================================
// DBIS Volume VII: Cross-Border Algorithmic Settlement Optimizer (CASO)
// ============================================================================
model CasoRoute {
id String @id @default(uuid())
routeId String @unique
sourceBankId String
destinationBankId String
currencyCode String
assetType String
fxCost Decimal @db.Decimal(32, 12)
liquidityPenalty Decimal @db.Decimal(32, 12)
volatilityRisk Decimal @db.Decimal(32, 12)
sriFactor Decimal @db.Decimal(32, 12)
ssuCost Decimal @db.Decimal(32, 12)
totalCost Decimal @db.Decimal(32, 12) // argmin result
routePath Json // Optimized route path
status String @default("active") // active, applied, expired
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
optimizations CasoOptimization[]
@@index([routeId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([status])
@@map("caso_routes")
}
model CasoOptimization {
id String @id @default(uuid())
optimizationId String @unique
routeId String
optimizationType String // gpn_routing, m_rtgs_queueing, sire_integration, alps_liquidity
inputParameters Json // Input parameters for optimization
optimizationResult Json // Optimization result data
status String @default("pending") // pending, applied, rejected
calculatedAt DateTime @default(now())
appliedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
route CasoRoute @relation(fields: [routeId], references: [id], onDelete: Cascade)
@@index([optimizationId])
@@index([routeId])
@@index([optimizationType])
@@index([status])
@@map("caso_optimizations")
}
// ============================================================================
// DBIS Volume VII: Decentralized Sovereign Compliance Nodes (DSCN)
// ============================================================================
model DscnNode {
id String @id @default(uuid())
nodeId String @unique
sovereignBankId String?
privateBankId String?
nodeType String // scb, private_bank, regulated_institution
nodeName String
nodeAddress String // Network address
registrationStatus String @default("pending") // pending, approved, active, suspended
approvedAt DateTime?
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
complianceResults DscnComplianceResult[]
syncRecords DscnSyncRecord[]
@@index([nodeId])
@@index([sovereignBankId])
@@index([privateBankId])
@@index([nodeType])
@@index([status])
@@map("dscn_nodes")
}
model DscnComplianceResult {
id String @id @default(uuid())
resultId String @unique
nodeId String
complianceType String // aml_scan, sanctions_check, identity_verification
entityId String // Entity being checked
entityType String // wallet, account, transaction
scanResult String // pass, fail, review_required
riskScore Decimal? @db.Decimal(32, 8)
details Json // Detailed compliance results
status String @default("pending") // pending, synced, failed
syncedToDbis Boolean @default(false)
syncedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node DscnNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([resultId])
@@index([nodeId])
@@index([complianceType])
@@index([entityId])
@@index([scanResult])
@@index([status])
@@map("dscn_compliance_results")
}
model DscnSyncRecord {
id String @id @default(uuid())
syncId String @unique
nodeId String
syncType String // compliance_result, ledger_state, identity_update
syncData Json // Data being synchronized
dbisLedgerHash String? // DBIS Master Ledger hash after sync
syncStatus String @default("pending") // pending, synced, failed
syncedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node DscnNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([syncId])
@@index([nodeId])
@@index([syncType])
@@index([syncStatus])
@@map("dscn_sync_records")
}
// ============================================================================
// DBIS Volume IX: Global Synthetic Derivatives System (GSDS)
// ============================================================================
model SyntheticDerivative {
id String @id @default(uuid())
derivativeId String @unique
derivativeType String // synthetic_currency, multi_asset, synthetic_credit, behavioral
party1BankId String
party2BankId String?
underlyingAsset String // SSU, CBDC, commodity, security, fiat, fx
notionalAmount Decimal @db.Decimal(32, 8)
contractTerms Json // Contract terms and parameters
smartContractId String? // Reference to smart contract
status String @default("active") // active, expired, terminated, settled, auto_closed
initiatedAt DateTime @default(now())
maturityDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pricing GsdsPricingEngine[]
collaterals SyntheticDerivativeCollateral[]
settlements SyntheticDerivativeSettlement[]
@@index([derivativeId])
@@index([derivativeType])
@@index([party1BankId])
@@index([party2BankId])
@@index([status])
@@map("synthetic_derivatives")
}
model GsdsPricingEngine {
id String @id @default(uuid())
pricingId String @unique
derivativeId String
baseValue Decimal @db.Decimal(32, 12)
volatilityFactor Decimal @db.Decimal(32, 12)
collateralRatio Decimal @db.Decimal(32, 12)
liquidityPenalty Decimal @db.Decimal(32, 12)
sriAdjustment Decimal @db.Decimal(32, 12)
syntheticPrice Decimal @db.Decimal(32, 12) // Calculated: base_value + volatility_factor + collateral_ratio - liquidity_penalty + SRI_adjustment
pricingSource String // gql_state, msc_parameters, ai_liquidity_estimator
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
derivative SyntheticDerivative @relation(fields: [derivativeId], references: [id], onDelete: Cascade)
@@index([pricingId])
@@index([derivativeId])
@@index([calculatedAt])
@@map("gsds_pricing_engine")
}
model SyntheticDerivativeCollateral {
id String @id @default(uuid())
collateralId String @unique
derivativeId String
assetType String // cbdc, ssu, commodity, security, fiat
assetId String?
amount Decimal @db.Decimal(32, 8)
valuation Decimal @db.Decimal(32, 12)
marginRequirement Decimal @db.Decimal(32, 12)
status String @default("active") // active, released, liquidated
allocatedAt DateTime @default(now())
releasedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
derivative SyntheticDerivative @relation(fields: [derivativeId], references: [id], onDelete: Cascade)
@@index([collateralId])
@@index([derivativeId])
@@index([assetType])
@@index([status])
@@map("synthetic_derivative_collaterals")
}
model SyntheticDerivativeSettlement {
id String @id @default(uuid())
settlementId String @unique
derivativeId String
settlementAmount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String // fiat, cbdc, commodity, security, ssu
hashLock String? // Hash-lock for finality
sovereignLedgerHash String?
dbisLedgerHash String?
dualLedgerCommit Boolean @default(false)
status String @default("pending") // pending, committed, settled, final
committedAt DateTime?
settledAt DateTime?
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
derivative SyntheticDerivative @relation(fields: [derivativeId], references: [id], onDelete: Cascade)
@@index([settlementId])
@@index([derivativeId])
@@index([hashLock])
@@index([status])
@@map("synthetic_derivative_settlements")
}
// ============================================================================
// DBIS Volume IX: Interplanetary Settlement Pathways (ISP)
// ============================================================================
model InterplanetaryNode {
id String @id @default(uuid())
nodeId String @unique
planetaryLocation String // earth, lunar, martian
sovereignBankId String?
nodeType String // scb, sovereign_authority, economic_council
nodeName String
nodeAddress String // Network address
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
issuances InterplanetarySSU[]
cbdcIssuances InterplanetaryCBDC[]
@@index([nodeId])
@@index([planetaryLocation])
@@index([sovereignBankId])
@@index([status])
targetSettlements InterplanetarySettlement[] @relation("TargetSettlement")
sourceSettlements InterplanetarySettlement[] @relation("SourceSettlement")
targetRelayGrids InterplanetaryRelayGrid[] @relation("TargetNode")
sourceRelayGrids InterplanetaryRelayGrid[] @relation("SourceNode")
@@map("interplanetary_nodes")
}
model InterplanetaryRelayGrid {
id String @id @default(uuid())
relayId String @unique
sourceNodeId String
targetNodeId String
relayType String // deep_space_relay, sovereign_relay
messageType String // settlement, cbdc_issuance, state_sync
messagePayload Json // PQC-light messaging payload
pqcSignature String? // Post-quantum cryptography signature
latency Int? // Estimated latency in seconds
highLatencyBuffer Boolean @default(false) // High-latency settlement buffer
status String @default("pending") // pending, relayed, delivered, failed
relayedAt DateTime?
deliveredAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sourceNode InterplanetaryNode @relation("SourceNode", fields: [sourceNodeId], references: [id], onDelete: Cascade)
targetNode InterplanetaryNode @relation("TargetNode", fields: [targetNodeId], references: [id], onDelete: Cascade)
@@index([relayId])
@@index([sourceNodeId])
@@index([targetNodeId])
@@index([status])
@@map("interplanetary_relay_grid")
}
model InterplanetarySettlement {
id String @id @default(uuid())
settlementId String @unique
sourceNodeId String
targetNodeId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String // cbdc, ssu, fiat, commodity
settlementType String // direct, relayed, temporal
hashLock String? // Hash-lock for finality
status String @default("pending") // pending, committed, settled, final
committedAt DateTime?
settledAt DateTime?
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sourceNode InterplanetaryNode @relation("SourceSettlement", fields: [sourceNodeId], references: [id], onDelete: Cascade)
targetNode InterplanetaryNode @relation("TargetSettlement", fields: [targetNodeId], references: [id], onDelete: Cascade)
temporalEngine TemporalSettlementEngine?
@@index([settlementId])
@@index([sourceNodeId])
@@index([targetNodeId])
@@index([status])
@@map("interplanetary_settlements")
}
model TemporalSettlementEngine {
id String @id @default(uuid())
tseId String @unique
settlementId String @unique
futureStateEstimate Json // Predictive state estimate
preCommitHash String // HASH(future_state_estimate)
communicationDelay Int // Delay in seconds
predictiveContract Json? // Predictive contract terms
status String @default("pending") // pending, committed, verified, settled
committedAt DateTime?
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement InterplanetarySettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([tseId])
@@index([settlementId])
@@index([preCommitHash])
@@index([status])
@@map("temporal_settlement_engine")
}
model InterplanetarySSU {
id String @id @default(uuid())
issuId String @unique
nodeId String
amount Decimal @db.Decimal(32, 8)
gravityAdjustment Decimal? @db.Decimal(32, 12) // Gravity-adjusted economic valuation
radiationEnvelope String? // Radiation-hardened cryptographic envelope
status String @default("active") // active, redeemed, expired
issuedAt DateTime @default(now())
redeemedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node InterplanetaryNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([issuId])
@@index([nodeId])
@@index([status])
@@map("interplanetary_ssu")
}
model InterplanetaryCBDC {
id String @id @default(uuid())
icbdcId String @unique
nodeId String
currencyCode String
amount Decimal @db.Decimal(32, 8)
issuanceType String // mars_issuance, lunar_issuance
sovereignAutonomy Boolean @default(true) // Sovereign autonomy flag
dualLedgerFinality Boolean @default(false) // Dual-ledger finality respecting DBIS authority
status String @default("active") // active, redeemed, expired
issuedAt DateTime @default(now())
redeemedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node InterplanetaryNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([icbdcId])
@@index([nodeId])
@@index([currencyCode])
@@index([status])
@@map("interplanetary_cbdc")
}
// ============================================================================
// DBIS Volume IX: Behavioral Economics & Incentive Engine (BEIE)
// ============================================================================
model BehavioralMetric {
id String @id @default(uuid())
metricId String @unique
entityId String // User, institution, or sovereign ID
entityType String // retail_cbdc_user, institution, sovereign_liquidity_actor
metricType String // ccv, ilb, srp
metricValue Decimal @db.Decimal(32, 12)
metricData Json? // Additional metric data
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([metricId])
@@index([entityId])
@@index([entityType])
@@index([metricType])
@@index([calculatedAt])
@@map("behavioral_metrics")
}
model BehavioralIncentive {
id String @id @default(uuid())
incentiveId String @unique
entityId String
entityType String // retail_cbdc_user, institution, sovereign
incentiveType String // cbdc_micro_reward, ssu_fee_adjustment
incentiveAmount Decimal @db.Decimal(32, 8)
incentiveReason String // stabilizing_behavior, low_risk_flow
status String @default("pending") // pending, applied, expired
appliedAt DateTime?
expiresAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([incentiveId])
@@index([entityId])
@@index([entityType])
@@index([incentiveType])
@@index([status])
@@map("behavioral_incentives")
}
model BehavioralPenalty {
id String @id @default(uuid())
penaltyId String @unique
entityId String
entityType String // retail_cbdc_user, institution, sovereign
penaltyType String // liquidity_penalty, fee_increase, access_restriction
penaltyAmount Decimal? @db.Decimal(32, 8)
penaltyReason String // risky_behavior_detected, srp_risk_threshold_exceeded
riskScore Decimal @db.Decimal(32, 12) // SRP_risk or other risk metric
threshold Decimal @db.Decimal(32, 12) // Threshold that triggered penalty
predictiveContract Json? // Predictive penalty contract
status String @default("pending") // pending, applied, resolved
appliedAt DateTime?
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([penaltyId])
@@index([entityId])
@@index([entityType])
@@index([penaltyType])
@@index([status])
@@map("behavioral_penalties")
}
model BehavioralProfile {
id String @id @default(uuid())
profileId String @unique
entityId String
entityType String // retail_cbdc_user, institution, sovereign
ccvScore Decimal? @db.Decimal(32, 12) // Consumer CBDC Velocity
ilbScore Decimal? @db.Decimal(32, 12) // Institutional Liquidity Behavior
srpScore Decimal? @db.Decimal(32, 12) // Sovereign Reaction Profile
behaviorPattern Json? // Behavioral pattern data
riskLevel String @default("low") // low, medium, high, critical
status String @default("active") // active, suspended, archived
lastUpdated DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([profileId])
@@index([entityId])
@@index([entityType])
@@index([riskLevel])
@@index([status])
@@map("behavioral_profiles")
}
// ============================================================================
// DBIS Volume IX: Supra-National Funds Network (SNFN)
// ============================================================================
model SupraFundNode {
id String @id @default(uuid())
nodeId String @unique
nodeType String // sfn, dfn, csn
nodeName String
fundType String // sovereign_wealth_fund, supranational_institution, development_fund, stabilization_pool
totalAssets Decimal @db.Decimal(32, 8)
availableLiquidity Decimal @db.Decimal(32, 8)
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
loans SupraFundLoan[]
settlements SupraFundSettlement[]
@@index([nodeId])
@@index([nodeType])
@@index([fundType])
@@index([status])
developmentFundNodes DevelopmentFundNode[]
crisisStabilizationNodes CrisisStabilizationNode[]
@@map("supra_fund_nodes")
}
model DevelopmentFundNode {
id String @id @default(uuid())
dfnId String @unique
nodeId String
directLendingCap Decimal @db.Decimal(32, 8)
commodityBackedLoans Boolean @default(true)
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node SupraFundNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([dfnId])
@@index([nodeId])
@@index([status])
@@map("development_fund_nodes")
}
model CrisisStabilizationNode {
id String @id @default(uuid())
csnId String @unique
nodeId String
triggerCondition String // sri_critical, fx_collapse, commodity_shock
triggerThreshold Decimal @db.Decimal(32, 12)
stabilizationCap Decimal @db.Decimal(32, 8)
status String @default("standby") // standby, activated, deactivated
activatedAt DateTime?
deactivatedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node SupraFundNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([csnId])
@@index([nodeId])
@@index([triggerCondition])
@@index([status])
@@map("crisis_stabilization_nodes")
}
model SupraFundLoan {
id String @id @default(uuid())
loanId String @unique
nodeId String
borrowerBankId String
loanAmount Decimal @db.Decimal(32, 8)
currencyCode String
sriFactor Decimal @db.Decimal(32, 12)
reserveStrength Decimal @db.Decimal(32, 12)
fxExposure Decimal @db.Decimal(32, 12)
liquidityShortfall Decimal @db.Decimal(32, 12)
loanEligibility Decimal @db.Decimal(32, 12) // Calculated: SRI_factor + reserve_strength + FX_exposure + liquidity_shortfall
interestRate Decimal? @db.Decimal(32, 12)
maturityDate DateTime?
status String @default("pending") // pending, approved, disbursed, repaid, defaulted
approvedAt DateTime?
disbursedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node SupraFundNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([loanId])
@@index([nodeId])
@@index([borrowerBankId])
@@index([status])
@@map("supra_fund_loans")
}
model SupraFundSettlement {
id String @id @default(uuid())
settlementId String @unique
nodeId String
loanId String?
disbursementType String // cbdc, ssu, commodity_token, tokenized_bond
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetId String? // Asset ID if tokenized
status String @default("pending") // pending, disbursed, settled
disbursedAt DateTime?
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node SupraFundNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([settlementId])
@@index([nodeId])
@@index([loanId])
@@index([status])
@@map("supra_fund_settlements")
}
// ============================================================================
// DBIS Volume IX: Multi-Reality Ledger Interfaces (MRLI)
// ============================================================================
model MultiRealityLedger {
id String @id @default(uuid())
ledgerId String @unique
ledgerName String
ledgerType String // classical, distributed, quantum, simulation
mergedState Json? // MERGE(classical_state, dlt_state, quantum_state, simulated_state)
status String @default("active") // active, syncing, conflict, resolved
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
interfaces ClassicalInterface[]
dltInterfaces DistributedLedgerInterface[]
quantumInterfaces QuantumLedgerInterface[]
simInterfaces SimulationInterface[]
synchronizations MRLISynchronization[]
@@index([ledgerId])
@@index([ledgerType])
@@index([status])
@@map("multi_reality_ledgers")
}
model ClassicalInterface {
id String @id @default(uuid())
interfaceId String @unique
ledgerId String
connectionType String // sql, nosql, dbms
connectionString String // Connection details
stateSnapshot Json? // Classical state snapshot
status String @default("active") // active, disconnected, error
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledger MultiRealityLedger @relation(fields: [ledgerId], references: [id], onDelete: Cascade)
@@index([interfaceId])
@@index([ledgerId])
@@index([status])
@@map("classical_interfaces")
}
model DistributedLedgerInterface {
id String @id @default(uuid())
interfaceId String @unique
ledgerId String
ledgerType String // tokenized_asset, security_token_platform
chainId String?
stateSnapshot Json? // DLT state snapshot
status String @default("active") // active, disconnected, error
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledger MultiRealityLedger @relation(fields: [ledgerId], references: [id], onDelete: Cascade)
@@index([interfaceId])
@@index([ledgerId])
@@index([status])
@@map("distributed_ledger_interfaces")
}
model QuantumLedgerInterface {
id String @id @default(uuid())
interfaceId String @unique
ledgerId String
gqlStateAccess Boolean @default(true) // GQL state access
entanglementSnapshot Json? // Entanglement-based snapshots
status String @default("active") // active, disconnected, error
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledger MultiRealityLedger @relation(fields: [ledgerId], references: [id], onDelete: Cascade)
@@index([interfaceId])
@@index([ledgerId])
@@index([status])
@@map("quantum_ledger_interfaces")
}
model SimulationInterface {
id String @id @default(uuid())
interfaceId String @unique
ledgerId String
simulationType String // ai_economic_simulation, hypothetical_ledger_state
simulationState Json? // Simulated ledger state
status String @default("active") // active, disconnected, error
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledger MultiRealityLedger @relation(fields: [ledgerId], references: [id], onDelete: Cascade)
@@index([interfaceId])
@@index([ledgerId])
@@index([status])
@@map("simulation_interfaces")
}
model MRLISynchronization {
id String @id @default(uuid())
syncId String @unique
ledgerId String
classicalState Json?
dltState Json?
quantumState Json?
simulatedState Json?
mergedState Json // MERGE result
conflictDetected Boolean @default(false)
conflictResolution Json? // Conflict resolution using sovereign trust graph
resolutionMethod String? // sovereign_trust_graph, dbis_arbitration
status String @default("pending") // pending, merged, conflict, resolved
syncedAt DateTime?
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledger MultiRealityLedger @relation(fields: [ledgerId], references: [id], onDelete: Cascade)
@@index([syncId])
@@index([ledgerId])
@@index([status])
@@map("mrli_synchronizations")
}
// ============================================================================
// DBIS Volume IX: Advanced Sovereign Simulation Stack (ASSS)
// ============================================================================
model SovereignSimulation {
id String @id @default(uuid())
simulationId String @unique
simulationName String
simulationType String // stress_test, policy_design, fx_band_calibration
status String @default("running") // running, completed, failed, cancelled
startedAt DateTime @default(now())
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
layers SimulationLayer[]
outcomes SimulationOutcome[]
scenario SimulationScenario?
@@index([simulationId])
@@index([simulationType])
@@index([status])
@@map("sovereign_simulations")
}
model SimulationLayer {
id String @id @default(uuid())
layerId String @unique
simulationId String
layerType String // macro, sovereign, micro, asset
layerConfig Json // Layer configuration
layerData Json? // Layer-specific data
status String @default("active") // active, completed, error
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
simulation SovereignSimulation @relation(fields: [simulationId], references: [id], onDelete: Cascade)
@@index([layerId])
@@index([simulationId])
@@index([layerType])
@@index([status])
@@map("simulation_layers")
}
model SimulationOutcome {
id String @id @default(uuid())
outcomeId String @unique
simulationId String
outcomeType String // fx_projection, cbdc_impact, ssu_interaction, commodity_cycle, behavior_impact, risk_assessment
outcomeData Json // Model results: MODEL(FX, CBDC, SSU, commodity, behavior, risk)
projection Json? // Projected outcomes
accuracy Decimal? @db.Decimal(32, 12) // Accuracy score if validated
status String @default("pending") // pending, validated, archived
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
simulation SovereignSimulation @relation(fields: [simulationId], references: [id], onDelete: Cascade)
@@index([outcomeId])
@@index([simulationId])
@@index([outcomeType])
@@index([status])
@@map("simulation_outcomes")
}
model SimulationScenario {
id String @id @default(uuid())
scenarioId String @unique
simulationId String @unique
scenarioName String
scenarioType String // liquidity_shock, fx_collapse, commodity_depletion, sovereign_default
scenarioConfig Json // Scenario configuration
stressLevel String // low, medium, high, extreme
status String @default("active") // active, completed, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
simulation SovereignSimulation @relation(fields: [simulationId], references: [id], onDelete: Cascade)
@@index([scenarioId])
@@index([simulationId])
@@index([scenarioType])
@@index([status])
@@map("simulation_scenarios")
}
// ============================================================================
// DBIS Volume XII: Unified Multiverse Monetary Constitution, Temporal Currency Engines, Interplanetary FX, Infinite-State Reserves, and Omega-Layer Settlement Fabric
// ============================================================================
// ============================================================================
// Volume XII: Unified Multiverse Monetary Constitution (UMMC)
// ============================================================================
model UmmcConstitutionalPillar {
id String @id @default(uuid())
pillarId String @unique
pillarNumber Int // 1, 2, 3, 4, 5
pillarName String // Cross-Reality Sovereign Integrity, Temporal Alignment, Quantum Coherence, Holographic Equivalence, Parallel-State Reconciliation
description String @db.Text
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
clauses UmmcBindingClause[]
mappings UmmcSovereignMapping[]
@@index([pillarId])
@@index([pillarNumber])
@@index([status])
@@map("ummc_constitutional_pillars")
}
model UmmcBindingClause {
id String @id @default(uuid())
clauseId String @unique
clauseCode String // XII-A, XII-F, XII-K
clauseName String
description String @db.Text
pillarId String?
bindingType String // multiversal_finality, anti_divergence, sovereign_identity_equivalence
enforcementLevel String // strict, moderate, advisory
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pillar UmmcConstitutionalPillar? @relation(fields: [pillarId], references: [id], onDelete: SetNull)
validations UmmcClauseValidation[]
@@index([clauseId])
@@index([clauseCode])
@@index([pillarId])
@@index([status])
@@map("ummc_binding_clauses")
}
model UmmcClauseValidation {
id String @id @default(uuid())
validationId String @unique
clauseId String
sovereignBankId String?
validationType String // compliance_check, divergence_measure, identity_verification
validationResult String // compliant, non_compliant, pending
validationData Json? // Validation details
validatedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
clause UmmcBindingClause @relation(fields: [clauseId], references: [id], onDelete: Cascade)
@@index([validationId])
@@index([clauseId])
@@index([sovereignBankId])
@@index([validationResult])
@@map("ummc_clause_validations")
}
model UmmcSovereignMapping {
id String @id @default(uuid())
mappingId String @unique
sovereignBankId String
realityLayer String // classical, distributed, quantum, holographic, parallel
identityAnchor String // Cross-reality identity anchor
ledgerAnchor String? // Ledger anchor reference
settlementAnchor String? // Settlement anchor reference
divergenceBand Decimal? @db.Decimal(32, 12) // Maximum allowed divergence
pillarId String?
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
pillar UmmcConstitutionalPillar? @relation(fields: [pillarId], references: [id], onDelete: SetNull)
@@index([mappingId])
@@index([sovereignBankId])
@@index([realityLayer])
@@index([status])
@@map("ummc_sovereign_mappings")
}
// ============================================================================
// Volume XII: Synthetic Temporal Currency Engine (STCE)
// ============================================================================
model TemporalCurrencyUnit {
id String @id @default(uuid())
tcuId String @unique
tcuCode String @unique // TCU code (e.g., TCU-EARTH, TCU-LUNA)
tcuName String
description String @db.Text
baseCurrency String? // Reference currency for TCU
presentValue Decimal @db.Decimal(32, 12)
primeTemporalBond Boolean @default(true) // Bonded to Prime Ledger
status String @default("active") // active, suspended, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
projections TemporalProjection[]
stabilityStates TemporalStabilityState[]
transactions TemporalCurrencyTransaction[]
@@index([tcuId])
@@index([tcuCode])
@@index([status])
@@map("temporal_currency_units")
}
model TemporalProjection {
id String @id @default(uuid())
projectionId String @unique
tcuId String
projectionType String // forward_indexed, retro_correction
timeDelta Decimal @db.Decimal(32, 12) // Δt in temporal units
projectedValue Decimal @db.Decimal(32, 12)
economicData Json? // Economic projection data
confidence Decimal? @db.Decimal(32, 12) // Confidence score
projectedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
tcu TemporalCurrencyUnit @relation(fields: [tcuId], references: [id], onDelete: Cascade)
@@index([projectionId])
@@index([tcuId])
@@index([projectionType])
@@index([projectedAt])
@@map("temporal_projections")
}
model TemporalStabilityState {
id String @id @default(uuid())
stateId String @unique
tcuId String
presentValue Decimal @db.Decimal(32, 12)
futureWeight Decimal @db.Decimal(32, 12)
retroFactor Decimal @db.Decimal(32, 12)
ssuAnchor Decimal? @db.Decimal(32, 12) // SSU anchor value
calculatedValue Decimal @db.Decimal(32, 12) // TCU_value from stability equation
stabilityScore Decimal? @db.Decimal(32, 12) // Stability metric
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
tcu TemporalCurrencyUnit @relation(fields: [tcuId], references: [id], onDelete: Cascade)
@@index([stateId])
@@index([tcuId])
@@index([calculatedAt])
@@map("temporal_stability_states")
}
model TemporalCurrencyTransaction {
id String @id @default(uuid())
transactionId String @unique
tcuId String
sovereignBankId String
transactionType String // issuance, redemption, transfer, exchange
amount Decimal @db.Decimal(32, 12)
valueAtTime Decimal @db.Decimal(32, 12) // Value at transaction time
timestamp DateTime @default(now())
status String @default("pending") // pending, executed, settled, failed
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
tcu TemporalCurrencyUnit @relation(fields: [tcuId], references: [id], onDelete: Cascade)
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([transactionId])
@@index([tcuId])
@@index([sovereignBankId])
@@index([status])
@@index([timestamp])
@@map("temporal_currency_transactions")
}
// ============================================================================
// Volume XII: Autonomous Interplanetary FX Zone (AIFX)
// ============================================================================
model AifxCorridor {
id String @id @default(uuid())
corridorId String @unique
corridorName String // Earth ↔ Luna, Earth ↔ Mars, Mars ↔ Luna, Interplanetary SSU
originPlanet String // Earth, Luna, Mars
destinationPlanet String // Earth, Luna, Mars
baseCurrency String
quoteCurrency String
lagAdjustment Decimal @db.Decimal(32, 12) // Latency adjustment factor
gravityFactor Decimal @db.Decimal(32, 12) // Gravity-based adjustment
radiationRiskSpread Decimal @db.Decimal(32, 12) // Volatility spread
velocityNormalization Decimal @db.Decimal(32, 12) // Planetary velocity normalization
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
trades AifxTrade[]
pricingStates AifxPricingState[]
@@index([corridorId])
@@index([originPlanet, destinationPlanet])
@@index([status])
@@map("aifx_corridors")
}
model AifxTrade {
id String @id @default(uuid())
tradeId String @unique
corridorId String
sovereignBankId String
baseCurrency String
quoteCurrency String
amount Decimal @db.Decimal(32, 12)
fxPrice Decimal @db.Decimal(32, 12)
liquidityWeight Decimal @db.Decimal(32, 12)
gravityFactor Decimal @db.Decimal(32, 12)
latencyCost Decimal @db.Decimal(32, 12)
timeDilationIndex Decimal @db.Decimal(32, 12)
ssuStability Decimal? @db.Decimal(32, 12)
settlementMode String // atomic, rtgs, delayed
status String @default("pending") // pending, executed, settled, failed
executedAt DateTime?
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
corridor AifxCorridor @relation(fields: [corridorId], references: [id], onDelete: Cascade)
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([tradeId])
@@index([corridorId])
@@index([sovereignBankId])
@@index([status])
@@index([executedAt])
@@map("aifx_trades")
}
model AifxPricingState {
id String @id @default(uuid())
pricingId String @unique
corridorId String
fxPrice Decimal @db.Decimal(32, 12)
liquidityWeight Decimal @db.Decimal(32, 12)
gravityFactor Decimal @db.Decimal(32, 12)
latencyCost Decimal @db.Decimal(32, 12)
timeDilationIndex Decimal @db.Decimal(32, 12)
ssuStability Decimal? @db.Decimal(32, 12)
pricingMethod String // nce, caso, hybrid
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
corridor AifxCorridor @relation(fields: [corridorId], references: [id], onDelete: Cascade)
@@index([pricingId])
@@index([corridorId])
@@index([calculatedAt])
@@map("aifx_pricing_states")
}
model InterplanetarySsu {
id String @id @default(uuid())
issuId String @unique
issuCode String @unique // iSSU code
description String @db.Text
basePlanet String? // Reference planet
composition Json? // Asset composition
conversionRate Decimal? @db.Decimal(32, 12)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
transactions InterplanetarySsuTransaction[]
@@index([issuId])
@@index([issuCode])
@@index([status])
@@map("interplanetary_ssus")
}
model InterplanetarySsuTransaction {
id String @id @default(uuid())
transactionId String @unique
issuId String
sovereignBankId String
amount Decimal @db.Decimal(32, 12)
originPlanet String
destinationPlanet String
settlementMode String
status String @default("pending")
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
issu InterplanetarySsu @relation(fields: [issuId], references: [id], onDelete: Cascade)
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([transactionId])
@@index([issuId])
@@index([sovereignBankId])
@@index([status])
@@map("interplanetary_ssu_transactions")
}
// ============================================================================
// Volume XII: Infinite-State Reserve Model (ISRM)
// ============================================================================
model InfiniteStateReserve {
id String @id @default(uuid())
reserveId String @unique
reserveName String
classicalReserve Decimal @db.Decimal(32, 12)
quantumReserve Decimal? @db.Decimal(32, 12) // Quantum superposition reserve
parallelReserve Decimal? @db.Decimal(32, 12) // Parallel state reserve
holographicReserve Decimal? @db.Decimal(32, 12) // Holographic projection reserve
temporalReserve Decimal? @db.Decimal(32, 12) // Temporal future reserve
totalReserve Decimal @db.Decimal(32, 12) // Calculated total
variance Decimal? @db.Decimal(32, 12) // Cross-state variance
entropy Decimal? @db.Decimal(32, 12) // Quantum entropy
status String @default("active")
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
quantumStates QuantumReserveState[]
parallelBranches ParallelReserveBranch[]
temporalFutures TemporalReserveFuture[]
@@index([reserveId])
@@index([status])
@@index([calculatedAt])
@@map("infinite_state_reserves")
}
model QuantumReserveState {
id String @id @default(uuid())
stateId String @unique
reserveId String
quantumState Json // Quantum state representation
probabilityAmplitude Decimal @db.Decimal(32, 12)
entanglementHash String? // Entanglement reference
coherence Decimal? @db.Decimal(32, 12) // Quantum coherence measure
measuredAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reserve InfiniteStateReserve @relation(fields: [reserveId], references: [id], onDelete: Cascade)
@@index([stateId])
@@index([reserveId])
@@index([measuredAt])
@@map("quantum_reserve_states")
}
model ParallelReserveBranch {
id String @id @default(uuid())
branchId String @unique
reserveId String
branchName String
branchState String // parallel_outcome_1, parallel_outcome_2, etc.
reserveAmount Decimal @db.Decimal(32, 12)
probability Decimal? @db.Decimal(32, 12) // Branch probability
divergence Decimal? @db.Decimal(32, 12) // Divergence from prime
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reserve InfiniteStateReserve @relation(fields: [reserveId], references: [id], onDelete: Cascade)
@@index([branchId])
@@index([reserveId])
@@index([branchState])
@@index([status])
@@map("parallel_reserve_branches")
}
model TemporalReserveFuture {
id String @id @default(uuid())
futureId String @unique
reserveId String
futureTime DateTime // Projected future time
projectedReserve Decimal @db.Decimal(32, 12)
confidence Decimal? @db.Decimal(32, 12)
scenario String? // Future scenario identifier
projectedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reserve InfiniteStateReserve @relation(fields: [reserveId], references: [id], onDelete: Cascade)
@@index([futureId])
@@index([reserveId])
@@index([futureTime])
@@map("temporal_reserve_futures")
}
// ============================================================================
// Volume XII: Omega-Layer Settlement Fabric (Ω-LSF)
// ============================================================================
model OmegaLayer {
id String @id @default(uuid())
layerId String @unique
layerNumber Int // 0, 1, 2, 3, 4
layerName String // Ω0: Prime Ledger, Ω1: Quantum Ledger, Ω2: Holographic Simulation, Ω3: Parallel-State Ledger, Ω4: Temporal Ledger
description String @db.Text
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
states OmegaState[]
reconciliations OmegaReconciliation[]
@@index([layerId])
@@index([layerNumber])
@@index([status])
@@map("omega_layers")
}
model OmegaState {
id String @id @default(uuid())
stateId String @unique
layerId String
stateHash String // State hash/identifier
stateData Json // Layer-specific state data
primeState Json? // Ω0 prime state reference
quantumState Json? // Ω1 quantum state
holographicState Json? // Ω2 holographic state
parallelState Json? // Ω3 parallel state
temporalState Json? // Ω4 temporal state
mergedState Json? // MERGE result
consistencyStatus String @default("pending") // pending, consistent, inconsistent, corrected
timestamp DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
layer OmegaLayer @relation(fields: [layerId], references: [id], onDelete: Cascade)
@@index([stateId])
@@index([layerId])
@@index([consistencyStatus])
@@index([timestamp])
@@map("omega_states")
}
model OmegaReconciliation {
id String @id @default(uuid())
reconciliationId String @unique
layerId String?
reconciliationType String // dimensional, cross_reality, temporal, quantum_temporal
primeState Json?
quantumState Json?
holographicState Json?
parallelState Json?
temporalState Json?
mergedState Json // MERGE result
inconsistencyDetected Boolean @default(false)
correctionMethod String? // quantum_temporal_correction, realign_all_states
correctionApplied Json? // Correction details
status String @default("pending") // pending, reconciled, inconsistent, corrected
reconciledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
layer OmegaLayer? @relation(fields: [layerId], references: [id], onDelete: SetNull)
consistencyEvents OmegaConsistencyEvent[]
@@index([reconciliationId])
@@index([layerId])
@@index([status])
@@index([reconciledAt])
@@map("omega_reconciliations")
}
model OmegaConsistencyEvent {
id String @id @default(uuid())
eventId String @unique
reconciliationId String
eventType String // inconsistency_detected, correction_executed, realignment_complete
eventData Json? // Event details
consistencyBefore String? // Consistency status before event
consistencyAfter String? // Consistency status after event
timestamp DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reconciliation OmegaReconciliation @relation(fields: [reconciliationId], references: [id], onDelete: Cascade)
@@index([eventId])
@@index([reconciliationId])
@@index([eventType])
@@index([timestamp])
@@map("omega_consistency_events")
}
// ============================================================================
// Volume XII: Sovereign Multiverse Continuity Protocols (SMCP)
// ============================================================================
model SovereignContinuityIdentity {
id String @id @default(uuid())
continuityId String @unique
sovereignBankId String
unifiedIdentity String // Unified SCB identity across all realities
classicalIdentity String? // Classical reality identity
quantumIdentity String? // Quantum realm identity
holographicIdentity String? // Holographic/simulated identity
parallelIdentity Json? // Parallel state identities (array)
temporalIdentity String? // Temporal identity anchor
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
stateMappings MultiverseStateMapping[]
@@index([continuityId])
@@index([sovereignBankId])
@@index([status])
@@map("sovereign_continuity_identities")
}
model MultiverseStateMapping {
id String @id @default(uuid())
mappingId String @unique
continuityId String
realityType String // classical, quantum, holographic, parallel, temporal
stateIdentifier String // State identifier in that reality
stateData Json? // State-specific data
divergence Decimal? @db.Decimal(32, 12) // Divergence from unified identity
lastSynced DateTime?
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
continuity SovereignContinuityIdentity @relation(fields: [continuityId], references: [id], onDelete: Cascade)
@@index([mappingId])
@@index([continuityId])
@@index([realityType])
@@index([status])
@@map("multiverse_state_mappings")
}
// Add relations to existing SovereignBank model
// These will be added via separate search_replace operations
// ============================================================================
// DBIS Volume XI: Supra-Constitutional DBIS Charter (SCDC)
// ============================================================================
model SupraConstitutionalCharter {
id String @id @default(uuid())
charterId String @unique
version String // Version of the charter
effectiveDate DateTime @default(now())
status String @default("active") // active, superseded, archived
metaSovereignPrimacy Boolean @default(true)
dimensionalConsistency Boolean @default(true)
temporalNonContradiction Boolean @default(true)
economicCausality Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
articles CharterArticle[]
integrityChecks TemporalIntegrityCheck[]
aiActions AIAutonomousAction[]
@@index([charterId])
@@index([version])
@@index([status])
@@map("supra_constitutional_charter")
}
model CharterArticle {
id String @id @default(uuid())
articleId String @unique
charterId String
articleNumber Int // Article 1, 9, 14, 22, etc.
title String
content String @db.Text
principleType String? // settlement_supremacy, temporal_integrity, multiversal_recognition, ai_mandate
enforcementLevel String @default("mandatory") // mandatory, advisory, optional
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
charter SupraConstitutionalCharter @relation(fields: [charterId], references: [id], onDelete: Cascade)
@@index([articleId])
@@index([charterId])
@@index([articleNumber])
@@index([principleType])
@@map("charter_articles")
}
model TemporalIntegrityCheck {
id String @id @default(uuid())
checkId String @unique
charterId String
transactionId String? // Related transaction if applicable
checkType String // causality, non_contradiction, timeline_integrity
checkResult String // passed, failed, warning
checkDetails Json? // Detailed check results
contradictionDetected Boolean @default(false)
resolved Boolean @default(false)
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
charter SupraConstitutionalCharter @relation(fields: [charterId], references: [id], onDelete: Cascade)
@@index([checkId])
@@index([charterId])
@@index([transactionId])
@@index([checkType])
@@index([checkResult])
@@map("temporal_integrity_checks")
}
model AIAutonomousAction {
id String @id @default(uuid())
actionId String @unique
charterId String
aiSystem String // NCE, ARI, SARE
actionType String // stability_enforcement, risk_mitigation, settlement_correction
actionDetails Json // Action parameters and results
authorizationLevel String // autonomous, supervised, manual
status String @default("pending") // pending, executing, completed, failed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
charter SupraConstitutionalCharter @relation(fields: [charterId], references: [id], onDelete: Cascade)
@@index([actionId])
@@index([charterId])
@@index([aiSystem])
@@index([actionType])
@@index([status])
@@map("ai_autonomous_actions")
}
// ============================================================================
// DBIS Volume XI: Global Multiversal Monetary Theory (GMMT)
// ============================================================================
model RealityLayer {
id String @id @default(uuid())
layerId String @unique
layerName String
layerType String // classical, quantum, simulated, holographic, parallel
authenticationStatus String @default("pending") // pending, authenticated, rejected
coherenceLevel Decimal @db.Decimal(32, 12) // Consistency with Prime Ledger
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
monetaryUnits MultiversalMonetaryUnit[]
conversions MonetaryUnitConversion[]
valuations ValuationCalculation[]
@@index([layerId])
@@index([layerType])
@@index([authenticationStatus])
@@map("reality_layers")
}
model MultiversalMonetaryUnit {
id String @id @default(uuid())
unitId String @unique
layerId String
unitType String // PMU, QMU, HMU, PSU
unitName String
anchorValue Decimal? @db.Decimal(32, 12) // Anchor to Prime Monetary Unit
derivationFormula Json? // How unit is derived (SSU + temporal stability functions)
quantumState Json? // For QMU: quantum resonance states
holographicEncoding Json? // For HMU: holographic projection data
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
layer RealityLayer @relation(fields: [layerId], references: [id], onDelete: Cascade)
conversions MonetaryUnitConversion[] @relation("SourceUnit")
targetConversions MonetaryUnitConversion[] @relation("TargetUnit")
valuations ValuationCalculation[]
@@index([unitId])
@@index([layerId])
@@index([unitType])
@@map("multiversal_monetary_units")
}
model MonetaryUnitConversion {
id String @id @default(uuid())
conversionId String @unique
sourceUnitId String
targetUnitId String
conversionRate Decimal @db.Decimal(32, 12)
conversionFormula Json? // Conversion calculation details
confidenceLevel Decimal @db.Decimal(32, 12) // 0-1 confidence in conversion
status String @default("active")
validFrom DateTime @default(now())
validTo DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sourceUnit MultiversalMonetaryUnit @relation("SourceUnit", fields: [sourceUnitId], references: [id], onDelete: Cascade)
targetUnit MultiversalMonetaryUnit @relation("TargetUnit", fields: [targetUnitId], references: [id], onDelete: Cascade)
@@index([conversionId])
@@index([sourceUnitId])
@@index([targetUnitId])
@@index([status])
realityLayer RealityLayer[]
@@map("monetary_unit_conversions")
}
model ValuationCalculation {
id String @id @default(uuid())
valuationId String @unique
layerId String
unitId String
assetId String? // Asset being valued
classicalValue Decimal @db.Decimal(32, 12)
quantumExpectedValue Decimal? @db.Decimal(32, 12)
holographicProjection Decimal? @db.Decimal(32, 12)
parallelArbitrageAdjustment Decimal? @db.Decimal(32, 12)
totalValue Decimal @db.Decimal(32, 12) // Sum of all components
calculationFormula Json // Full formula breakdown
status String @default("active")
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
layer RealityLayer @relation(fields: [layerId], references: [id], onDelete: Cascade)
unit MultiversalMonetaryUnit @relation(fields: [unitId], references: [id], onDelete: Cascade)
@@index([valuationId])
@@index([layerId])
@@index([unitId])
@@index([assetId])
@@map("valuation_calculations")
}
// ============================================================================
// DBIS Volume XI: Temporal Liquidity Portals (TLP)
// ============================================================================
model TemporalLiquidityPortal {
id String @id @default(uuid())
portalId String @unique
portalName String
targetTimeDelta Int // Δ in seconds (future time window)
confidenceLevel Decimal @db.Decimal(32, 12) // 0-1 confidence
maxLiquidityBorrow Decimal @db.Decimal(32, 8) // Maximum liquidity that can be borrowed
status String @default("active") // active, suspended, closed
activatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reserves FutureLiquidityReserve[]
paradoxDetections ParadoxDetection[]
buffers TemporalBuffer[]
@@index([portalId])
@@index([status])
@@map("temporal_liquidity_portals")
}
model FutureLiquidityReserve {
id String @id @default(uuid())
reserveId String @unique
portalId String
predictedTime DateTime // t+Δ
predictedReserves Decimal @db.Decimal(32, 8)
confidenceLevel Decimal @db.Decimal(32, 12)
availableLiquidity Decimal @db.Decimal(32, 8) // predicted_reserves * confidence_level
borrowedAmount Decimal @default(0) @db.Decimal(32, 8)
status String @default("available") // available, borrowed, exhausted, expired
expiresAt DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
portal TemporalLiquidityPortal @relation(fields: [portalId], references: [id], onDelete: Cascade)
@@index([reserveId])
@@index([portalId])
@@index([predictedTime])
@@index([status])
@@map("future_liquidity_reserves")
}
model ParadoxDetection {
id String @id @default(uuid())
detectionId String @unique
portalId String
transactionId String? // Related transaction
paradoxType String // causality_violation, timeline_contradiction, economic_paradox
severity String // low, medium, high, critical
detectedAt DateTime @default(now())
resolved Boolean @default(false)
resolutionMethod String? // rollback, adjustment, rejection
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
portal TemporalLiquidityPortal @relation(fields: [portalId], references: [id], onDelete: Cascade)
@@index([detectionId])
@@index([portalId])
@@index([transactionId])
@@index([paradoxType])
@@index([resolved])
@@map("paradox_detections")
}
model TemporalBuffer {
id String @id @default(uuid())
bufferId String @unique
portalId String
bufferType String // interplanetary_settlement, csse, ai_policy_correction
bufferAmount Decimal @db.Decimal(32, 8)
allocatedAmount Decimal @default(0) @db.Decimal(32, 8)
status String @default("active") // active, allocated, exhausted
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
portal TemporalLiquidityPortal @relation(fields: [portalId], references: [id], onDelete: Cascade)
@@index([bufferId])
@@index([portalId])
@@index([bufferType])
@@map("temporal_buffers")
}
// ============================================================================
// DBIS Volume XI: Unified Holographic Economic Model (UHEM)
// ============================================================================
model HolographicEconomicState {
id String @id @default(uuid())
stateId String @unique
stateHash String @unique // Hash of encoded state
cbdcFlow Json // CBDC flow data
fxMatrix Json // FX matrix data
ssuPressure Json // SSU pressure indicators
stabilityFields Json // Stability field data
encodedState Json // Full ENCODE result
timestamp DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
projections EconomicProjection[]
corrections DeviationCorrection[]
mappings HolographicMapping[]
@@index([stateId])
@@index([stateHash])
@@index([timestamp])
@@map("holographic_economic_states")
}
model EconomicProjection {
id String @id @default(uuid())
projectionId String @unique
stateId String
targetReality String // Target reality layer for projection
projectionData Json // Projected economic flows
projectionMethod String // forward_projection, reverse_projection, cross_reality
accuracy Decimal? @db.Decimal(32, 12) // Projection accuracy if validated
status String @default("active") // active, validated, archived
projectedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
state HolographicEconomicState @relation(fields: [stateId], references: [id], onDelete: Cascade)
@@index([projectionId])
@@index([stateId])
@@index([targetReality])
@@index([status])
@@map("economic_projections")
}
model DeviationCorrection {
id String @id @default(uuid())
correctionId String @unique
stateId String
deviationType String // non_physical, inconsistency, divergence
deviationMagnitude Decimal @db.Decimal(32, 12)
correctionApplied Json // Correction details
correctionMethod String // reverse_projection, prime_ledger_alignment
status String @default("pending") // pending, applied, verified
correctedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
state HolographicEconomicState @relation(fields: [stateId], references: [id], onDelete: Cascade)
@@index([correctionId])
@@index([stateId])
@@index([deviationType])
@@index([status])
@@map("deviation_corrections")
}
model HolographicMapping {
id String @id @default(uuid())
mappingId String @unique
stateId String
sourceReality String // Source reality layer
targetReality String // Target reality layer
mappingData Json // Mapping transformation data
mappingType String // economic_flow, behavioral_dynamics, predictive_analytics
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
state HolographicEconomicState @relation(fields: [stateId], references: [id], onDelete: Cascade)
@@index([mappingId])
@@index([stateId])
@@index([sourceReality])
@@index([targetReality])
@@map("holographic_mappings")
}
// ============================================================================
// DBIS Volume XI: Omni-Sovereign Settlement Matrix (OSSM)
// ============================================================================
model OmniSovereignMatrix {
id String @id @default(uuid())
matrixId String @unique
matrixName String
status String @default("active") // active, suspended, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
dimensions MatrixDimension[]
coordinates SettlementCoordinate[]
layerStates RealityLayerState[]
@@index([matrixId])
@@index([status])
@@map("omni_sovereign_matrices")
}
model MatrixDimension {
id String @id @default(uuid())
dimensionId String @unique
matrixId String
dimensionType String // X_sovereign, Y_asset, Z_temporal, Omega_reality
dimensionName String
dimensionData Json // Dimension-specific data (SCBs, assets, timeframes, realities)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
matrix OmniSovereignMatrix @relation(fields: [matrixId], references: [id], onDelete: Cascade)
@@index([dimensionId])
@@index([matrixId])
@@index([dimensionType])
@@map("matrix_dimensions")
}
model SettlementCoordinate {
id String @id @default(uuid())
coordinateId String @unique
matrixId String
sovereignIndex Int // X dimension
assetIndex Int // Y dimension
temporalIndex Int // Z dimension
realityIndex Int // Ω dimension
settlementState Json // State at this coordinate
settlementStatus String @default("pending") // pending, synchronized, conflicted
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
matrix OmniSovereignMatrix @relation(fields: [matrixId], references: [id], onDelete: Cascade)
@@index([coordinateId])
@@index([matrixId])
@@index([sovereignIndex, assetIndex, temporalIndex, realityIndex])
@@index([settlementStatus])
@@map("settlement_coordinates")
}
model RealityLayerState {
id String @id @default(uuid())
stateId String @unique
matrixId String
realityLayer String // classical, quantum, simulated, parallel
layerState Json // MERGE result for this reality
syncStatus String @default("pending") // pending, synced, conflicted
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
matrix OmniSovereignMatrix @relation(fields: [matrixId], references: [id], onDelete: Cascade)
@@index([stateId])
@@index([matrixId])
@@index([realityLayer])
@@index([syncStatus])
@@map("reality_layer_states")
}
// ============================================================================
// DBIS Volume XI: Multiverse-Consistent FX/SSU Stability Framework
// ============================================================================
model MultiverseStabilityIndex {
id String @id @default(uuid())
indexId String @unique
realityLayer String // Which reality layer this index applies to
fxStability Decimal @db.Decimal(32, 12)
ssuInertia Decimal @db.Decimal(32, 12)
temporalSmoothing Decimal @db.Decimal(32, 12)
crossRealityDivergence Decimal @db.Decimal(32, 12)
totalStability Decimal @db.Decimal(32, 12) // Calculated stability score
status String @default("active")
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
calculations StabilityCalculation[]
divergences RealityDivergence[]
@@index([indexId])
@@index([realityLayer])
@@index([calculatedAt])
@@map("multiverse_stability_indices")
}
model RealityDivergence {
id String @id @default(uuid())
divergenceId String @unique
indexId String
sourceReality String
targetReality String
divergenceType String // fx_divergence, ssu_divergence, stability_divergence
divergenceMagnitude Decimal @db.Decimal(32, 12)
threshold Decimal @db.Decimal(32, 12) // Alert threshold
alertLevel String // info, warning, critical
status String @default("detected") // detected, resolved, ignored
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
index MultiverseStabilityIndex @relation(fields: [indexId], references: [id], onDelete: Cascade)
@@index([divergenceId])
@@index([indexId])
@@index([sourceReality, targetReality])
@@index([alertLevel])
convergence RealityConvergence[]
@@map("reality_divergences")
}
model StabilityCalculation {
id String @id @default(uuid())
calculationId String @unique
indexId String
calculationType String // fx_stability, ssu_inertia, temporal_smoothing, divergence
inputData Json // Input parameters
calculationResult Decimal @db.Decimal(32, 12)
calculationFormula Json // Formula used
status String @default("active")
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
index MultiverseStabilityIndex @relation(fields: [indexId], references: [id], onDelete: Cascade)
@@index([calculationId])
@@index([indexId])
@@index([calculationType])
@@map("stability_calculations")
}
// ============================================================================
// DBIS Volume XI: Quantum-Temporal Arbitration Engine (QTAE)
// ============================================================================
model QuantumTemporalArbitration {
id String @id @default(uuid())
arbitrationId String @unique
arbitrationType String // cross_chain, temporal, parallel, quantum
status String @default("pending") // pending, analyzing, resolved, failed
initiatedAt DateTime @default(now())
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contradictions ContradictionEvent[]
rollbacks ConsistencyRollback[]
decisions ArbitrationDecision[]
@@index([arbitrationId])
@@index([arbitrationType])
@@index([status])
@@map("quantum_temporal_arbitrations")
}
model ContradictionEvent {
id String @id @default(uuid())
eventId String @unique
arbitrationId String
contradictionType String // cross_chain_state, temporal_inconsistency, parallel_ledger_conflict, quantum_deviation
severity String // low, medium, high, critical
detectedAt DateTime @default(now())
eventData Json // Contradiction details
resolved Boolean @default(false)
resolutionMethod String? // rollback, adjustment, rejection
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
arbitration QuantumTemporalArbitration @relation(fields: [arbitrationId], references: [id], onDelete: Cascade)
@@index([eventId])
@@index([arbitrationId])
@@index([contradictionType])
@@index([resolved])
@@map("contradiction_events")
}
model ConsistencyRollback {
id String @id @default(uuid())
rollbackId String @unique
arbitrationId String
targetState Json // State to rollback to
rollbackReason String
rollbackScope Json // What is being rolled back
status String @default("pending") // pending, executing, completed, failed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
arbitration QuantumTemporalArbitration @relation(fields: [arbitrationId], references: [id], onDelete: Cascade)
@@index([rollbackId])
@@index([arbitrationId])
@@index([status])
@@map("consistency_rollbacks")
}
model ArbitrationDecision {
id String @id @default(uuid())
decisionId String @unique
arbitrationId String
decisionType String // rollback, affirm_finality, partial_resolution
decisionDetails Json // Decision rationale and actions
finality Boolean @default(false) // Whether decision is final
msaNotified Boolean @default(false) // Whether MSA has been notified
msaNotificationAt DateTime?
status String @default("pending") // pending, executed, confirmed
decidedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
arbitration QuantumTemporalArbitration @relation(fields: [arbitrationId], references: [id], onDelete: Cascade)
@@index([decisionId])
@@index([arbitrationId])
@@index([decisionType])
@@index([finality])
@@map("arbitration_decisions")
}
// ============================================================================
// DBIS Volume X: Meta-Sovereign Governance Framework (MSGF)
// ============================================================================
model MetaSovereignCouncil {
id String @id @default(uuid())
councilId String @unique
councilType String // MSA, UMC, AESU
name String
description String @db.Text
authorityLevel String // Tier 0 - Meta-Sovereign
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
members MetaSovereignCouncilMember[]
policies MetaSovereignPolicy[]
decisions MetaSovereignDecision[]
@@index([councilId])
@@index([councilType])
@@index([status])
@@map("meta_sovereign_councils")
}
model MetaSovereignCouncilMember {
id String @default(uuid()) @id
councilId String
sovereignBankId String?
memberName String
memberRole String
votingWeight Decimal? @db.Decimal(32, 8)
status String @default("active")
appointedAt DateTime @default(now())
termEndDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
council MetaSovereignCouncil @relation(fields: [councilId], references: [id], onDelete: Cascade)
sovereignBank SovereignBank? @relation(fields: [sovereignBankId], references: [id], onDelete: SetNull)
@@index([councilId])
@@index([sovereignBankId])
@@map("meta_sovereign_council_members")
}
model GovernanceTier {
id String @id @default(uuid())
tierId String @unique
tierNumber Int // 0, 1, 2, 3
tierName String // Tier 0 - Meta-Sovereign, Tier 1 - Sovereign, etc.
description String @db.Text
authorityScope Json // Authority definitions
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([tierId])
@@index([tierNumber])
@@index([status])
toDelegations TierDelegation[] @relation("ToTier")
fromDelegations TierDelegation[] @relation("FromTier")
@@map("governance_tiers")
}
model TierDelegation {
id String @id @default(uuid())
delegationId String @unique
fromTierId String
toTierId String
delegationType String // cross_border_settlement, cbdc_compliance, fx_alignment
authorityScope Json
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
fromTier GovernanceTier @relation("FromTier", fields: [fromTierId], references: [id], onDelete: Cascade)
toTier GovernanceTier @relation("ToTier", fields: [toTierId], references: [id], onDelete: Cascade)
@@index([delegationId])
@@index([fromTierId])
@@index([toTierId])
@@index([status])
@@map("tier_delegations")
}
model MetaSovereignPolicy {
id String @id @default(uuid())
policyId String @unique
councilId String
policyType String // fx_governance, cbdc_interoperability, ssu_composition, global_liquidity
policyTitle String
policyContent Json // Policy details
enforcementLevel String // advisory, mandatory, critical
status String @default("draft") // draft, active, suspended, revoked
effectiveDate DateTime?
revokedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
council MetaSovereignCouncil @relation(fields: [councilId], references: [id], onDelete: Cascade)
enforcements PolicyEnforcement[]
@@index([policyId])
@@index([councilId])
@@index([policyType])
@@index([status])
@@map("meta_sovereign_policies")
}
model PolicyEnforcement {
id String @id @default(uuid())
enforcementId String @unique
policyId String
enforcementType String // privilege_suspension, liquidity_compression, liquidity_expansion, ssu_recalibration, fx_band_reset
targetSovereignBankId String?
enforcementData Json
status String @default("pending") // pending, active, completed, cancelled
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
policy MetaSovereignPolicy @relation(fields: [policyId], references: [id], onDelete: Cascade)
@@index([enforcementId])
@@index([policyId])
@@index([targetSovereignBankId])
@@index([status])
@@map("policy_enforcements")
}
model SovereignPrivilege {
id String @id @default(uuid())
privilegeId String @unique
sovereignBankId String
privilegeType String // settlement_access, cbdc_issuance, fx_trading, liquidity_access
status String @default("active") // active, suspended, revoked
suspensionReason String? @db.Text
suspendedAt DateTime?
restoredAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([privilegeId])
@@index([sovereignBankId])
@@index([privilegeType])
@@index([status])
@@map("sovereign_privileges")
}
model MetaSovereignDecision {
id String @id @default(uuid())
decisionId String @unique
councilId String
decisionType String // policy_approval, enforcement_order, dispute_resolution
decisionContent Json
status String @default("pending") // pending, approved, rejected, executed
approvedAt DateTime?
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
council MetaSovereignCouncil @relation(fields: [councilId], references: [id], onDelete: Cascade)
@@index([decisionId])
@@index([councilId])
@@index([status])
@@map("meta_sovereign_decisions")
}
// ============================================================================
// DBIS Volume X: Universal Monetary Alignment Protocol (UMAP)
// ============================================================================
model UniversalMonetaryBaseline {
id String @id @default(uuid())
umbId String @unique
baselineName String
description String @db.Text
valuationStandard Json // Neutral valuation standards
assetTypes Json // fiat, cbdc, commodity, ssu, synthetic_planetary
status String @default("active") // active, deprecated, draft
effectiveDate DateTime @default(now())
deprecatedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
parityCalculations GlobalParityEngine[]
@@index([umbId])
@@index([status])
@@map("universal_monetary_baselines")
}
model GlobalParityEngine {
id String @id @default(uuid())
parityId String @unique
umbId String?
currencyCode String
assetType String // fiat, cbdc, commodity, ssu
fxWeight Decimal @db.Decimal(32, 12)
commodityWeight Decimal @db.Decimal(32, 12)
ssuStability Decimal @db.Decimal(32, 12)
riskPremium Decimal @db.Decimal(32, 12)
calculatedParity Decimal @db.Decimal(32, 12) // parity = fx_weight + commodity_weight + ssu_stability + risk_premium
status String @default("active")
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
umb UniversalMonetaryBaseline? @relation(fields: [umbId], references: [id], onDelete: SetNull)
contracts AlignmentContract[]
@@index([parityId])
@@index([currencyCode])
@@index([assetType])
@@index([status])
@@map("global_parity_engines")
}
model AlignmentContract {
id String @id @default(uuid())
contractId String @unique
parityId String
contractType String // re_alignment_target, fx_corridor_limit, ssu_stabilization
contractRules Json // Smart contract rules
targetValue Decimal? @db.Decimal(32, 12)
threshold Decimal? @db.Decimal(32, 12)
status String @default("active") // active, triggered, expired
triggeredAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
parity GlobalParityEngine @relation(fields: [parityId], references: [id], onDelete: Cascade)
@@index([contractId])
@@index([parityId])
@@index([contractType])
@@index([status])
@@map("alignment_contracts")
}
model MonetaryDriftCorrection {
id String @id @default(uuid())
correctionId String @unique
currencyCode String
assetType String
driftAmount Decimal @db.Decimal(32, 12)
driftType String // market_drift, fx_drift, commodity_shock
correctionMethod String // cbdc_rebalancing, ssu_pressure_absorption, fx_cost_correction
correctionAmount Decimal @db.Decimal(32, 12)
status String @default("pending") // pending, applied, failed
appliedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([correctionId])
@@index([currencyCode])
@@index([assetType])
@@index([status])
@@map("monetary_drift_corrections")
}
// ============================================================================
// DBIS Volume X: Neural Consensus Engine (NCE)
// ============================================================================
model NeuralConsensusState {
id String @id @default(uuid())
stateId String @unique
ledgerStateHash String
neuralVote Decimal @db.Decimal(32, 12) // Confidence percentage (0-100)
scbSignals Json // SCB signal data
aiForecasts Json // AI forecast data
quantumSignatures Json // Quantum signature data
consensusResult String // approved, rejected, pending
confidenceThreshold Decimal @default(97) @db.Decimal(32, 12) // Default 97%
status String @default("pending") // pending, confirmed, rejected
confirmedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
layers NeuralLayer[]
signatures NeuralQuantumSignature[]
@@index([stateId])
@@index([ledgerStateHash])
@@index([consensusResult])
@@index([status])
@@map("neural_consensus_states")
}
model NeuralLayer {
id String @id @default(uuid())
layerId String @unique
stateId String
layerType String // input, consensus, decision
layerData Json // Layer processing data
output Json? // Layer output
status String @default("active")
processedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
state NeuralConsensusState @relation(fields: [stateId], references: [id], onDelete: Cascade)
@@index([layerId])
@@index([stateId])
@@index([layerType])
@@map("neural_layers")
}
model NeuralQuantumSignature {
id String @id @default(uuid())
signatureId String @unique
stateId String
quantumKeyId String
signature String
signatureType String // pq_dilithium, pq_kyber, xmss, sphincs_plus
thresholdMet Boolean @default(false)
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
state NeuralConsensusState @relation(fields: [stateId], references: [id], onDelete: Cascade)
@@index([signatureId])
@@index([stateId])
@@index([quantumKeyId])
@@index([thresholdMet])
@@map("neural_quantum_signatures")
}
// ============================================================================
// DBIS Volume X: Fully Autonomous CBDC Economies (FACE)
// ============================================================================
model FaceEconomy {
id String @id @default(uuid())
economyId String @unique
sovereignBankId String
economyName String
description String @db.Text
economyType String // retail, wholesale, hybrid
status String @default("active") // active, suspended, archived
activatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
behavioralEngine FaceBehavioralEngine?
supplyContracts FaceSupplyContract[]
stabilizationContracts FaceStabilizationContract[]
incentives FaceIncentive[]
@@index([economyId])
@@index([sovereignBankId])
@@index([status])
@@map("face_economies")
}
model FaceBehavioralEngine {
id String @id @default(uuid())
engineId String @unique
economyId String @unique
engineConfig Json // AI behavioral configuration
behaviorModel String // Model type/version
status String @default("active")
lastUpdated DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
economy FaceEconomy @relation(fields: [economyId], references: [id], onDelete: Cascade)
@@index([engineId])
@@index([economyId])
@@map("face_behavioral_engines")
}
model FaceSupplyContract {
id String @id @default(uuid())
contractId String @unique
economyId String
contractType String // automatic_supply_adjustment
velocityTarget Decimal @db.Decimal(32, 12)
velocityDangerThreshold Decimal @db.Decimal(32, 12)
mintCondition Json // if velocity < target: mint_cbdc()
burnCondition Json // elif velocity > danger_threshold: burn_cbdc()
status String @default("active") // active, triggered, suspended
lastTriggeredAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
economy FaceEconomy @relation(fields: [economyId], references: [id], onDelete: Cascade)
@@index([contractId])
@@index([economyId])
@@index([status])
@@map("face_supply_contracts")
}
model FaceStabilizationContract {
id String @id @default(uuid())
contractId String @unique
economyId String
contractType String // auto_stabilization
sriThreshold Decimal @db.Decimal(32, 12)
rateAdjustmentRule Json // if SRI_risk > threshold: impose_rate_adjustment()
adjustmentType String // interest_rate, liquidity_rate, fee_adjustment
status String @default("active") // active, triggered, suspended
lastTriggeredAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
economy FaceEconomy @relation(fields: [economyId], references: [id], onDelete: Cascade)
@@index([contractId])
@@index([economyId])
@@index([status])
@@map("face_stabilization_contracts")
}
model FaceIncentive {
id String @id @default(uuid())
incentiveId String @unique
economyId String
incentiveType String // reward, penalty, predictive_nudge
targetBehavior String // stabilizing_flow, velocity_control, risk_reduction
incentiveAmount Decimal @db.Decimal(32, 12)
conditions Json // Conditions for incentive application
status String @default("active") // active, applied, expired
appliedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
economy FaceEconomy @relation(fields: [economyId], references: [id], onDelete: Cascade)
@@index([incentiveId])
@@index([economyId])
@@index([incentiveType])
@@index([status])
@@map("face_incentives")
}
// ============================================================================
// DBIS Volume X: Chrono-Sovereign Settlement Engine (CSSE)
// ============================================================================
model ChronoSettlement {
id String @id @default(uuid())
settlementId String @unique
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String
timeDomain String // earth, lunar, martian, relativistic
timeOffset Decimal @db.Decimal(32, 12) // Time offset in seconds
status String @default("pre_commit") // pre_commit, committed, reconciled, settled
preCommittedAt DateTime?
committedAt DateTime?
reconciledAt DateTime?
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sourceBank SovereignBank @relation("ChronoSettlementSource", fields: [sourceBankId], references: [id], onDelete: Cascade)
destinationBank SovereignBank @relation("ChronoSettlementDestination", fields: [destinationBankId], references: [id], onDelete: Cascade)
preCommits TemporalPreCommit[]
reconciliations TemporalReconciliation[]
@@index([settlementId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([status])
@@map("chrono_settlements")
}
model TemporalPreCommit {
id String @id @default(uuid())
preCommitId String @unique
settlementId String
predictedState Json // Predicted future state
sovereignSignature String
preCommitHash String // HASH(predicted_state + sovereign_signature)
status String @default("pending") // pending, verified, committed
verifiedAt DateTime?
committedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement ChronoSettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([preCommitId])
@@index([settlementId])
@@index([status])
@@map("temporal_pre_commits")
}
model TemporalReconciliation {
id String @id @default(uuid())
reconciliationId String @unique
settlementId String
delayCost Decimal @db.Decimal(32, 12)
fxDrift Decimal @db.Decimal(32, 12)
commodityShockDelta Decimal @db.Decimal(32, 12)
adjustmentAmount Decimal @db.Decimal(32, 12)
reconciliationData Json
status String @default("pending") // pending, calculated, applied
calculatedAt DateTime?
appliedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement ChronoSettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([reconciliationId])
@@index([settlementId])
@@index([status])
@@map("temporal_reconciliations")
}
// ============================================================================
// DBIS Volume X: Interdimensional Ledger Compliance (ILC) - Concept Level
// ============================================================================
model InterdimensionalLedger {
id String @id @default(uuid())
ledgerId String @unique
ledgerName String
dimension String // D0, D1, D2, D3, D4
dimensionType String // classical, dlt, quantum, simulated, parallel
description String @db.Text
ledgerState Json? // Current ledger state
status String @default("active") // active, synchronized, conflict, resolved
lastSyncAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
dimensions LedgerDimension[]
reconciliations DimensionReconciliation[]
@@index([ledgerId])
@@index([dimension])
@@index([dimensionType])
@@index([status])
@@map("interdimensional_ledgers")
}
model LedgerDimension {
id String @id @default(uuid())
dimensionId String @unique
ledgerId String
dimensionCode String // D0, D1, D2, D3, D4
dimensionName String // D0 - Classical Finance, D1 - Distributed Ledger Systems, etc.
dimensionMetadata Json // Dimension-specific metadata
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledger InterdimensionalLedger @relation(fields: [ledgerId], references: [id], onDelete: Cascade)
@@index([dimensionId])
@@index([ledgerId])
@@index([dimensionCode])
@@map("ledger_dimensions")
}
model DimensionReconciliation {
id String @id @default(uuid())
reconciliationId String @unique
ledgerId String
dimensionStates Json // States from D0, D1, D2, D3
reconciledState Json? // Result of reconciliation
consistencyCheck Boolean @default(false) // ledger_state[D0] == reconcile(...)
metaResolution Json? // invoke_meta_resolution() if inconsistent
status String @default("pending") // pending, consistent, inconsistent, resolved
checkedAt DateTime?
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledger InterdimensionalLedger @relation(fields: [ledgerId], references: [id], onDelete: Cascade)
@@index([reconciliationId])
@@index([ledgerId])
@@index([status])
@@map("dimension_reconciliations")
}
// ============================================================================
// DBIS Volume XIV: Trans-Causal Monetary Protocol, Infinite-Layer Identity, Holographic Sovereign Anchors, Reality-Spanning Smart Contracts, and Superposition Asset Valuation
// ============================================================================
// Volume XIV: Trans-Causal Monetary Protocol (TCMP)
model TransCausalTransaction {
id String @id @default(uuid())
tcxId String @unique
presentState Json // S0 - Current state
futureProjection Json // S+ - Future state projection
pastAlignment Json // S- - Past state alignment
causalHash String // HASH(S0 + S+ + S-)
integrityWeight Decimal @db.Decimal(32, 12) // ψ - Integrity weight
causalCoherence Decimal? @db.Decimal(32, 12) // f(S0, S+, S-) coherence score
coherenceThreshold Decimal @default(0.95) @db.Decimal(32, 12)
status String @default("pending") // pending, coherent, deferred, resolved
deferredReason String? @db.Text
resolutionMapping Json? // Causal-resolution mapping if coherence fails
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
resolvedAt DateTime?
resolutions CausalResolution[]
@@index([tcxId])
@@index([causalHash])
@@index([status])
@@index([causalCoherence])
@@map("trans_causal_transactions")
}
model CausalResolution {
id String @id @default(uuid())
resolutionId String @unique
tcxId String
resolutionType String // temporal_loop, retrocausal, forward_predicted, quantum_timeline
resolutionMapping Json // Causal-resolution mapping
resolutionResult Json? // Result of resolution
status String @default("pending") // pending, applied, failed
appliedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
transaction TransCausalTransaction @relation(fields: [tcxId], references: [id], onDelete: Cascade)
@@index([resolutionId])
@@index([tcxId])
@@index([resolutionType])
@@index([status])
@@map("causal_resolutions")
}
// Volume XIV: Infinite-Layer Identity Engine (ILIE)
model InfiniteLayerIdentity {
id String @id @default(uuid())
identityId String @unique
sovereignBankId String? // Optional: if entity is an SCB
entityType String // scb, private_bank, digital_entity, conscious, quantum, simulated, parallel
entityId String // Reference to entity
unifiedIdentity String // I∞ = unify(I0, I1, I2, I3, I4, ...)
identityDrift Decimal @default(0) @db.Decimal(32, 12) // Measured drift
driftThreshold Decimal @default(0.01) @db.Decimal(32, 12)
status String @default("active") // active, drift_detected, corrected, suspended
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
lastCorrectionAt DateTime?
sovereignBank SovereignBank? @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
layers IdentityLayer[]
corrections IdentityCorrection[]
@@index([identityId])
@@index([sovereignBankId])
@@index([entityType])
@@index([entityId])
@@index([status])
@@map("infinite_layer_identities")
}
model IdentityLayer {
id String @id @default(uuid())
layerId String @unique
identityId String
layerNumber Int // L0, L1, L2, L3, L4, L∞
layerType String // classical, dlt, quantum, cognitive, simulated, meta
layerIdentity String // Identity at this layer
layerMetadata Json? // Layer-specific metadata
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
identity InfiniteLayerIdentity @relation(fields: [identityId], references: [id], onDelete: Cascade)
@@index([layerId])
@@index([identityId])
@@index([layerNumber])
@@index([layerType])
@@map("identity_layers")
}
model IdentityCorrection {
id String @id @default(uuid())
correctionId String @unique
identityId String
correctionType String // drift_correction, alignment, unification
beforeState Json // State before correction
afterState Json // State after correction
correctionDetails Json? // Correction algorithm details
status String @default("pending") // pending, applied, failed
appliedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
identity InfiniteLayerIdentity @relation(fields: [identityId], references: [id], onDelete: Cascade)
@@index([correctionId])
@@index([identityId])
@@index([status])
@@map("identity_corrections")
}
// Volume XIV: Sovereign Holographic Anchor System (SHAS)
model HolographicAnchor {
id String @id @default(uuid())
anchorId String @unique
sovereignBankId String? // Optional: if anchor is for a sovereign
sovereignId String? // Sovereign identity (alternative reference)
assetId String? // Asset identity
anchorType String // sovereign, asset, ledger_state
encodedAnchor String // H_anchor = ENCODE(...)
sovereignIdentity Json? // Sovereign identity data
ledgerState Json? // Ledger state at anchor
reflectionState Json? // Reflection state
multiverseAlignment Json? // Multiverse alignment data
integrityStatus String @default("pending") // pending, verified, failed
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank? @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
integrityChecks AnchorIntegrityCheck[]
settlements HolographicSettlement[]
@@index([anchorId])
@@index([sovereignBankId])
@@index([sovereignId])
@@index([assetId])
@@index([anchorType])
@@index([integrityStatus])
@@map("holographic_anchors")
}
model AnchorIntegrityCheck {
id String @id @default(uuid())
checkId String @unique
anchorId String
checkType String // identity_verification, settlement_grounding, divergence_protection
checkResult String // passed, failed, warning
checkDetails Json? // Detailed check results
status String @default("pending") // pending, completed
checkedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
anchor HolographicAnchor @relation(fields: [anchorId], references: [id], onDelete: Cascade)
@@index([checkId])
@@index([anchorId])
@@index([checkType])
@@index([checkResult])
@@map("anchor_integrity_checks")
}
model HolographicSettlement {
id String @id @default(uuid())
settlementId String @unique
anchorId String
settlementType String // standard, cross_reality, multiverse
settlementData Json // Settlement details
holographicCheck Boolean @default(false) // Passed holographic-identity check
finalityStatus String @default("pending") // pending, verified, finalized
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
anchor HolographicAnchor @relation(fields: [anchorId], references: [id], onDelete: Cascade)
@@index([settlementId])
@@index([anchorId])
@@index([finalityStatus])
@@map("holographic_settlements")
}
// Volume XIV: Reality-Spanning Smart Contract Kernel (RSSCK)
model RealitySpanningContract {
id String @id @default(uuid())
contractId String @unique
contractHash String // Contract hash
contractCode Json // Contract code/logic
dimensions Json // Dimensions contract spans
timelines Json? // Timeline information
simulatedLayers Json? // Simulated layer data
quantumStates Json? // Quantum-entangled contract states
realityAgreement Boolean @default(false) // all_realities_agree(contract_hash)
agreementDetails Json? // Agreement status per reality
status String @default("pending") // pending, agreed, resolving, executed, failed
executionResult Json? // Execution result
ossmResolution Json? // OSSM adjudication if needed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
executions ContractExecution[]
resolutions ContractResolution[]
@@index([contractId])
@@index([contractHash])
@@index([status])
@@index([realityAgreement])
@@map("reality_spanning_contracts")
}
model ContractExecution {
id String @id @default(uuid())
executionId String @unique
contractId String
executionType String // standard, cross_dimensional, temporal, quantum_entangled
executionData Json // Execution parameters
intentProbabilities Json? // Intent probabilities (cognitive layer)
consciousnessSignatures Json? // Consciousness signatures
quantumSymmetry Json? // Quantum decision symmetry
executionResult Json? // Execution result
status String @default("pending") // pending, executing, completed, failed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contract RealitySpanningContract @relation(fields: [contractId], references: [id], onDelete: Cascade)
@@index([executionId])
@@index([contractId])
@@index([status])
@@map("contract_executions")
}
model ContractResolution {
id String @id @default(uuid())
resolutionId String @unique
contractId String
resolutionType String // ossm_adjudication, reality_merge, conflict_resolution
conflictDetails Json? // Conflict information
resolutionResult Json? // Resolution result
status String @default("pending") // pending, resolved, failed
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contract RealitySpanningContract @relation(fields: [contractId], references: [id], onDelete: Cascade)
@@index([resolutionId])
@@index([contractId])
@@index([status])
@@map("contract_resolutions")
}
// Volume XIV: Superposition-Based Asset Valuation (SBAV)
model SuperpositionAsset {
id String @id @default(uuid())
assetId String @unique
assetType String // quantum_commodity, parallel_sovereign_bond, infinite_state_reserve
assetName String
superpositionStates Json // Multiple simultaneous states
stateProbabilities Json // Probability for each state
superposedValue Decimal? @db.Decimal(32, 12) // Σ(state_value[i] * probability[i])
collapsedValue Decimal? @db.Decimal(32, 12) // Value after collapse
collapseStatus String @default("superposed") // superposed, collapsing, collapsed
collapsedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
valuations AssetValuation[]
reconciliations AssetReconciliation[]
@@index([assetId])
@@index([assetType])
@@index([collapseStatus])
@@map("superposition_assets")
}
model AssetValuation {
id String @id @default(uuid())
valuationId String @unique
assetId String
stateIndex Int? // Which state in superposition
stateValue Decimal @db.Decimal(32, 12)
probability Decimal @db.Decimal(32, 12) // probability[i]
weightedValue Decimal @db.Decimal(32, 12) // state_value[i] * probability[i]
valuationTime DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
asset SuperpositionAsset @relation(fields: [assetId], references: [id], onDelete: Cascade)
@@index([valuationId])
@@index([assetId])
@@index([stateIndex])
@@map("asset_valuations")
}
model AssetReconciliation {
id String @id @default(uuid())
reconciliationId String @unique
assetId String
reconciliationType String // parallel_branch, quantum_state, holographic_projection
beforeState Json // State before reconciliation
afterState Json // State after reconciliation
reconciliationDetails Json? // Reconciliation algorithm
status String @default("pending") // pending, reconciled, failed
reconciledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
asset SuperpositionAsset @relation(fields: [assetId], references: [id], onDelete: Cascade)
@@index([reconciliationId])
@@index([assetId])
@@index([status])
@@map("asset_reconciliations")
}
// Volume XIV: DBIS Economic Entanglement Index (EEI)
model EconomicEntanglement {
id String @id @default(uuid())
entanglementId String @unique
measurementTime DateTime @default(now())
cohesionFactor Decimal @db.Decimal(32, 12)
divergencePressure Decimal @db.Decimal(32, 12)
quantumResonance Decimal @db.Decimal(32, 12)
eeiValue Decimal @db.Decimal(32, 12) // cohesion_factor - divergence_pressure + quantum_resonance
stabilityLevel String // low, medium, high, very_high
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
measurements EntanglementMeasurement[]
@@index([entanglementId])
@@index([measurementTime])
@@index([eeiValue])
@@index([stabilityLevel])
@@map("economic_entanglements")
}
model EntanglementMeasurement {
id String @id @default(uuid())
measurementId String @unique
entanglementId String
measurementType String // cohesion, divergence, quantum_resonance
measurementValue Decimal @db.Decimal(32, 12)
measurementDetails Json? // Measurement details
measuredAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
entanglement EconomicEntanglement @relation(fields: [entanglementId], references: [id], onDelete: Cascade)
@@index([measurementId])
@@index([entanglementId])
@@index([measurementType])
@@map("entanglement_measurements")
}
// Volume XIV: Unified Pan-Reality Monetary Fabric (UPRMF)
model PanRealityMonetaryFabric {
id String @id @default(uuid())
fabricId String @unique
fabricVersion String @default("1.0")
ummcState Json? // UMMC state
omegaLsfState Json? // Ω-LSF state
hsmnState Json? // HSMN state (if exists)
tcmpState Json? // TCMP state
ilieState Json? // ILIE state
mergedState Json? // MERGE(UMMC, Ω-LSF, HSMN, TCMP, ILIE)
crossDimensionalAlignment Boolean @default(false)
temporalIntegrity Boolean @default(false)
quantumCoherence Boolean @default(false)
holographicHarmony Boolean @default(false)
sovereignContinuity Boolean @default(false)
overallStatus String @default("initializing") // initializing, aligned, coherent, operational
lastMergeAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
alignments FabricAlignment[]
integrityChecks FabricIntegrityCheck[]
@@index([fabricId])
@@index([overallStatus])
@@map("pan_reality_monetary_fabric")
}
model FabricAlignment {
id String @id @default(uuid())
alignmentId String @unique
fabricId String
alignmentType String // cross_dimensional, temporal, quantum, holographic, sovereign
alignmentStatus String // pending, aligned, misaligned, corrected
alignmentDetails Json? // Alignment details
correctedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
fabric PanRealityMonetaryFabric @relation(fields: [fabricId], references: [id], onDelete: Cascade)
@@index([alignmentId])
@@index([fabricId])
@@index([alignmentType])
@@index([alignmentStatus])
@@map("fabric_alignments")
}
model FabricIntegrityCheck {
id String @id @default(uuid())
checkId String @unique
fabricId String
checkType String // cross_dimensional, temporal, quantum_coherence, holographic, sovereign_continuity
checkResult String // passed, failed, warning
checkDetails Json? // Detailed check results
status String @default("pending") // pending, completed
checkedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
fabric PanRealityMonetaryFabric @relation(fields: [fabricId], references: [id], onDelete: Cascade)
@@index([checkId])
@@index([fabricId])
@@index([checkType])
@@index([checkResult])
@@map("fabric_integrity_checks")
}
// ============================================================================
// DBIS Volume XIII: Hyper-Sovereign Monetary Nexus, Dimensional Arbitrage Engine, Temporal-Multiversal FX Parity, Conscious-Ledger Integration, and Singularity-Grade Liquidity Systems
// ============================================================================
// ============================================================================
// Volume XIII: Hyper-Sovereign Monetary Nexus (HSMN)
// ============================================================================
model HsmnNexusLayer {
id String @id @default(uuid())
nexusId String @unique
layerNumber Int // 0=Prime, 1=Multiversal, 2=Temporal, 3=Consciousness, 4=Quantum
layerName String
description String @db.Text
anchorValue Decimal? @db.Decimal(32, 12)
stabilityIndex Decimal? @db.Decimal(32, 12)
status String @default("active") // active, suspended, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignMappings HsmnSovereignMapping[]
realityStates HsmnRealityState[]
bindingLaws HsmnBindingLaw[]
@@index([nexusId])
@@index([layerNumber])
@@index([status])
@@map("hsmn_nexus_layers")
}
model HsmnSovereignMapping {
id String @id @default(uuid())
mappingId String @unique
nexusLayerId String
sovereignBankId String
realityBranch String? // For HS1 (Multiversal)
parallelState String? // For HS1 (Multiversal)
identityHash String
bindingStatus String @default("bound") // bound, unbound, pending
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
nexusLayer HsmnNexusLayer @relation(fields: [nexusLayerId], references: [id], onDelete: Cascade)
@@index([mappingId])
@@index([nexusLayerId])
@@index([sovereignBankId])
@@index([realityBranch])
@@index([identityHash])
@@index([status])
@@map("hsmn_sovereign_mappings")
}
model HsmnRealityState {
id String @id @default(uuid())
stateId String @unique
nexusLayerId String
sovereignBankId String
realityType String // temporal, consciousness, quantum
timeline String? // For temporal states
stateData Json // State-specific data
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
nexusLayer HsmnNexusLayer @relation(fields: [nexusLayerId], references: [id], onDelete: Cascade)
@@index([stateId])
@@index([nexusLayerId])
@@index([sovereignBankId])
@@index([realityType])
@@index([status])
@@map("hsmn_reality_states")
}
model HsmnBindingLaw {
id String @id @default(uuid())
bindingId String @unique
sovereignBankId String
identityHash String
unified Boolean @default(false)
identityInvariant Boolean @default(false)
ledgerTruth Boolean @default(false)
temporalConsistency Boolean @default(false)
quantumCoherence Boolean @default(false)
status String @default("unbound") // bound, unbound, pending
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([bindingId])
@@index([sovereignBankId])
@@index([identityHash])
@@index([status])
nexusLayer HsmnNexusLayer[]
@@map("hsmn_binding_laws")
}
// ============================================================================
// Volume XIII: Unified Dimensional Arbitrage Engine (UDAE)
// ============================================================================
model DimensionalArbitrage {
id String @id @default(uuid())
arbitrageId String @unique
dimension String
timeline String?
parallelBranch String?
quantumState String?
simulatedEconomy String?
classicalPrice Decimal @db.Decimal(32, 12)
quantumExpectedPrice Decimal @db.Decimal(32, 12)
parallelStateDivergence Decimal @db.Decimal(32, 12)
holographicProjectionAdjustment Decimal @db.Decimal(32, 12)
arbitrageDelta Decimal @db.Decimal(32, 12)
tolerance Decimal @db.Decimal(32, 12)
requiresRebalance Boolean @default(false)
status String @default("calculated") // calculated, compressed, rebalanced
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
rebalances DimensionalRebalance[]
@@index([arbitrageId])
@@index([dimension])
@@index([status])
@@index([requiresRebalance])
@@map("dimensional_arbitrage")
}
model DimensionalRebalance {
id String @id @default(uuid())
rebalanceId String @unique
arbitrageId String
adjustmentAmount Decimal @db.Decimal(32, 12)
dimension String?
timeline String?
parallelBranch String?
quantumState String?
status String @default("executed") // executed, pending, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
arbitrage DimensionalArbitrage @relation(fields: [arbitrageId], references: [id], onDelete: Cascade)
@@index([rebalanceId])
@@index([arbitrageId])
@@index([status])
@@map("dimensional_rebalance")
}
// ============================================================================
// Volume XIII: Temporal-Multiversal FX Parity Law (TMFPL)
// ============================================================================
model TemporalFxParity {
id String @id @default(uuid())
parityId String @unique
currencyPair String
spotRate Decimal @db.Decimal(32, 12)
temporalSmoothing Decimal @db.Decimal(32, 12)
parallelArbitrage Decimal @db.Decimal(32, 12)
ssuAnchor Decimal @db.Decimal(32, 12)
gqlResonance Decimal @db.Decimal(32, 12)
calculatedParity Decimal @db.Decimal(32, 12)
divergence Decimal @db.Decimal(32, 12)
requiresCorrection Boolean @default(false)
status String @default("calculated") // calculated, corrected, monitoring
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
corrections TemporalCorrection[]
divergences ParityDivergence[]
@@index([parityId])
@@index([currencyPair])
@@index([status])
@@index([requiresCorrection])
@@map("temporal_fx_parity")
}
model TemporalCorrection {
id String @id @default(uuid())
correctionId String @unique
parityId String
correctionAmount Decimal @db.Decimal(32, 12)
correctedParity Decimal @db.Decimal(32, 12)
currencyPair String
status String @default("applied") // applied, pending, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
parity TemporalFxParity @relation(fields: [parityId], references: [id], onDelete: Cascade)
@@index([correctionId])
@@index([parityId])
@@index([status])
@@map("temporal_corrections")
}
model ParityDivergence {
id String @id @default(uuid())
divergenceId String @unique
parityId String
divergenceAmount Decimal @db.Decimal(32, 12)
severity String // warning, critical
status String @default("detected") // detected, resolved, monitoring
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
parity TemporalFxParity @relation(fields: [parityId], references: [id], onDelete: Cascade)
@@index([divergenceId])
@@index([parityId])
@@index([severity])
@@index([status])
@@map("parity_divergences")
}
// ============================================================================
// Volume XIII: DBIS Conscious-Ledger Integration Model (CLIM)
// ============================================================================
model ConsciousnessState {
id String @id @default(uuid())
stateId String @unique
agentId String
stateHash String
cognitiveIntent String @db.Text
transactionHistory String[] // Array of transaction IDs
sovereignBehaviorField String @db.Text
influenceLevel Decimal @db.Decimal(32, 12)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
contracts CognitiveContract[]
@@index([stateId])
@@index([agentId])
@@index([stateHash])
@@index([status])
@@map("consciousness_states")
}
model CognitiveContract {
id String @id @default(uuid())
contractId String @unique
stateId String
threshold Decimal @db.Decimal(32, 12)
action String @db.Text
parameters Json?
cognitiveAlignment Decimal @db.Decimal(32, 12)
executionStatus String @default("pending_execution") // pending_execution, executed, delayed, rejected
executedAt DateTime?
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
state ConsciousnessState @relation(fields: [stateId], references: [id], onDelete: Cascade)
@@index([contractId])
@@index([stateId])
@@index([executionStatus])
@@index([status])
@@map("cognitive_contracts")
}
model BehavioralField {
id String @id @default(uuid())
fieldId String @unique
sovereignBankId String
fieldData Json
influenceScore Decimal @db.Decimal(32, 12)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([fieldId])
@@index([sovereignBankId])
@@index([status])
@@map("behavioral_fields")
}
// ============================================================================
// Volume XIII: Singularity-Grade Liquidity Engine (SGLE)
// ============================================================================
model SingularityLiquidity {
id String @id @default(uuid())
liquidityId String @unique
generationId String?
gapId String? @unique
liquidityAmount Decimal @db.Decimal(32, 12)
generationType String // manual, auto
conservationLimit Decimal? @db.Decimal(32, 12)
withinLimits Boolean @default(true)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gap LiquidityGap? @relation(fields: [gapId], references: [id], onDelete: SetNull)
@@index([liquidityId])
@@index([generationId])
@@index([gapId])
@@index([status])
@@map("singularity_liquidity")
}
model LiquidityProjection {
id String @id @default(uuid())
projectionId String @unique
qpuPrediction Decimal @db.Decimal(32, 12)
multiversalReserveStrength Decimal @db.Decimal(32, 12)
consciousnessAlignmentFactor Decimal @db.Decimal(32, 12)
futureLiquidity Decimal @db.Decimal(32, 12)
currentLiquidity Decimal @db.Decimal(32, 12)
liquidityGap Decimal @db.Decimal(32, 12)
timeHorizon Int // in seconds
sufficiency Boolean @default(false)
status String @default("calculated") // calculated, updated, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gaps LiquidityGap[]
@@index([projectionId])
@@index([status])
@@index([sufficiency])
@@map("liquidity_projections")
}
model LiquidityGap {
id String @id @default(uuid())
gapId String @unique
projectionId String
gapAmount Decimal @db.Decimal(32, 12)
status String @default("detected") // detected, addressed, resolved
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
projection LiquidityProjection @relation(fields: [projectionId], references: [id], onDelete: Cascade)
liquidity SingularityLiquidity?
@@index([gapId])
@@index([projectionId])
@@index([status])
@@map("liquidity_gaps")
}
// ============================================================================
// Volume XIII: Meta-Reality Economic Convergence Protocol (MRECP)
// ============================================================================
model RealityConvergence {
id String @id @default(uuid())
convergenceId String @unique
realityDivergence Decimal @db.Decimal(32, 12)
sovereignAlignment Decimal @db.Decimal(32, 12)
fxStability Decimal @db.Decimal(32, 12)
ssuStability Decimal @db.Decimal(32, 12)
cbdcStability Decimal @db.Decimal(32, 12)
convergence Decimal @db.Decimal(32, 12)
stable Boolean @default(false)
status String @default("calculated") // calculated, harmonized, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
harmonizations EconomicHarmonization[]
divergences RealityDivergence[]
@@index([convergenceId])
@@index([status])
@@index([stable])
@@map("reality_convergence")
}
model EconomicHarmonization {
id String @id @default(uuid())
harmonizationId String @unique
convergenceId String?
adjustmentAmount Decimal @db.Decimal(32, 12)
status String @default("applied") // applied, pending, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
convergence RealityConvergence? @relation(fields: [convergenceId], references: [id], onDelete: SetNull)
@@index([harmonizationId])
@@index([convergenceId])
@@index([status])
@@map("economic_harmonizations")
}
// ============================================================================
// Volume XIII: Prime-Reality Oversight Engine (PROE)
// ============================================================================
model PrimeRealityDeviation {
id String @id @default(uuid())
deviationId String @unique
realityType String // parallel, quantum, temporal, simulated
realityId String
primeRealityState Decimal @db.Decimal(32, 12)
alternateRealityState Decimal @db.Decimal(32, 12)
deviationAmount Decimal @db.Decimal(32, 12)
threshold Decimal @db.Decimal(32, 12)
exceedsThreshold Boolean @default(false)
requiresAlignment Boolean @default(false)
status String @default("detected") // detected, aligned, monitoring
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
alignments AlignmentEnforcement[]
@@index([deviationId])
@@index([realityType])
@@index([realityId])
@@index([status])
@@index([requiresAlignment])
@@map("prime_reality_deviations")
}
model AlignmentEnforcement {
id String @id @default(uuid())
alignmentId String @unique
deviationId String
adjustmentAmount Decimal @db.Decimal(32, 12)
aligned Boolean @default(false)
status String @default("enforced") // enforced, pending, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deviation PrimeRealityDeviation @relation(fields: [deviationId], references: [id], onDelete: Cascade)
@@index([alignmentId])
@@index([deviationId])
@@index([status])
@@map("alignment_enforcements")
}
model RealityState {
id String @id @default(uuid())
realityId String @unique
realityType String // prime, parallel, quantum, temporal, simulated
stateData Json
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([realityId])
@@index([realityType])
@@index([status])
@@map("reality_states")
}
// ============================================================================
// DBIS Special Sub-Volumes
// ============================================================================
// Sub-Volume A: Global Atomic Settlements (GAS) Network
model GasSettlement {
id String @id @default(uuid())
gasSettlementId String @unique
settlementId String? // Reference to AtomicSettlement
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String
networkType String // classical, cbdc, commodity, security, quantum, multiversal
commitmentHash String
routeId String?
routingEngine String? // sire, caso, arifx, hybrid
fxCommit String?
assetCommit String?
temporalState String?
dimensionalAlignment Decimal? @db.Decimal(32, 8)
settlementTime Int? // Milliseconds
status String @default("pending") // pending, settled, failed
allCommitsMatched Boolean @default(false)
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
commitment GasCommitment?
routingDecision GasRoutingDecision? @relation("GasSettlementRouting", fields: [routeId], references: [routeId], onDelete: SetNull)
@@index([gasSettlementId])
@@index([settlementId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([networkType])
@@index([status])
@@index([allCommitsMatched])
@@map("gas_settlements")
}
model GasCommitment {
id String @id @default(uuid())
commitmentId String @unique
gasSettlementId String? @unique
settlementId String
scbCommit String
dbisCommit String
fxCommit String?
assetCommit String?
temporalState String?
commitmentHash String
status String @default("pending") // pending, verified, failed
verifiedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gasSettlement GasSettlement? @relation(fields: [gasSettlementId], references: [gasSettlementId], onDelete: SetNull)
@@index([commitmentId])
@@index([settlementId])
@@index([gasSettlementId])
@@index([status])
@@map("gas_commitments")
}
model GasRoutingDecision {
id String @id @default(uuid())
routeId String @unique
settlementId String?
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String
networkType String // classical, cbdc, commodity, security, quantum, multiversal
routingEngine String // sire, caso, arifx, hybrid
optimalRoute Json // Calculated optimal route
cost Decimal @db.Decimal(32, 12)
latency Int // Milliseconds
dimensionalAlignment Decimal @db.Decimal(32, 8)
status String @default("active") // active, applied, expired
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gasSettlements GasSettlement[] @relation("GasSettlementRouting")
@@index([routeId])
@@index([settlementId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([networkType])
@@index([routingEngine])
@@index([status])
@@map("gas_routing_decisions")
}
// Sub-Volume B: Global Reserve Unit (GRU) Integration
model GruUnit {
id String @id @default(uuid())
gruUnitId String @unique
sovereignBankId String
unitType String // M00, M0, M1
amount Decimal @db.Decimal(32, 8)
status String @default("active") // active, locked, redeemed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bonds GruBond[]
triangulations GruTriangulation[]
@@index([gruUnitId])
@@index([sovereignBankId])
@@index([unitType])
@@index([status])
@@map("gru_units")
}
model GruConversion {
id String @id @default(uuid())
conversionId String @unique
sourceAmount Decimal @db.Decimal(32, 8)
sourceType String // M00, M0, M1
targetAmount Decimal @db.Decimal(32, 8)
targetType String // M00, M0, M1
conversionRate Decimal @db.Decimal(32, 12)
status String @default("completed") // completed, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([conversionId])
@@index([sourceType])
@@index([targetType])
@@index([status])
@@map("gru_conversions")
}
model GruComposition {
id String @id @default(uuid())
compositionId String @unique
m00Amount Decimal @db.Decimal(32, 8)
m0Amount Decimal @db.Decimal(32, 8)
m1Amount Decimal @db.Decimal(32, 8)
totalM00Equivalent Decimal @db.Decimal(32, 8)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([compositionId])
@@index([status])
@@map("gru_compositions")
}
model GruTriangulation {
id String @id @default(uuid())
triangulationId String @unique
gruUnitId String
gruAmount Decimal @db.Decimal(32, 8)
gruType String // M00, M0, M1
xauValue Decimal @db.Decimal(32, 8) // Value in XAU (gold)
targetValue Decimal @db.Decimal(32, 8)
targetAssetType String // fiat, commodity, cbdc, tokenized
targetCurrencyCode String?
targetCommodityType String?
triangulationRate Decimal @db.Decimal(32, 12)
status String @default("completed")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gruUnit GruUnit @relation(fields: [gruUnitId], references: [id], onDelete: Cascade)
@@index([triangulationId])
@@index([gruUnitId])
@@index([targetAssetType])
@@index([status])
@@map("gru_triangulations")
}
model GruBond {
id String @id @default(uuid())
bondId String @unique
bondType String // Li99PpOsB10, Li99PpAvB10
principalAmount Decimal @db.Decimal(32, 8)
gruUnitId String
sovereignBankId String
maturityDate DateTime
interestRate Decimal @db.Decimal(32, 8)
couponRate Decimal @db.Decimal(32, 8)
finalValue Decimal? @db.Decimal(32, 8)
status String @default("active") // active, redeemed, defaulted
issuedAt DateTime @default(now())
redeemedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gruUnit GruUnit @relation(fields: [gruUnitId], references: [id], onDelete: Cascade)
coupons GruBondCoupon[]
// Volume III relations
syntheticBonds SyntheticGruBond[] @relation("SyntheticGruBondToGruBond")
settlements GruBondSettlement[] @relation("GruBondSettlementToGruBond")
pricing GruBondPricing[] @relation("GruBondPricingToGruBond")
pricingHistory BondPricingHistory[] @relation("BondPricingHistoryToGruBond")
riskAssessments BondRiskAssessment[] @relation("BondRiskAssessmentToGruBond")
@@index([bondId])
@@index([bondType])
@@index([gruUnitId])
@@index([sovereignBankId])
@@index([status])
@@map("gru_bonds")
}
model GruBondCoupon {
id String @id @default(uuid())
paymentId String @unique
bondId String
couponAmount Decimal @db.Decimal(32, 8)
paymentDate DateTime
status String @default("paid") // paid, pending, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond GruBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([paymentId])
@@index([bondId])
@@index([status])
@@map("gru_bond_coupons")
}
model GruLiquidityLoop {
id String @id @default(uuid())
loopId String @unique
sourceBankId String
destinationBankId String
initialAmount Decimal @db.Decimal(32, 8)
targetAmount Decimal @db.Decimal(32, 8)
targetNetValue Decimal @db.Decimal(32, 8)
currentAmount Decimal? @db.Decimal(32, 8)
currentNetValue Decimal? @db.Decimal(32, 8)
finalAmount Decimal? @db.Decimal(32, 8)
finalNetValue Decimal? @db.Decimal(32, 8)
iterations Int @default(0)
targetReached Boolean @default(false)
lastTransactionId String?
status String @default("running") // running, completed, max_iterations_reached, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([loopId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([status])
@@map("gru_liquidity_loops")
}
// GRU Masterbook: Index System (LiXAU, LiPMG, LiBMG1-3)
model GruIndex {
id String @id @default(uuid())
indexId String @unique
indexCode String @unique // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
indexName String
description String @db.Text
baseValue Decimal @db.Decimal(32, 12)
currentValue Decimal @db.Decimal(32, 12)
calculationMethod String // xau_based, pgm_based, bmg_weighted
weightings Json? // Weightings for composite indexes
updateFrequency String @default("real_time") // real_time, hourly, daily
status String @default("active") // active, suspended
lastUpdated DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
priceHistory GruIndexPriceHistory[]
@@index([indexId])
@@index([indexCode])
@@index([status])
@@index([lastUpdated])
@@map("gru_indexes")
}
model GruIndexPriceHistory {
id String @id @default(uuid())
historyId String @unique
indexId String
indexCode String
indexValue Decimal @db.Decimal(32, 12)
changePercent Decimal? @db.Decimal(32, 8)
volume Decimal? @db.Decimal(32, 8)
metadata Json? // Additional calculation details
timestamp DateTime @default(now())
createdAt DateTime @default(now())
index GruIndex @relation(fields: [indexId], references: [id], onDelete: Cascade)
@@index([historyId])
@@index([indexId])
@@index([indexCode])
@@index([timestamp])
@@map("gru_index_price_history")
}
// GRU Masterbook: Derivatives & Futures Market
model GruDerivative {
id String @id @default(uuid())
derivativeId String @unique
derivativeType String // spot, futures, swap, option
instrumentType String // GRU_SPOT, GRU_FUTURES, GRU_SWAP, GRU_OPTION
sovereignBankId String
counterpartyBankId String?
notionalAmount Decimal @db.Decimal(32, 8)
contractPrice Decimal @db.Decimal(32, 12)
markToMarket Decimal? @db.Decimal(32, 12)
settlementCurrency String
status String @default("active") // active, expired, settled, closed
contractDate DateTime @default(now())
expirationDate DateTime?
settlementDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
futuresContract GruFuturesContract?
swap GruSwap?
option GruOption?
@@index([derivativeId])
@@index([derivativeType])
@@index([sovereignBankId])
@@index([status])
@@index([expirationDate])
@@map("gru_derivatives")
}
model GruFuturesContract {
id String @id @default(uuid())
futuresId String @unique
derivativeId String @unique
contractType String // front_month, quarterly, annual
marginClass String // GRF-A, GRF-B, GRF-C
marginRequirement Decimal @db.Decimal(32, 8)
maintenanceMargin Decimal @db.Decimal(32, 8)
initialMargin Decimal @db.Decimal(32, 8)
contractSize Decimal @db.Decimal(32, 8)
tickSize Decimal @db.Decimal(32, 12)
settlementPrice Decimal? @db.Decimal(32, 12)
lastPrice Decimal? @db.Decimal(32, 12)
openInterest Decimal? @db.Decimal(32, 8)
volume Decimal? @db.Decimal(32, 8)
deliveryDate DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
derivative GruDerivative @relation(fields: [derivativeId], references: [id], onDelete: Cascade)
@@index([futuresId])
@@index([derivativeId])
@@index([marginClass])
@@index([deliveryDate])
@@map("gru_futures_contracts")
}
model GruSwap {
id String @id @default(uuid())
swapId String @unique
derivativeId String @unique
swapType String // GRU_USD, GRU_XAU, GRU_SSU
fixedRate Decimal @db.Decimal(32, 12)
floatingRateIndex String
paymentFrequency String // daily, weekly, monthly, quarterly, annually
notionalAmount Decimal @db.Decimal(32, 8)
nextPaymentDate DateTime
maturityDate DateTime
lastResetDate DateTime?
accruedInterest Decimal? @db.Decimal(32, 8)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
derivative GruDerivative @relation(fields: [derivativeId], references: [id], onDelete: Cascade)
payments GruSwapPayment[]
@@index([swapId])
@@index([derivativeId])
@@index([swapType])
@@index([maturityDate])
@@map("gru_swaps")
}
model GruSwapPayment {
id String @id @default(uuid())
paymentId String @unique
swapId String
paymentDate DateTime
paymentAmount Decimal @db.Decimal(32, 8)
fixedLegAmount Decimal @db.Decimal(32, 8)
floatingLegAmount Decimal @db.Decimal(32, 8)
netAmount Decimal @db.Decimal(32, 8)
status String @default("pending") // pending, paid, failed
paidAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
swap GruSwap @relation(fields: [swapId], references: [id], onDelete: Cascade)
@@index([paymentId])
@@index([swapId])
@@index([paymentDate])
@@index([status])
@@map("gru_swap_payments")
}
model GruOption {
id String @id @default(uuid())
optionId String @unique
derivativeId String @unique
optionType String // call, put
underlyingIndex String // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
strikePrice Decimal @db.Decimal(32, 12)
premium Decimal @db.Decimal(32, 12)
expirationDate DateTime
exerciseType String // american, european
settlementType String // physical, cash
settlementCurrency String
quantity Decimal @db.Decimal(32, 8)
intrinsicValue Decimal? @db.Decimal(32, 12)
timeValue Decimal? @db.Decimal(32, 12)
delta Decimal? @db.Decimal(32, 12)
gamma Decimal? @db.Decimal(32, 12)
theta Decimal? @db.Decimal(32, 12)
vega Decimal? @db.Decimal(32, 12)
exercisedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
derivative GruDerivative @relation(fields: [derivativeId], references: [id], onDelete: Cascade)
@@index([optionId])
@@index([derivativeId])
@@index([underlyingIndex])
@@index([expirationDate])
@@map("gru_options")
}
model GruYieldCurve {
id String @id @default(uuid())
curveId String @unique
curveType String // sovereign, synthetic, bond_implied
curveName String
effectiveDate DateTime @default(now())
maturityPoints Json // Array of { maturity, yield }
interpolationMethod String @default("linear") // linear, cubic, spline
status String @default("active") // active, historical
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
points GruYieldCurvePoint[]
@@index([curveId])
@@index([curveType])
@@index([effectiveDate])
@@index([status])
@@map("gru_yield_curves")
}
model GruYieldCurvePoint {
id String @id @default(uuid())
pointId String @unique
curveId String
maturityMonths Int // Maturity in months
yield Decimal @db.Decimal(32, 12)
discountFactor Decimal? @db.Decimal(32, 12)
forwardRate Decimal? @db.Decimal(32, 12)
timestamp DateTime @default(now())
createdAt DateTime @default(now())
curve GruYieldCurve @relation(fields: [curveId], references: [id], onDelete: Cascade)
@@index([pointId])
@@index([curveId])
@@index([maturityMonths])
@@map("gru_yield_curve_points")
}
// GRU Masterbook: Legal Framework & Issuance Standards
model GruIssuance {
id String @id @default(uuid())
issuanceId String @unique
gruUnitId String
sovereignBankId String
issuanceClass String // Class_I, Class_II, Class_III, Class_IV
issuanceType String // sovereign_grade, institutional_grade, commercial, observational
amount Decimal @db.Decimal(32, 8)
unitType String // M00, M0, M1
metalIndexLink String // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
xauTriangulationAuditId String?
indexSignatureConsistency Boolean @default(false)
registrarOfficeId String
// Volume II: Supranational fields
supranationalEntityId String?
reserveClass String? // SR-1, SR-2, SR-3
regulatoryClass String? // SR-1, SR-2, SR-3, M0, M1 (from GRU Institutional Whitepaper)
eligibilityStatus String? // eligible, pending_review, ineligible
smiaCompliance Boolean @default(false) // Sovereign Monetary Instruments Act compliance
ilieCompliance Boolean @default(false) // ILIE (causality-stable sovereign identity) compliance
status String @default("pending") // pending, approved, issued, suspended, revoked
issuedAt DateTime?
approvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
entity SupranationalEntity? @relation(fields: [supranationalEntityId], references: [id], onDelete: SetNull)
legalRegistrations GruLegalRegistration[]
audits GruIssuanceAudit[]
complianceRecords GruComplianceRecord[]
@@index([issuanceId])
@@index([sovereignBankId])
@@index([issuanceClass])
@@index([status])
@@index([metalIndexLink])
@@index([supranationalEntityId])
@@index([reserveClass])
@@index([regulatoryClass])
settlementPipelines GruSettlementPipeline[]
@@map("gru_issuances")
}
model GruLegalRegistration {
id String @id @default(uuid())
registrationId String @unique
issuanceId String
registrationType String // ISIN, CUSIP, QTID
registrationCode String @unique
checkDigit String?
registrationDate DateTime @default(now())
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
issuance GruIssuance @relation(fields: [issuanceId], references: [id], onDelete: Cascade)
@@index([registrationId])
@@index([issuanceId])
@@index([registrationType])
@@index([registrationCode])
@@map("gru_legal_registrations")
}
model GruIssuanceAudit {
id String @id @default(uuid())
auditId String @unique
issuanceId String
auditType String // xau_triangulation, index_signature, metal_link_verification
auditResult String // passed, failed, warning
auditDetails Json? // Detailed audit results
auditorId String
auditDate DateTime @default(now())
nextAuditDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
issuance GruIssuance @relation(fields: [issuanceId], references: [id], onDelete: Cascade)
@@index([auditId])
@@index([issuanceId])
@@index([auditType])
@@index([auditResult])
@@index([auditDate])
@@map("gru_issuance_audits")
}
// GRU Masterbook: Stress Testing Models
model GruStressTest {
id String @id @default(uuid())
testId String @unique
testName String
regimeId String?
stressRegime String // metal_shock, fx_cascade, liquidity_grid_collapse, gru_loop_instability, sovereign_default_correlation, temporal, quantum, metaverse
testType String // standard, temporal, quantum, metaverse
sovereignBankId String?
parameters Json // Test-specific parameters
status String @default("running") // running, completed, failed, cancelled
startedAt DateTime @default(now())
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
regime GruStressRegime? @relation(fields: [regimeId], references: [id], onDelete: SetNull)
results GruStressTestResult[]
@@index([testId])
@@index([stressRegime])
@@index([testType])
@@index([sovereignBankId])
@@index([status])
@@map("gru_stress_tests")
}
model GruStressRegime {
id String @id @default(uuid())
regimeId String @unique
regimeName String
regimeType String // metal_shock, fx_cascade, liquidity_grid_collapse, gru_loop_instability, sovereign_default_correlation
description String @db.Text
parameters Json // Regime-specific parameters
severity String // low, medium, high, extreme
status String @default("active") // active, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
tests GruStressTest[]
@@index([regimeId])
@@index([regimeType])
@@index([severity])
@@map("gru_stress_regimes")
}
// GRU Masterbook: Multi-Timeline Settlement System
model GruTemporalSettlement {
id String @id @default(uuid())
settlementId String @unique
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
gruUnitId String?
settlementType String // classical, retro, future, omega
temporalState String // t0, t-n, t+n, tΩ
temporalOffset Int? // Offset from t0 (negative for retro, positive for future)
classicalState Json? // Classical timeline state
retroState Json? // Retrospective timeline state
futureState Json? // Future predictive state
omegaState Json? // Ω-Layer merged state
mergedState Json? // Final merged state
status String @default("pending") // pending, merged, settled, failed
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
states GruTemporalState[]
chronoFx GruChronoFx[]
@@index([settlementId])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([temporalState])
@@index([status])
@@map("gru_temporal_settlements")
}
model GruTemporalState {
id String @id @default(uuid())
stateId String @unique
settlementId String
temporalState String // t0, t-n, t+n, tΩ
temporalOffset Int? // Offset from t0
stateData Json // State data
stateHash String // Hash of state data
verified Boolean @default(false)
verifiedAt DateTime?
createdAt DateTime @default(now())
settlement GruTemporalSettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([stateId])
@@index([settlementId])
@@index([temporalState])
@@index([stateHash])
@@map("gru_temporal_states")
}
model GruChronoFx {
id String @id @default(uuid())
chronoFxId String @unique
settlementId String
sourceCurrency String
targetCurrency String
baseRate Decimal @db.Decimal(32, 12)
timeDilation Decimal @db.Decimal(32, 12) // Relativistic time dilation factor
delaySeconds Int? // Transmission delay (for interplanetary)
adjustedRate Decimal @db.Decimal(32, 12)
relativityFactor Decimal? @db.Decimal(32, 12)
calculationMethod String // time_dilation, interplanetary, relativistic
status String @default("calculated") // calculated, applied, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement GruTemporalSettlement @relation(fields: [settlementId], references: [id], onDelete: Cascade)
@@index([chronoFxId])
@@index([settlementId])
@@index([sourceCurrency, targetCurrency])
@@map("gru_chrono_fx")
}
// GRU Masterbook Volume II: Supranational Reserve Framework
model GruSupranationalReserve {
id String @id @default(uuid())
reserveId String @unique
reserveClass String // SR-1, SR-2, SR-3
reserveName String
reserveType String // global_reserve, regional_reserve, commodity_reserve
jurisdiction String? // Global, EU, AU, ASEAN, GCC, etc.
totalReserves Decimal @db.Decimal(32, 8)
allocatedReserves Decimal @db.Decimal(32, 8)
availableReserves Decimal @db.Decimal(32, 8)
status String @default("active") // active, suspended, archived
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
allocations GruReserveAllocation[]
stabilizationFunds GruRegionalStabilizationFund[]
@@index([reserveId])
@@index([reserveClass])
@@index([reserveType])
@@index([jurisdiction])
@@index([status])
@@map("gru_supranational_reserves")
}
model GruReserveAllocation {
id String @id @default(uuid())
allocationId String @unique
reserveId String
sovereignBankId String
allocationQuota Decimal @db.Decimal(32, 8)
allocatedAmount Decimal @db.Decimal(32, 8)
utilizationRate Decimal? @db.Decimal(32, 8)
status String @default("active") // active, suspended, revoked
allocatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reserve GruSupranationalReserve @relation(fields: [reserveId], references: [id], onDelete: Cascade)
@@index([allocationId])
@@index([reserveId])
@@index([sovereignBankId])
@@index([status])
reserveClass GruSupranationalReserveClass[]
pool GruReservePool[]
@@map("gru_reserve_allocations")
}
model GruRegionalStabilizationFund {
id String @id @default(uuid())
fundId String @unique
reserveId String
fundName String
region String // EU, AU, ASEAN, GCC, etc.
fundSize Decimal @db.Decimal(32, 8)
availableFunds Decimal @db.Decimal(32, 8)
utilizationRate Decimal? @db.Decimal(32, 8)
status String @default("active") // active, depleted, suspended
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reserve GruSupranationalReserve @relation(fields: [reserveId], references: [id], onDelete: Cascade)
@@index([fundId])
@@index([reserveId])
@@index([region])
@@index([status])
@@map("gru_regional_stabilization_funds")
}
model GruSdrAlternative {
id String @id @default(uuid())
sdrId String @unique
compositionType String // GRU_BACKED_SDR
gruWeight Decimal @db.Decimal(32, 8) // 0.4 (40%)
xauWeight Decimal @db.Decimal(32, 8) // 0.3 (30%)
basketWeight Decimal @db.Decimal(32, 8) // 0.3 (30%)
basketCurrencies Json // Array of currencies and weights
baseValue Decimal @db.Decimal(32, 12)
currentValue Decimal @db.Decimal(32, 12)
status String @default("active") // active, suspended
effectiveDate DateTime @default(now())
updatedAt DateTime @updatedAt
createdAt DateTime @default(now())
@@index([sdrId])
@@index([compositionType])
@@index([status])
@@map("gru_sdr_alternatives")
}
model GruStressTestResult {
id String @id @default(uuid())
resultId String @unique
testId String
testName String
stressRegime String
metricName String
metricValue Decimal @db.Decimal(32, 12)
threshold Decimal? @db.Decimal(32, 12)
passed Boolean?
impactLevel String? // low, medium, high, critical
details Json? // Detailed result data
timestamp DateTime @default(now())
temporalOffset Int? // For temporal tests: t-12 to t+60
createdAt DateTime @default(now())
test GruStressTest @relation(fields: [testId], references: [id], onDelete: Cascade)
@@index([resultId])
@@index([testId])
@@index([stressRegime])
@@index([metricName])
@@index([timestamp])
@@map("gru_stress_test_results")
}
model GruMonetaryCouncil {
id String @id @default(uuid())
councilId String @unique
councilName String
authorityLevel String // DBIS, OMDN_CB, GRU_MONETARY_COUNCIL
jurisdiction String?
issuanceAuthority Boolean @default(true)
approvalRequired Boolean @default(true)
status String @default("active") // active, suspended
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([councilId])
@@index([authorityLevel])
@@index([status])
@@map("gru_monetary_councils")
}
// ============================================================================
// DBIS GRU Volume II: Supranational Reserve Framework
// ============================================================================
model SupranationalEntity {
id String @id @default(uuid())
entityId String @unique
entityCode String @unique // EU, AU, ASEAN, GCC, MERCOSUR, Indo-Pacific
entityName String
entityType String // regional_union, monetary_alliance, strategic_cluster
description String @db.Text
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
reservePools GruReservePool[]
members SupranationalEntityMember[]
@@index([entityId])
@@index([entityCode])
@@index([entityType])
@@index([status])
issuances GruIssuance[]
reserveClasses GruSupranationalReserveClass[]
@@map("supranational_entities")
}
model SupranationalEntityMember {
id String @id @default(uuid())
memberId String @unique
entityId String
sovereignBankId String
membershipType String // full_member, associate_member, observer
status String @default("active") // active, suspended
joinedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
entity SupranationalEntity @relation(fields: [entityId], references: [id], onDelete: Cascade)
sovereignBank SovereignBank @relation(fields: [sovereignBankId], references: [id], onDelete: Cascade)
@@index([memberId])
@@index([entityId])
@@index([sovereignBankId])
@@index([status])
@@map("supranational_entity_members")
}
model GruSupranationalReserveClass {
id String @id @default(uuid())
reserveClassId String @unique
classType String @unique // SR-1, SR-2, SR-3
className String
description String @db.Text
roles Json // Array of roles (anchor unit, crisis stabilization, etc.)
functions Json // Array of functions (regional reserve pooling, FX corridor stabilization, etc.)
entityId String?
status String @default("active") // active, suspended
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
entity SupranationalEntity? @relation(fields: [entityId], references: [id], onDelete: SetNull)
allocations GruReserveAllocation[]
@@index([reserveClassId])
@@index([classType])
@@index([entityId])
@@index([status])
@@map("gru_supranational_reserve_classes")
}
model GruReservePool {
id String @id @default(uuid())
poolId String @unique
poolType String // global, regional, strategic
poolName String
entityId String?
totalReserves Decimal @default(0) @db.Decimal(32, 8)
availableReserves Decimal @default(0) @db.Decimal(32, 8)
reservedReserves Decimal @default(0) @db.Decimal(32, 8)
currencyCode String?
assetType String // multi_asset, gru_only, commodity_backed
status String @default("active") // active, suspended, closed
lastUpdated DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
entity SupranationalEntity? @relation(fields: [entityId], references: [id], onDelete: SetNull)
allocations GruReserveAllocation[]
settlements GruSupranationalSettlement[]
certificates GruReserveCertificate[]
@@index([poolId])
@@index([poolType])
@@index([entityId])
@@index([status])
withdrawals GruReserveWithdrawal[]
bonds GruReserveBond[]
@@map("gru_reserve_pools")
}
model GruReserveWithdrawal {
id String @id @default(uuid())
withdrawalId String @unique
poolId String
sovereignBankId String?
entityId String?
amount Decimal @db.Decimal(32, 8)
currencyCode String?
withdrawalType String // liquidity_access, crisis_intervention, fx_stabilization
approvalStatus String @default("pending") // pending, approved, rejected, executed
approvedAt DateTime?
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pool GruReservePool @relation(fields: [poolId], references: [id], onDelete: Cascade)
@@index([withdrawalId])
@@index([poolId])
@@index([sovereignBankId])
@@index([entityId])
@@map("gru_reserve_withdrawals")
}
model GruSdrInstrument {
id String @id @default(uuid())
sdrId String @unique
sdrName String @default("SDR_GRU")
gruWeight Decimal @default(0.40) @db.Decimal(32, 8) // 40%
xauWeight Decimal @default(0.30) @db.Decimal(32, 8) // 30%
fxBasketWeight Decimal @default(0.30) @db.Decimal(32, 8) // 30%
composition Json // Detailed composition breakdown
currentValue Decimal @db.Decimal(32, 12)
valuationDate DateTime @default(now())
fxBasket Json // USD/EUR/CNY/etc. weights
status String @default("active") // active, suspended
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
valuations GruSdrValuation[]
transactions GruSdrTransaction[]
@@index([sdrId])
@@index([status])
@@index([valuationDate])
@@map("gru_sdr_instruments")
}
model GruSdrValuation {
id String @id @default(uuid())
valuationId String @unique
sdrId String
gruValue Decimal @db.Decimal(32, 12)
xauValue Decimal @db.Decimal(32, 12)
fxBasketValue Decimal @db.Decimal(32, 12)
totalValue Decimal @db.Decimal(32, 12)
valuationDate DateTime @default(now())
metadata Json? // Additional valuation details
createdAt DateTime @default(now())
sdr GruSdrInstrument @relation(fields: [sdrId], references: [id], onDelete: Cascade)
@@index([valuationId])
@@index([sdrId])
@@index([valuationDate])
@@map("gru_sdr_valuations")
}
model GruSdrTransaction {
id String @id @default(uuid())
transactionId String @unique
sdrId String
transactionType String // conversion, allocation, redemption
amount Decimal @db.Decimal(32, 8)
sourceCurrency String?
targetCurrency String?
conversionRate Decimal? @db.Decimal(32, 12)
status String @default("pending") // pending, completed, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sdr GruSdrInstrument @relation(fields: [sdrId], references: [id], onDelete: Cascade)
@@index([transactionId])
@@index([sdrId])
@@index([transactionType])
@@index([status])
@@map("gru_sdr_transactions")
}
model GruReserveCertificate {
id String @id @default(uuid())
certificateId String @unique
certificateCode String @unique // GRC-XXXX-XXXX
poolId String
allocationId String
amount Decimal @db.Decimal(32, 8)
currencyCode String?
assetType String?
holderId String // sovereignBankId or entityId
holderType String // sovereign_bank, supranational_entity
status String @default("active") // active, redeemed, suspended
issuedAt DateTime @default(now())
redeemedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pool GruReservePool @relation(fields: [poolId], references: [id], onDelete: Cascade)
@@index([certificateId])
@@index([certificateCode])
@@index([poolId])
@@index([allocationId])
@@index([holderId])
@@index([status])
@@map("gru_reserve_certificates")
}
model GruReserveBond {
id String @id @default(uuid())
bondId String @unique
bondCode String @unique // GRB-XXXX-XXXX
poolId String?
entityId String?
principalAmount Decimal @db.Decimal(32, 8)
maturityYears Int // 5-50 years
maturityDate DateTime
interestRate Decimal @db.Decimal(32, 8)
couponRate Decimal @db.Decimal(32, 8)
couponFrequency String // quarterly, semi_annual, annual
bondType String // supranational_reserve_bond
status String @default("active") // active, matured, defaulted, redeemed
issuedAt DateTime @default(now())
redeemedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pool GruReservePool? @relation(fields: [poolId], references: [id], onDelete: SetNull)
coupons GruReserveBondCoupon[]
@@index([bondId])
@@index([bondCode])
@@index([poolId])
@@index([entityId])
@@index([status])
@@index([maturityDate])
@@map("gru_reserve_bonds")
}
model GruReserveBondCoupon {
id String @id @default(uuid())
couponId String @unique
bondId String
couponAmount Decimal @db.Decimal(32, 8)
paymentDate DateTime
status String @default("pending") // pending, paid, failed
paidAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond GruReserveBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([couponId])
@@index([bondId])
@@index([paymentDate])
@@index([status])
@@map("gru_reserve_bond_coupons")
}
model GruSupranationalSettlement {
id String @id @default(uuid())
settlementId String @unique
poolId String
atomicSettlementId String?
gruIndexState Json // GRU index state snapshot
xauState Json // XAU state snapshot
regionalFxBasket Json // Regional FX basket state
omegaLayerState Json? // Ω-Layer truth state
gasConfirmation String? // GAS atomic confirmation
gqlTruthSample String? // GQL truth sampling
settlementAmount Decimal @db.Decimal(32, 8)
currencyCode String
status String @default("pending") // pending, merged, confirmed, failed
mergedAt DateTime?
confirmedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pool GruReservePool @relation(fields: [poolId], references: [id], onDelete: Cascade)
@@index([settlementId])
@@index([poolId])
@@index([atomicSettlementId])
@@index([status])
@@map("gru_supranational_settlements")
}
// GRU Institutional Whitepaper: Regulatory Classifications & Governance
model GruRegulatoryClassification {
id String @id @default(uuid())
classificationId String @unique
entityId String // Sovereign bank ID or supranational entity ID
entityType String // sovereign_bank, supranational_council, regional_union, institution, commercial
regulatoryClass String // SR-1, SR-2, SR-3, M0, M1
accessLevel String // global_reserve, stabilization, commodity_reserves, operational_liquidity, market_instruments
eligibilityStatus String @default("pending") // pending, eligible, ineligible, suspended
eligibilityReviewDate DateTime?
reserveAdequacy Boolean @default(false)
legalRecognition Boolean @default(false) // Legal recognition of DBIS oversight
ilieVerified Boolean @default(false) // ILIE identity verification
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
entity GruSupranationalEntity? @relation(fields: [entityId], references: [id], onDelete: Cascade)
reviews GruEligibilityReview[]
@@index([classificationId])
@@index([entityId])
@@index([regulatoryClass])
@@index([eligibilityStatus])
@@index([status])
@@map("gru_regulatory_classifications")
}
model GruSupranationalEntity {
id String @id @default(uuid())
entityId String @unique
entityName String
entityType String // supranational_council, regional_union, dbis, regional_reserve_council
region String?
memberSovereigns Json? // Array of sovereign bank IDs
ilieIdentityId String? // ILIE identity reference
status String @default("active") // active, suspended, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
classifications GruRegulatoryClassification[]
applications GruIssuanceApplication[]
@@index([entityId])
@@index([entityType])
@@index([status])
@@map("gru_supranational_entities")
}
// GRU Institutional Whitepaper: Legal Framework
model GruLegalFramework {
id String @id @default(uuid())
frameworkId String @unique
frameworkType String // SMIA, DRGC, IMCP
frameworkName String
description String @db.Text
complianceRequired Boolean @default(true)
status String @default("active") // active, superseded, deprecated
effectiveDate DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
complianceRecords GruComplianceRecord[]
@@index([frameworkId])
@@index([frameworkType])
@@index([status])
@@map("gru_legal_frameworks")
}
model GruComplianceRecord {
id String @id @default(uuid())
recordId String @unique
issuanceId String?
frameworkId String
complianceType String // ISO_4217, ISO_6166, ICC_UCP_600, FATF_AML_CTF, SMIA, DRGC, IMCP
complianceStatus String @default("pending") // pending, compliant, non_compliant, exempt
verificationDate DateTime?
verifiedBy String? // System or auditor ID
details Json? // Compliance verification details
notes String? @db.Text
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
issuance GruIssuance? @relation(fields: [issuanceId], references: [issuanceId], onDelete: SetNull)
framework GruLegalFramework @relation(fields: [frameworkId], references: [frameworkId], onDelete: Cascade)
@@index([recordId])
@@index([issuanceId])
@@index([frameworkId])
@@index([complianceType])
@@index([complianceStatus])
@@map("gru_compliance_records")
}
// GRU Institutional Whitepaper: Issuance Governance
model GruIssuanceApplication {
id String @id @default(uuid())
applicationId String @unique
entityId String // Supranational entity or sovereign bank ID
entityType String // supranational_entity, sovereign_bank
requestedAmount Decimal @db.Decimal(32, 8)
requestedUnitType String // M00, M0, M1
requestedIndexLink String // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
regulatoryClass String? // SR-1, SR-2, SR-3, M0, M1
status String @default("submitted") // submitted, eligibility_review, index_validation, allocation, registration, gas_settlement, omega_finality, approved, rejected
currentStep String @default("application") // application, eligibility_review, index_validation, allocation, registration, gas_settlement, omega_finality
submittedAt DateTime @default(now())
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
entity GruSupranationalEntity? @relation(fields: [entityId], references: [id], onDelete: Cascade)
eligibilityReview GruEligibilityReview?
indexValidation GruIndexValidation?
allocation GruAllocationRecord?
@@index([applicationId])
@@index([entityId])
@@index([status])
@@index([currentStep])
@@map("gru_issuance_applications")
}
model GruEligibilityReview {
id String @id @default(uuid())
reviewId String @unique
applicationId String? @unique
classificationId String?
reviewType String // initial, periodic, appeal
sovereignStatus Boolean @default(false) // Sovereign or recognized supranational entity
reserveAdequacy Boolean @default(false)
legalRecognition Boolean @default(false) // Legal recognition of DBIS oversight
ilieVerification Boolean @default(false) // Identity verification via ILIE
reviewResult String @default("pending") // pending, approved, rejected, conditional
reviewNotes String? @db.Text
reviewedBy String? // System or reviewer ID
reviewedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
application GruIssuanceApplication? @relation(fields: [applicationId], references: [applicationId], onDelete: Cascade)
classification GruRegulatoryClassification? @relation(fields: [classificationId], references: [classificationId], onDelete: SetNull)
@@index([reviewId])
@@index([applicationId])
@@index([reviewResult])
@@map("gru_eligibility_reviews")
}
model GruIndexValidation {
id String @id @default(uuid())
validationId String @unique
applicationId String? @unique
indexCode String // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
indexValue Decimal @db.Decimal(32, 12)
validationResult String @default("pending") // pending, valid, invalid, requires_review
validationNotes String? @db.Text
validatedBy String? // System or validator ID
validatedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
application GruIssuanceApplication? @relation(fields: [applicationId], references: [applicationId], onDelete: Cascade)
@@index([validationId])
@@index([applicationId])
@@index([indexCode])
@@map("gru_index_validations")
}
model GruAllocationRecord {
id String @id @default(uuid())
allocationId String @unique
applicationId String? @unique
issuanceId String?
allocatedAmount Decimal @db.Decimal(32, 8)
allocatedUnitType String // M00, M0, M1
allocationDate DateTime @default(now())
status String @default("allocated") // allocated, registered, settled
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
application GruIssuanceApplication? @relation(fields: [applicationId], references: [applicationId], onDelete: Cascade)
@@index([allocationId])
@@index([applicationId])
@@index([issuanceId])
@@map("gru_allocation_records")
}
// GRU Institutional Whitepaper: Settlement Pipeline
model GruSettlementPipeline {
id String @id @default(uuid())
pipelineId String @unique
issuanceId String?
applicationId String?
pipelineStage String @default("classical") // classical, quantum, omega_layer, completed
classicalState Json? // Classical settlement state
quantumState Json? // Quantum settlement state
omegaLayerState Json? // Ω-Layer finality state
gasSettlementId String? // GAS atomic network settlement ID
omegaFinalityId String? // Ω-Layer finality record ID
status String @default("pending") // pending, classical_initiated, quantum_initiated, omega_initiated, completed, failed
initiatedAt DateTime @default(now())
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gasSettlement GruGasSettlement?
omegaFinality GruOmegaLayerFinality?
@@index([pipelineId])
@@index([issuanceId])
@@index([applicationId])
@@index([pipelineStage])
@@index([status])
issuance GruIssuance? @relation(fields: [issuanceId], references: [id], onDelete: SetNull)
@@map("gru_settlement_pipelines")
}
model GruGasSettlement {
id String @id @default(uuid())
settlementId String @unique
pipelineId String? @unique
gasTransactionId String // GAS atomic network transaction ID
atomicNetwork String // GAS atomic network identifier
settlementAmount Decimal @db.Decimal(32, 8)
currencyCode String
atomicConfirmation String? // GAS atomic confirmation hash
status String @default("pending") // pending, atomic_confirmed, failed
confirmedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pipeline GruSettlementPipeline? @relation(fields: [pipelineId], references: [pipelineId], onDelete: Cascade)
@@index([settlementId])
@@index([pipelineId])
@@index([gasTransactionId])
@@index([status])
@@map("gru_gas_settlements")
}
model GruOmegaLayerFinality {
id String @id @default(uuid())
finalityId String @unique
pipelineId String? @unique
omegaLayerId String // Ω-Layer identifier
mergeOperationId String? // Ω-Layer merge operation ID
finalityProof String? // Ω-Layer finality proof
causalityStable Boolean @default(false) // Causality stabilization verified
multiRealityReconciled Boolean @default(false) // Multi-reality reconciliation verified
status String @default("pending") // pending, merged, finalized, failed
mergedAt DateTime?
finalizedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
pipeline GruSettlementPipeline? @relation(fields: [pipelineId], references: [pipelineId], onDelete: Cascade)
@@index([finalityId])
@@index([pipelineId])
@@index([omegaLayerId])
@@index([status])
@@map("gru_omega_layer_finalities")
}
// GRU Institutional Whitepaper: Transparency & Disclosure
model GruTransparencyReport {
id String @id @default(uuid())
reportId String @unique
reportType String // daily_price_fixing, liquidity_report, bond_health, stress_test, omega_proof
reportDate DateTime @default(now())
reportData Json // Report-specific data structure
status String @default("generated") // generated, published, archived
publishedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([reportId])
@@index([reportType])
@@index([reportDate])
@@index([status])
@@map("gru_transparency_reports")
}
// GRU Institutional Whitepaper: International Adoption
model GruAdoption {
id String @id @default(uuid())
adoptionId String @unique
entityId String // Sovereign bank or supranational entity ID
entityType String // sovereign_bank, supranational_entity, regional_union
currentPhase String @default("alignment") // alignment, integration, expansion
alignmentStatus String @default("pending") // pending, in_progress, completed
integrationStatus String @default("pending") // pending, in_progress, completed
expansionStatus String @default("pending") // pending, in_progress, completed
regulatorySyncDate DateTime?
reserveConversionDate DateTime?
regionalPoolJoinDate DateTime?
status String @default("active") // active, completed, suspended
initiatedAt DateTime @default(now())
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([adoptionId])
@@index([entityId])
@@index([currentPhase])
@@index([status])
@@map("gru_adoptions")
}
// ============================================================================
// GRU Banking Operations Manual (Volume IV): Account Structure & Operations
// ============================================================================
// GRU Account Classes (GRA-0 through GRA-6)
model GruAccount {
id String @id @default(uuid())
accountId String @unique
accountClass String // GRA-0, GRA-1, GRA-2, GRA-3, GRA-4, GRA-5, GRA-6
entityId String // DBIS, SCB, Supranational, Bank, Enterprise ID
entityType String // dbis, scb, supranational, tier1_bank, tier2_bank, enterprise, observational
accountNumber String @unique
balance Decimal @default(0) @db.Decimal(32, 8)
availableBalance Decimal @default(0) @db.Decimal(32, 8)
reservedBalance Decimal @default(0) @db.Decimal(32, 8)
currencyCode String @default("GRU")
status String @default("active") // active, suspended, closed
openedAt DateTime @default(now())
closedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
accountClassDef GruAccountClass @relation(fields: [accountClass], references: [accountClass], onDelete: Restrict)
transactions GruAccountTransaction[]
reconciliations GruAccountReconciliation[]
@@index([accountId])
@@index([accountClass])
@@index([entityId])
@@index([accountNumber])
@@index([status])
@@map("gru_accounts")
}
model GruAccountClass {
accountClass String @id // GRA-0, GRA-1, GRA-2, GRA-3, GRA-4, GRA-5, GRA-6
className String
entityType String // dbis, scb, supranational, tier1_bank, tier2_bank, enterprise, observational
purpose String @db.Text
permissions Json // Account class permissions and restrictions
status String @default("active") // active, deprecated
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
accounts GruAccount[]
@@map("gru_account_classes")
}
model GruAccountTransaction {
id String @id @default(uuid())
transactionId String @unique
accountId String
transactionType String // spot_conversion, fx_ssu_routing, bond_purchase, bond_redemption, reserve_adjustment, metaverse_on_ramp, metaverse_off_ramp, temporal_settlement
amount Decimal @db.Decimal(32, 8)
currencyCode String
referenceId String? // Reference to related transaction
status String @default("pending") // pending, completed, failed, reversed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
account GruAccount @relation(fields: [accountId], references: [id], onDelete: Cascade)
@@index([transactionId])
@@index([accountId])
@@index([transactionType])
@@index([status])
@@map("gru_account_transactions")
}
model GruAccountReconciliation {
id String @id @default(uuid())
reconciliationId String @unique
accountId String
reconciliationDate DateTime @default(now())
openingBalance Decimal @db.Decimal(32, 8)
closingBalance Decimal @db.Decimal(32, 8)
expectedBalance Decimal @db.Decimal(32, 8)
variance Decimal? @db.Decimal(32, 8)
variancePercent Decimal? @db.Decimal(32, 8)
status String @default("pending") // pending, reconciled, variance_detected, resolved
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
account GruAccount @relation(fields: [accountId], references: [id], onDelete: Cascade)
@@index([reconciliationId])
@@index([accountId])
@@index([reconciliationDate])
@@index([status])
@@map("gru_account_reconciliations")
}
// Daily Operations Models
model GruDailyOperations {
id String @id @default(uuid())
operationId String @unique
operationDate DateTime @default(now())
operationType String // opening, closeout
ledgerNodesInitialized Boolean @default(false)
indexEngineSynced Boolean @default(false)
qekVerified Boolean @default(false)
omegaDiagnosticRun Boolean @default(false)
gasReconciled Boolean @default(false)
quantumDriftCorrected Boolean @default(false)
sovereignExposureUpdated Boolean @default(false)
complianceSnapshotGenerated Boolean @default(false)
status String @default("in_progress") // in_progress, completed, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ledgerNodes GruLedgerNode[]
indexSyncs GruIndexSync[]
qekVerifications GruQuantumEnvelopeKey[]
omegaDiagnostics GruOmegaDiagnostic[]
closeouts GruEndOfDayCloseout[]
@@index([operationId])
@@index([operationDate])
@@index([operationType])
@@index([status])
@@map("gru_daily_operations")
}
model GruLedgerNode {
id String @id @default(uuid())
nodeId String @unique
operationId String
nodeType String // master, sovereign, regional
nodeStatus String @default("initializing") // initializing, synchronized, failed
lastSyncAt DateTime?
syncStatus String @default("pending") // pending, syncing, completed, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
operation GruDailyOperations @relation(fields: [operationId], references: [id], onDelete: Cascade)
@@index([nodeId])
@@index([operationId])
@@index([nodeStatus])
@@map("gru_ledger_nodes")
}
model GruIndexSync {
id String @id @default(uuid())
syncId String @unique
operationId String
indexCode String // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
syncStatus String @default("pending") // pending, syncing, completed, failed
lastSyncedValue Decimal? @db.Decimal(32, 12)
syncTimestamp DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
operation GruDailyOperations @relation(fields: [operationId], references: [id], onDelete: Cascade)
@@index([syncId])
@@index([operationId])
@@index([indexCode])
@@index([syncStatus])
@@map("gru_index_syncs")
}
model GruQuantumEnvelopeKey {
id String @id @default(uuid())
qekId String @unique
operationId String
keyId String
verificationStatus String @default("pending") // pending, verified, failed
verificationTimestamp DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
operation GruDailyOperations @relation(fields: [operationId], references: [id], onDelete: Cascade)
@@index([qekId])
@@index([operationId])
@@index([keyId])
@@index([verificationStatus])
@@map("gru_quantum_envelope_keys")
}
model GruOmegaDiagnostic {
id String @id @default(uuid())
diagnosticId String @unique
operationId String
layerId String // Ω0, Ω1, Ω2, Ω3, Ω4
diagnosticStatus String @default("pending") // pending, running, completed, failed
diagnosticResult Json? // Diagnostic results
runTimestamp DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
operation GruDailyOperations @relation(fields: [operationId], references: [id], onDelete: Cascade)
@@index([diagnosticId])
@@index([operationId])
@@index([layerId])
@@index([diagnosticStatus])
@@map("gru_omega_diagnostics")
}
model GruEndOfDayCloseout {
id String @id @default(uuid())
closeoutId String @unique
operationId String
closeoutDate DateTime @default(now())
gasReconciliationStatus String @default("pending") // pending, completed, failed
quantumDriftCorrectionStatus String @default("pending") // pending, completed, failed
sovereignExposureUpdateStatus String @default("pending") // pending, completed, failed
complianceSnapshotStatus String @default("pending") // pending, completed, failed
status String @default("in_progress") // in_progress, completed, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
operation GruDailyOperations @relation(fields: [operationId], references: [id], onDelete: Cascade)
@@index([closeoutId])
@@index([operationId])
@@index([closeoutDate])
@@index([status])
@@map("gru_end_of_day_closeouts")
}
// Liquidity Management Models
model GruLiquidityMonitoring {
id String @id @default(uuid())
monitoringId String @unique
monitoringDate DateTime @default(now())
xauAnchorValue Decimal @db.Decimal(32, 8)
xauAnchorStability Decimal @db.Decimal(32, 8) // Stability score 0-100
stabilityStatus String @default("stable") // stable, volatile, critical
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([monitoringId])
@@index([monitoringDate])
@@index([stabilityStatus])
@@map("gru_liquidity_monitoring")
}
model GruLiquidityDemand {
id String @id @default(uuid())
demandId String @unique
demandDate DateTime @default(now())
indexCode String // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
demandLevel Decimal @db.Decimal(32, 8)
demandType String // normal, elevated, critical
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([demandId])
@@index([demandDate])
@@index([indexCode])
@@map("gru_liquidity_demand")
}
model GruLiquidityPrediction {
id String @id @default(uuid())
predictionId String @unique
predictionDate DateTime @default(now())
timeHorizon String // t+1, t+7, t+30, t+90, t+180, t+365
predictedLiquidity Decimal @db.Decimal(32, 8)
confidenceLevel Decimal @db.Decimal(32, 8) // 0-100
modelVersion String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([predictionId])
@@index([predictionDate])
@@index([timeHorizon])
@@map("gru_liquidity_predictions")
}
model GruReserveBuffer {
id String @id @default(uuid())
bufferId String @unique
reserveType String // supranational, regional, sovereign
bufferAmount Decimal @db.Decimal(32, 8)
allocatedAmount Decimal @default(0) @db.Decimal(32, 8)
availableAmount Decimal @db.Decimal(32, 8)
status String @default("active") // active, depleted, replenished
lastAllocatedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([bufferId])
@@index([reserveType])
@@index([status])
@@map("gru_reserve_buffers")
}
// Risk Management Models
model GruRiskControl {
id String @id @default(uuid())
controlId String @unique
controlDate DateTime @default(now())
controlType String // daily_volatility_screening, sovereign_correlation, fx_corridor, synthetic_market_stress
controlStatus String @default("pending") // pending, passed, failed, warning
controlResult Json? // Control results and metrics
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([controlId])
@@index([controlDate])
@@index([controlType])
@@index([controlStatus])
@@map("gru_risk_controls")
}
model GruVolatilityScreening {
id String @id @default(uuid())
screeningId String @unique
screeningDate DateTime @default(now())
indexCode String // LiXAU, LiPMG, LiBMG1, LiBMG2, LiBMG3
volatilityLevel Decimal @db.Decimal(32, 8)
volatilityStatus String @default("normal") // normal, elevated, critical
threshold Decimal? @db.Decimal(32, 8)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([screeningId])
@@index([screeningDate])
@@index([indexCode])
@@index([volatilityStatus])
@@map("gru_volatility_screening")
}
model GruSovereignCorrelation {
id String @id @default(uuid())
correlationId String @unique
correlationDate DateTime @default(now())
sovereignBankId1 String
sovereignBankId2 String
correlationValue Decimal @db.Decimal(32, 8) // -1 to 1
correlationStatus String @default("normal") // normal, elevated, critical
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([correlationId])
@@index([correlationDate])
@@index([sovereignBankId1])
@@index([sovereignBankId2])
@@map("gru_sovereign_correlations")
}
model GruFxCorridor {
id String @id @default(uuid())
corridorId String @unique
monitoringDate DateTime @default(now())
currencyPair String // e.g., GRU/USD, GRU/EUR
currentRate Decimal @db.Decimal(32, 12)
upperBound Decimal @db.Decimal(32, 12)
lowerBound Decimal @db.Decimal(32, 12)
corridorStatus String @default("within") // within, upper_breach, lower_breach
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([corridorId])
@@index([monitoringDate])
@@index([currencyPair])
@@index([corridorStatus])
@@map("gru_fx_corridors")
}
model GruSyntheticMarketFlag {
id String @id @default(uuid())
flagId String @unique
flagDate DateTime @default(now())
marketType String // synthetic_derivatives, synthetic_liquidity, synthetic_reserves
stressLevel String @default("normal") // normal, elevated, critical
flagReason String @db.Text
status String @default("active") // active, resolved, false_positive
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([flagId])
@@index([flagDate])
@@index([marketType])
@@index([stressLevel])
@@index([status])
@@map("gru_synthetic_market_flags")
}
// Compliance & Reporting Models
model GruComplianceSnapshot {
id String @id @default(uuid())
snapshotId String @unique
snapshotDate DateTime @default(now())
snapshotType String // daily, monthly, annual
snapshotData Json // Compliance data snapshot
ariSubmissionStatus String @default("pending") // pending, submitted, confirmed
ariSubmissionId String?
submittedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([snapshotId])
@@index([snapshotDate])
@@index([snapshotType])
@@index([ariSubmissionStatus])
@@map("gru_compliance_snapshots")
}
// Sub-Volume E: Quantum Proxy Server (QPS)
model QuantumProxyTransaction {
id String @id @default(uuid())
proxyTransactionId String @unique
legacyTransactionId String
legacyProtocol String // SWIFT, ISO20022, ACH, SEPA, PRIVATE_BANK
quantumEnvelopeId String?
translationId String?
dbisQfsTransactionId String?
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
status String @default("pending") // pending, bridged, failed
bridgedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
envelope QuantumEnvelope? @relation(fields: [quantumEnvelopeId], references: [envelopeId], onDelete: SetNull)
translation QuantumTranslation? @relation(fields: [translationId], references: [translationId], onDelete: SetNull)
@@index([proxyTransactionId])
@@index([legacyTransactionId])
@@index([legacyProtocol])
@@index([sourceBankId])
@@index([destinationBankId])
@@index([status])
@@map("quantum_proxy_transactions")
}
model QuantumEnvelope {
id String @id @default(uuid())
envelopeId String @unique
legacyTransactionId String
legacyProtocol String
quantumHash String
causalConsistencyHash String
dimensionalHarmonizationHash String
transactionData Json
status String @default("created") // created, verified, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
proxyTransactions QuantumProxyTransaction[]
@@index([envelopeId])
@@index([legacyTransactionId])
@@index([legacyProtocol])
@@index([status])
@@map("quantum_envelopes")
}
model QuantumTranslation {
id String @id @default(uuid())
translationId String @unique
legacyProtocol String
legacyAmount Decimal @db.Decimal(32, 8)
legacyCurrency String
quantumAmount Decimal @db.Decimal(32, 8)
quantumCurrency String
fxRate Decimal @db.Decimal(32, 12)
riskScore Decimal @db.Decimal(32, 8)
protocolMapping Json
transactionData Json
status String @default("completed") // completed, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
proxyTransactions QuantumProxyTransaction[]
@@index([translationId])
@@index([legacyProtocol])
@@index([status])
@@map("quantum_translations")
}
model LegacyProtocolMapping {
id String @id @default(uuid())
mappingId String @unique
legacyProtocol String // SWIFT, ISO20022, ACH, SEPA, PRIVATE_BANK
mappingConfig Json // Protocol-specific mapping configuration
status String @default("active") // active, deprecated
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([mappingId])
@@index([legacyProtocol])
@@index([status])
@@map("legacy_protocol_mappings")
}
// Sub-Volume C: Metaverse Integration
model MetaverseNode {
id String @id @default(uuid())
nodeId String @unique
metaverseName String // e.g., "MetaverseDubai"
metaverseType String // sovereign, private, hybrid
settlementEndpoint String
cbdcOnRampEnabled Boolean @default(false)
cbdcOffRampEnabled Boolean @default(false)
gruOnRampEnabled Boolean @default(false)
gruOffRampEnabled Boolean @default(false)
identityLayer String // L3, L4 (ILIE identity layers)
assetTokenizationEnabled Boolean @default(false)
status String @default("active") // active, suspended
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlements MetaverseSettlement[]
identities MetaverseIdentity[]
assets MetaverseAsset[]
bridges MetaverseBridge[]
fxTransactionsSource MetaverseFxTransaction[] @relation("MetaverseFxSource")
fxTransactionsTarget MetaverseFxTransaction[] @relation("MetaverseFxTarget")
dsez DigitalSovereignEconomicZone[]
rampTransactions MetaverseRampTransaction[]
computeNodes MetaverseComputeNode[]
@@index([nodeId])
@@index([metaverseName])
@@index([status])
@@map("metaverse_nodes")
}
model MetaverseSettlement {
id String @id @default(uuid())
settlementId String @unique
metaverseNodeId String
gasSettlementId String
sourceBankId String
destinationBankId String
virtualLandId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
assetType String // virtual_land, virtual_asset, nft
status String @default("pending") // pending, settled, failed
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node MetaverseNode @relation(fields: [metaverseNodeId], references: [id], onDelete: Cascade)
@@index([settlementId])
@@index([metaverseNodeId])
@@index([virtualLandId])
@@index([status])
@@map("metaverse_settlements")
}
model MetaverseIdentity {
id String @id @default(uuid())
identityId String @unique
metaverseNodeId String
avatarId String
identityLayer String // L3, L4
sovereignBankId String?
identityHash String
identityData Json
status String @default("active") // active, suspended, revoked
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node MetaverseNode @relation(fields: [metaverseNodeId], references: [id], onDelete: Cascade)
@@index([identityId])
@@index([metaverseNodeId])
@@index([avatarId])
@@index([identityLayer])
@@map("metaverse_identities")
}
model MetaverseAsset {
id String @id @default(uuid())
assetId String @unique
metaverseNodeId String
assetType String // virtual_land, virtual_building, nft, token
assetName String
tokenId String?
ownerAvatarId String?
value Decimal? @db.Decimal(32, 8)
currencyCode String?
tokenClass String? // virtual_land, avatar_asset, business_license, event_rights, data_ownership, ai_companion
businessLicenseId String?
eventRights Json? // Event rights data
dataOwnershipTokenId String?
aiCompanionId String?
status String @default("active") // active, locked, transferred
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node MetaverseNode @relation(fields: [metaverseNodeId], references: [id], onDelete: Cascade)
@@index([assetId])
@@index([metaverseNodeId])
@@index([assetType])
@@index([tokenId])
@@map("metaverse_assets")
}
model MetaverseTokenClass {
id String @id @default(uuid())
tokenClassId String @unique
tokenClass String @unique // virtual_land, avatar_asset, business_license, event_rights, data_ownership, ai_companion
className String
description String @db.Text
metadata Json?
status String @default("active") // active, deprecated
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([tokenClassId])
@@index([tokenClass])
@@map("metaverse_token_classes")
}
model MetaverseFxTransaction {
id String @id @default(uuid())
fxTransactionId String @unique
sourceMetaverseNodeId String
targetMetaverseNodeId String
sourceAmount Decimal @db.Decimal(32, 8)
targetAmount Decimal @db.Decimal(32, 8)
sourceCurrency String
targetCurrency String
exchangeRate Decimal @db.Decimal(32, 12)
conversionMethod String // ssu, qmu, hmu, direct
realityType String? // classical, quantum, simulated, holographic
status String @default("completed") // completed, failed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sourceNode MetaverseNode @relation("MetaverseFxSource", fields: [sourceMetaverseNodeId], references: [id], onDelete: Cascade)
targetNode MetaverseNode @relation("MetaverseFxTarget", fields: [targetMetaverseNodeId], references: [id], onDelete: Cascade)
@@index([fxTransactionId])
@@index([sourceMetaverseNodeId])
@@index([targetMetaverseNodeId])
@@index([status])
@@map("metaverse_fx_transactions")
}
model MetaverseBridge {
id String @id @default(uuid())
bridgeId String @unique
metaverseNodeId String
bridgeType String // nft_commodity, virtual_securitization, hybrid
virtualAssetId String
physicalAssetId String?
nftTokenId String?
amount Decimal @db.Decimal(32, 8)
currencyCode String
status String @default("active") // active, dissolved
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node MetaverseNode @relation(fields: [metaverseNodeId], references: [id], onDelete: Cascade)
@@index([bridgeId])
@@index([metaverseNodeId])
@@index([bridgeType])
@@index([virtualAssetId])
@@index([nftTokenId])
@@map("metaverse_bridges")
}
// ============================================================================
// DBIS Supplement B: MetaverseDubai Integration Framework - D-SEZ Model
// ============================================================================
model DigitalSovereignEconomicZone {
id String @id @default(uuid())
dsezId String @unique
metaverseNodeId String
sovereignBankId String?
virtualCitizenshipEnabled Boolean @default(false)
digitalLandEnabled Boolean @default(false)
tokenizedFxEnabled Boolean @default(false)
liquidityFlowEnabled Boolean @default(false)
status String @default("active") // active, suspended, inactive
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node MetaverseNode @relation(fields: [metaverseNodeId], references: [id], onDelete: Cascade)
sovereignBank SovereignBank? @relation(fields: [sovereignBankId], references: [id], onDelete: SetNull)
rampTransactions MetaverseRampTransaction[]
consistencyChecks MetaverseConsistencyCheck[]
@@index([dsezId])
@@index([metaverseNodeId])
@@index([sovereignBankId])
@@index([status])
@@map("digital_sovereign_economic_zones")
}
model MetaverseRampTransaction {
id String @id @default(uuid())
rampId String @unique
dsezId String
rampType String // on_ramp, off_ramp
sourceType String // fiat, cbdc, gru, ssu, virtual_currency, tokenized_asset
targetType String // fiat, cbdc, gru, ssu, virtual_currency, tokenized_asset
amount Decimal @db.Decimal(32, 8)
currencyCode String
metaverseNodeId String
sourceBankId String?
destinationBankId String?
exchangeRate Decimal? @db.Decimal(32, 12)
status String @default("pending") // pending, processing, completed, failed
validationHash String?
complianceCheck Boolean @default(false)
processedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
dsez DigitalSovereignEconomicZone @relation(fields: [dsezId], references: [id], onDelete: Cascade)
node MetaverseNode @relation(fields: [metaverseNodeId], references: [id], onDelete: Cascade)
@@index([rampId])
@@index([dsezId])
@@index([metaverseNodeId])
@@index([rampType])
@@index([status])
@@index([createdAt])
@@map("metaverse_ramp_transactions")
}
model MetaverseComputeNode {
id String @id @default(uuid())
nodeId String @unique
nodeType String // MGN, SAN, ZKN, QGN
regionId String
metaverseNodeId String?
latency Int // milliseconds
gpuCapacity Int // GPU units
networkAddress String
sixGEnabled Boolean @default(false)
zkVerificationEnabled Boolean @default(false)
holographicRenderingEnabled Boolean @default(false)
status String @default("active") // active, degraded, offline
metadata Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node MetaverseNode? @relation(fields: [metaverseNodeId], references: [id], onDelete: SetNull)
@@index([nodeId])
@@index([nodeType])
@@index([regionId])
@@index([metaverseNodeId])
@@index([status])
@@map("metaverse_compute_nodes")
}
model MetaverseConsistencyCheck {
id String @id @default(uuid())
checkId String @unique
dsezId String
mdxState Json? // MetaverseDubai state
primeState Json? // DBIS Prime state
parallelState Json? // Parallel state
mergedState Json? // Ω-Merge result
consistencyStatus String @default("pending") // pending, consistent, inconsistent
identityCoherence Boolean @default(false)
assetRealityMapping Boolean @default(false)
omegaValidation Boolean @default(false)
checkedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
dsez DigitalSovereignEconomicZone @relation(fields: [dsezId], references: [id], onDelete: Cascade)
@@index([checkId])
@@index([dsezId])
@@index([consistencyStatus])
@@index([checkedAt])
@@map("metaverse_consistency_checks")
}
// Sub-Volume D: Edge/Last-Mile GPU for Metaverse in 325 Regions over 6G
model GpuEdgeNode {
id String @id @default(uuid())
nodeId String @unique
nodeType String // MGN, QGN, ZKN, SAN
regionId String
nodeName String
gpuCapacity Int // GPU units
networkAddress String
quantumSafeTunnelingEnabled Boolean @default(false)
status String @default("active") // active, degraded, offline
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
region GpuEdgeRegion @relation(fields: [regionId], references: [regionId], onDelete: Cascade)
tasks GpuEdgeTask[]
@@index([nodeId])
@@index([nodeType])
@@index([regionId])
@@index([status])
@@map("gpu_edge_nodes")
}
model GpuEdgeRegion {
id String @id @default(uuid())
regionId String @unique
regionName String
status String @default("active") // active, inactive
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
nodes GpuEdgeNode[]
deployments GpuEdgeDeployment[]
@@index([regionId])
@@index([status])
@@map("gpu_edge_regions")
}
model GpuEdgeDeployment {
id String @id @default(uuid())
deploymentId String @unique
regionId String
nodeTypes Json // Array of node types
nodesCreated Json // Array of node IDs
status String @default("pending") // pending, completed, failed
deployedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
region GpuEdgeRegion @relation(fields: [regionId], references: [regionId], onDelete: Cascade)
@@index([deploymentId])
@@index([regionId])
@@index([status])
@@map("gpu_edge_deployments")
}
model GpuEdgeTask {
id String @id @default(uuid())
taskId String @unique
nodeId String
taskType String // metaverse_rendering, quantum_proxy, zk_validation, ai_behavioral, health_check
status String @default("pending") // pending, running, completed, failed
result Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
node GpuEdgeNode @relation(fields: [nodeId], references: [id], onDelete: Cascade)
@@index([taskId])
@@index([nodeId])
@@index([taskType])
@@index([status])
@@map("gpu_edge_tasks")
}
model GpuEdgeNetwork {
id String @id @default(uuid())
routeId String @unique
sourceRegionId String
targetRegionId String
sourceNodeId String
targetNodeId String
path Json // Array of node IDs
estimatedLatency Decimal @db.Decimal(32, 8) // Milliseconds
quantumSafe Boolean @default(false)
latencyRequirement Decimal @db.Decimal(32, 8) // <1ms default
status String @default("active") // active, expired
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([routeId])
@@index([sourceRegionId])
@@index([targetRegionId])
@@index([status])
@@map("gpu_edge_networks")
}
// Sub-Volume F: System Gap Audit & Technology Completion Engine
model GapAudit {
id String @id @default(uuid())
auditId String @unique
auditScope Json // Array of system scopes
gapsFound Int @default(0)
modulesGenerated Int @default(0)
recommendationsCount Int @default(0)
status String @default("pending") // pending, running, completed, failed
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
detections GapDetection[]
recommendations SystemRecommendation[]
@@index([auditId])
@@index([status])
@@map("gap_audits")
}
model GapDetection {
id String @id @default(uuid())
detectionId String @unique
auditId String
gapType String // multiverse_settlement_layer, quantum_financial_interface, etc.
systemScope String // multiverse, temporal, quantum, cognitive, dlt, metaverse
description String @db.Text
severity String // low, medium, high, critical
status String @default("detected") // detected, resolved, ignored
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
audit GapAudit @relation(fields: [auditId], references: [id], onDelete: Cascade)
@@index([detectionId])
@@index([auditId])
@@index([gapType])
@@index([systemScope])
@@index([severity])
@@map("gap_detections")
}
model GeneratedModule {
id String @id @default(uuid())
moduleId String @unique
gapType String
moduleType String // settlement, quantum, metaverse, fx, identity
status String @default("generated") // generated, implemented, deprecated
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([moduleId])
@@index([gapType])
@@index([moduleType])
@@index([status])
@@map("generated_modules")
}
model SystemRecommendation {
id String @id @default(uuid())
recommendationId String @unique
auditId String
recommendationType String // settlement_layer, synthetic_assets, ai_supervisory, etc.
title String
description String @db.Text
priority String // low, medium, high, critical
status String @default("pending") // pending, approved, implemented, rejected
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
audit GapAudit @relation(fields: [auditId], references: [id], onDelete: Cascade)
@@index([auditId])
@@index([recommendationType])
@@index([priority])
@@index([status])
@@map("system_recommendations")
}
model GapType {
id String @id @default(uuid())
gapTypeId String @unique
gapType String @unique
description String @db.Text
autoGenerate Boolean @default(false)
status String @default("active")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([gapTypeId])
@@index([gapType])
@@index([status])
@@map("gap_types")
}
// ============================================================================
// DBIS Volume III: Global Bond Markets & Synthetic Liquidity Systems
// ============================================================================
// Synthetic GRU Bond Instruments
model SyntheticGruBond {
id String @id @default(uuid())
syntheticBondId String @unique
instrumentType String // sGRU-BND, sGRU-ETF, sGRU-FWD, sGRU-SWAP
bondId String? // Reference to underlying GRU bond
underlyingBonds Json? // Array of underlying bond IDs for basket/ETF
principalAmount Decimal @db.Decimal(32, 8)
currentPrice Decimal? @db.Decimal(32, 12)
nav Decimal? @db.Decimal(32, 12) // For ETF
forwardPrice Decimal? @db.Decimal(32, 12) // For FWD
swapRate Decimal? @db.Decimal(32, 12) // For SWAP
sovereignBankId String
issuerId String? // Synthetic instrument issuer
maturityDate DateTime?
settlementDate DateTime? // For forward contracts
status String @default("active") // active, expired, settled, closed
issuedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond GruBond? @relation("SyntheticGruBondToGruBond", fields: [bondId], references: [bondId], onDelete: SetNull)
pricing GruBondPricing[] @relation("GruBondPricingToSynthetic")
pricingHistory BondPricingHistory[] @relation("BondPricingHistoryToSynthetic")
settlements GruBondSettlement[] @relation("GruBondSettlementToSynthetic")
riskAssessments BondRiskAssessment[] @relation("BondRiskAssessmentToSynthetic")
@@index([syntheticBondId])
@@index([instrumentType])
@@index([bondId])
@@index([sovereignBankId])
@@index([status])
@@map("synthetic_gru_bonds")
}
// GRU Bond Market Structure
model GruBondMarket {
id String @id @default(uuid())
marketId String @unique
marketLayer String // primary, supranational, sovereign, institutional, retail
marketName String
description String @db.Text
minInvestment Decimal? @db.Decimal(32, 8)
maxInvestment Decimal? @db.Decimal(32, 8)
participantTypes Json // Array of allowed participant types
status String @default("active") // active, suspended, closed
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
participants BondMarketParticipant[]
bondListings BondMarketListing[]
@@index([marketId])
@@index([marketLayer])
@@index([status])
@@map("gru_bond_markets")
}
model BondMarketParticipant {
id String @id @default(uuid())
participantId String @unique
marketId String
sovereignBankId String?
participantType String // scb, supranational, institutional, retail, quantum_node, holographic_node
participantName String
accessLevel String // full, limited, synthetic_only
status String @default("active") // active, suspended, revoked
approvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
market GruBondMarket @relation(fields: [marketId], references: [id], onDelete: Cascade)
sovereignBank SovereignBank? @relation("BondMarketParticipantToSovereignBank", fields: [sovereignBankId], references: [id], onDelete: SetNull)
@@index([participantId])
@@index([marketId])
@@index([sovereignBankId])
@@index([participantType])
@@index([status])
@@map("bond_market_participants")
}
model BondMarketListing {
id String @id @default(uuid())
listingId String @unique
marketId String
bondId String? // GRU bond ID
syntheticBondId String? // Synthetic bond ID
listingType String // primary, secondary
listingPrice Decimal? @db.Decimal(32, 12)
quantity Decimal? @db.Decimal(32, 8)
status String @default("active") // active, filled, cancelled, expired
listedAt DateTime @default(now())
filledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
market GruBondMarket @relation(fields: [marketId], references: [id], onDelete: Cascade)
@@index([listingId])
@@index([marketId])
@@index([bondId])
@@index([syntheticBondId])
@@index([status])
@@map("bond_market_listings")
}
// GRU Bond Pricing
model GruBondPricing {
id String @id @default(uuid())
pricingId String @unique
bondId String? // GRU bond ID
syntheticBondId String? // Synthetic bond ID
pricingModel String // base, discounted_acquisition, liquidity_loop_linked
basePrice Decimal @db.Decimal(32, 12)
indexAdjustment Decimal? @db.Decimal(32, 12)
liquidityAdjustment Decimal? @db.Decimal(32, 12)
riskAdjustment Decimal? @db.Decimal(32, 12)
finalPrice Decimal @db.Decimal(32, 12)
yield Decimal? @db.Decimal(32, 12)
discountRate Decimal? @db.Decimal(32, 12)
calculationDetails Json? // Detailed calculation breakdown
calculatedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond GruBond? @relation("GruBondPricingToGruBond", fields: [bondId], references: [bondId], onDelete: SetNull)
syntheticBond SyntheticGruBond? @relation("GruBondPricingToSynthetic", fields: [syntheticBondId], references: [syntheticBondId], onDelete: SetNull)
@@index([pricingId])
@@index([bondId])
@@index([syntheticBondId])
@@index([pricingModel])
@@index([calculatedAt])
@@map("gru_bond_pricing")
}
model BondPricingHistory {
id String @id @default(uuid())
historyId String @unique
bondId String?
syntheticBondId String?
price Decimal @db.Decimal(32, 12)
yield Decimal? @db.Decimal(32, 12)
volume Decimal? @db.Decimal(32, 8)
timestamp DateTime @default(now())
createdAt DateTime @default(now())
bond GruBond? @relation("BondPricingHistoryToGruBond", fields: [bondId], references: [bondId], onDelete: SetNull)
syntheticBond SyntheticGruBond? @relation("BondPricingHistoryToSynthetic", fields: [syntheticBondId], references: [syntheticBondId], onDelete: SetNull)
@@index([historyId])
@@index([bondId])
@@index([syntheticBondId])
@@index([timestamp])
@@map("bond_pricing_history")
}
// Synthetic Liquidity Systems
model SyntheticLiquidityEngine {
id String @id @default(uuid())
engineId String @unique
engineType String // GSE, GLP, ID-SLG, TRLM
engineName String
description String @db.Text
totalLiquidity Decimal @default(0) @db.Decimal(32, 8)
availableLiquidity Decimal @default(0) @db.Decimal(32, 8)
reservedLiquidity Decimal @default(0) @db.Decimal(32, 8)
commodityVector Json? // Commodity vector data
fxVector Json? // FX vector data
temporalVector Json? // Temporal/quantum vector data
status String @default("active") // active, suspended, maintenance
lastUpdated DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
liquidityOperations LiquidityOperation[]
tensorStates LiquidityTensor[]
@@index([engineId])
@@index([engineType])
@@index([status])
@@map("synthetic_liquidity_engines")
}
model LiquidityTensor {
id String @id @default(uuid())
tensorId String @unique
engineId String
commodityIndex Int // Commodity vector index
fxIndex Int // FX vector index
temporalIndex Int // Temporal/quantum vector index
liquidityValue Decimal @db.Decimal(32, 8)
metadata Json?
timestamp DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
engine SyntheticLiquidityEngine @relation(fields: [engineId], references: [id], onDelete: Cascade)
@@index([tensorId])
@@index([engineId])
@@index([commodityIndex, fxIndex, temporalIndex])
@@index([timestamp])
@@map("liquidity_tensors")
}
model LiquidityOperation {
id String @id @default(uuid())
operationId String @unique
engineId String
operationType String // swap, contribution, withdrawal, rebalance
amount Decimal @db.Decimal(32, 8)
sourceAsset String?
targetAsset String?
status String @default("pending") // pending, completed, failed
executedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
engine SyntheticLiquidityEngine @relation(fields: [engineId], references: [id], onDelete: Cascade)
@@index([operationId])
@@index([engineId])
@@index([operationType])
@@index([status])
@@map("liquidity_operations")
}
// Bond Settlement
model GruBondSettlement {
id String @id @default(uuid())
settlementId String @unique
bondId String?
syntheticBondId String?
transactionId String?
sourceBankId String
destinationBankId String
amount Decimal @db.Decimal(32, 8)
currencyCode String
settlementStage String // issuance, qps, gas, omega_layer, prime_ledger
qpsTransactionId String? // QPS transaction reference
gasSettlementId String? // GAS settlement reference
omegaLayerHash String? // Ω-Layer finality hash
primeLedgerHash String? // DBIS Prime Ledger hash
perpetualState Json? // Perpetual state reconciliation data
status String @default("pending") // pending, qps_complete, gas_complete, omega_complete, settled, failed
qpsCompletedAt DateTime?
gasCompletedAt DateTime?
omegaCompletedAt DateTime?
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond GruBond? @relation("GruBondSettlementToGruBond", fields: [bondId], references: [bondId], onDelete: SetNull)
syntheticBond SyntheticGruBond? @relation("GruBondSettlementToSynthetic", fields: [syntheticBondId], references: [syntheticBondId], onDelete: SetNull)
pipelineSteps BondSettlementPipeline[]
@@index([settlementId])
@@index([bondId])
@@index([syntheticBondId])
@@index([transactionId])
@@index([status])
@@index([settlementStage])
@@map("gru_bond_settlements")
}
model BondSettlementPipeline {
id String @id @default(uuid())
pipelineId String @unique
settlementId String
stage String // issuance, qps, gas, omega_layer, prime_ledger
stageStatus String @default("pending") // pending, in_progress, completed, failed
stageData Json? // Stage-specific data
errorMessage String? @db.Text
startedAt DateTime?
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
settlement GruBondSettlement @relation(fields: [settlementId], references: [settlementId], onDelete: Cascade)
@@index([pipelineId])
@@index([settlementId])
@@index([stage])
@@index([stageStatus])
@@map("bond_settlement_pipelines")
}
// Supranational Bonds
model SupranationalBond {
id String @id @default(uuid())
bondId String @unique
bondType String // GRB, CRB
bondName String
principalAmount Decimal @db.Decimal(32, 8)
supranationalCouncilId String
reserveBacking Json // Reserve backing details
commodityIndex String? // For CRB: XAU, PGM, BMG1, BMG2, BMG3
maturityDate DateTime
couponRate Decimal @db.Decimal(32, 8)
status String @default("active") // active, matured, redeemed
issuedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
coupons SupranationalBondCoupon[]
reserveVerifications ReserveVerification[]
@@index([bondId])
@@index([bondType])
@@index([supranationalCouncilId])
@@index([status])
@@map("supranational_bonds")
}
model SupranationalBondCoupon {
id String @id @default(uuid())
couponId String @unique
bondId String
couponAmount Decimal @db.Decimal(32, 8)
paymentDate DateTime
status String @default("pending") // pending, paid, failed
paidAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond SupranationalBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([couponId])
@@index([bondId])
@@index([status])
@@map("supranational_bond_coupons")
}
model ReserveVerification {
id String @id @default(uuid())
verificationId String @unique
bondId String
verificationType String // physical_audit, certificate_verification, custodian_verification
reserveAmount Decimal @db.Decimal(32, 8)
reserveType String // gru_reserve, commodity_reserve
commodityType String? // For commodity reserves
custodianId String?
certificateHash String? // HASH256 certificate
verificationStatus String @default("pending") // pending, verified, rejected
verifiedAt DateTime?
nextVerificationDate DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond SupranationalBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([verificationId])
@@index([bondId])
@@index([verificationStatus])
@@map("reserve_verifications")
}
// Metaverse & Holographic Bonds
model AvatarLinkedBond {
id String @id @default(uuid())
bondId String @unique
bondName String
principalAmount Decimal @db.Decimal(32, 8)
avatarId String // Digital identity/avatar ID
metaverseNodeId String?
digitalIdentityId String
metaverseAssetPortfolio Json? // Metaverse asset portfolio backing
maturityDate DateTime
couponRate Decimal @db.Decimal(32, 8)
status String @default("active") // active, matured, redeemed
issuedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
coupons AvatarBondCoupon[]
@@index([bondId])
@@index([avatarId])
@@index([digitalIdentityId])
@@index([metaverseNodeId])
@@index([status])
@@map("avatar_linked_bonds")
}
model AvatarBondCoupon {
id String @id @default(uuid())
couponId String @unique
bondId String
couponAmount Decimal @db.Decimal(32, 8)
paymentDate DateTime
status String @default("pending") // pending, paid, failed
paidAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond AvatarLinkedBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([couponId])
@@index([bondId])
@@index([status])
@@map("avatar_bond_coupons")
}
model HolographicBond {
id String @id @default(uuid())
bondId String @unique
bondName String
principalAmount Decimal @db.Decimal(32, 8)
holographicEconomyId String
simulatedEconomyId String?
certificateHash String // Holographic certificate hash
holographicData Json? // 3D certificate representation data
maturityDate DateTime
couponRate Decimal @db.Decimal(32, 8)
status String @default("active") // active, matured, redeemed
issuedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
coupons HolographicBondCoupon[]
@@index([bondId])
@@index([holographicEconomyId])
@@index([simulatedEconomyId])
@@index([status])
@@map("holographic_bonds")
}
model HolographicBondCoupon {
id String @id @default(uuid())
couponId String @unique
bondId String
couponAmount Decimal @db.Decimal(32, 8)
paymentDate DateTime
status String @default("pending") // pending, paid, failed
paidAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond HolographicBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([couponId])
@@index([bondId])
@@index([status])
@@map("holographic_bond_coupons")
}
// Quantum Bond Systems
model QuantumBond {
id String @id @default(uuid())
bondId String @unique
bondName String
principalAmount Decimal @db.Decimal(32, 8)
bondType String // q_bond, timeline_synchronized
quantumState Json? // Quantum state data
truthSamplingHash String? // Quantum truth sampling hash
observerCount Int @default(0) // Double-observer mitigation
timelineStates Json? // Timeline state data (t0, t-Δ, t+Δ)
mergedState Json? // Merged state: Bond_tΩ = Merge(Bond_t0, Bond_tΔ, Bond_t+Δ)
maturityDate DateTime
couponRate Decimal @db.Decimal(32, 8)
status String @default("active") // active, collapsed, settled, merged
issuedAt DateTime @default(now())
collapsedAt DateTime?
mergedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
coupons QuantumBondCoupon[]
timelineSyncs TimelineSynchronizedBond[]
@@index([bondId])
@@index([bondType])
@@index([status])
@@map("quantum_bonds")
}
model QuantumBondCoupon {
id String @id @default(uuid())
couponId String @unique
bondId String
couponAmount Decimal @db.Decimal(32, 8)
paymentDate DateTime
quantumSettled Boolean @default(false)
truthSamplingHash String?
status String @default("pending") // pending, quantum_settled, paid, failed
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond QuantumBond @relation(fields: [bondId], references: [id], onDelete: Cascade)
@@index([couponId])
@@index([bondId])
@@index([status])
@@map("quantum_bond_coupons")
}
model TimelineSynchronizedBond {
id String @id @default(uuid())
syncId String @unique
quantumBondId String
timelineType String // t0, t_minus_delta, t_plus_delta
timelineState Json // State data for this timeline
syncStatus String @default("pending") // pending, synced, merged
syncedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
quantumBond QuantumBond @relation(fields: [quantumBondId], references: [id], onDelete: Cascade)
@@index([syncId])
@@index([quantumBondId])
@@index([timelineType])
@@index([syncStatus])
@@map("timeline_synchronized_bonds")
}
// Bond Risk & Oversight
model BondRiskAssessment {
id String @id @default(uuid())
assessmentId String @unique
bondId String?
syntheticBondId String?
assessmentType String // sare, ari, composite
sovereignDefaultExposure Decimal? @db.Decimal(32, 8)
fxLinkedRisk Decimal? @db.Decimal(32, 8)
metalIndexDependency Decimal? @db.Decimal(32, 8)
creditRisk Decimal? @db.Decimal(32, 8)
marketRisk Decimal? @db.Decimal(32, 8)
liquidityRisk Decimal? @db.Decimal(32, 8)
operationalRisk Decimal? @db.Decimal(32, 8)
compositeRiskScore Decimal @db.Decimal(32, 8)
riskTier String // low, medium, high, critical
sareScore Decimal? @db.Decimal(32, 8)
ariCompliance Boolean @default(true)
assessmentDetails Json? // Detailed assessment data
assessedAt DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
bond GruBond? @relation("BondRiskAssessmentToGruBond", fields: [bondId], references: [bondId], onDelete: SetNull)
syntheticBond SyntheticGruBond? @relation("BondRiskAssessmentToSynthetic", fields: [syntheticBondId], references: [syntheticBondId], onDelete: SetNull)
complianceRecords BondComplianceRecord[]
@@index([assessmentId])
@@index([bondId])
@@index([syntheticBondId])
@@index([assessmentType])
@@index([riskTier])
@@index([assessedAt])
@@map("bond_risk_assessments")
}
model BondComplianceRecord {
id String @id @default(uuid())
recordId String @unique
assessmentId String
complianceType String // regulatory, synthetic_market_integrity, general
complianceStatus String @default("compliant") // compliant, violation, warning
violationType String?
violationDetails Json?
ariAction String? // Automated ARI action taken
resolvedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
assessment BondRiskAssessment @relation(fields: [assessmentId], references: [id], onDelete: Cascade)
@@index([recordId])
@@index([assessmentId])
@@index([complianceStatus])
@@index([complianceType])
@@map("bond_compliance_records")
}
// Bond Market Integration
model BondMarketIntegration {
id String @id @default(uuid())
integrationId String @unique
integrationType String // commodity_exchange, sovereign_platform, metaverse_market, quantum_dlt
externalSystemId String
externalSystemName String
integrationStatus String @default("active") // active, suspended, disconnected
lastSyncAt DateTime?
syncFrequency String @default("real_time") // real_time, hourly, daily
integrationConfig Json? // Integration configuration
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([integrationId])
@@index([integrationType])
@@index([integrationStatus])
@@map("bond_market_integrations")
}
// ============================================================================
// Nostro/Vostro Network - DBIS Integration Layer
// ============================================================================
model NostroVostroParticipant {
id String @id @default(uuid())
participantId String @unique
name String
bic String? @unique
lei String? @unique
country String // ISO 3166-1 alpha-2
regulatoryTier String // SCB, Tier1, Tier2, PSP
sovereignBankId String? // Link to SovereignBank if applicable
status String @default("active") // active, suspended, inactive
metadata Json? // Additional participant data
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sovereignBank SovereignBank? @relation("NostroVostroParticipantToSovereignBank", fields: [sovereignBankId], references: [id], onDelete: SetNull)
accounts NostroVostroAccount[]
transfers NostroVostroTransfer[] @relation("TransferFromParticipant")
transfersTo NostroVostroTransfer[] @relation("TransferToParticipant")
reconciliations NostroVostroReconciliation[]
webhookSubscriptions NostroVostroWebhookSubscription[]
@@index([participantId])
@@index([bic])
@@index([lei])
@@index([regulatoryTier])
@@index([country])
@@index([status])
@@map("nostro_vostro_participants")
}
model NostroVostroAccount {
id String @id @default(uuid())
accountId String @unique
ownerParticipantId String
counterpartyParticipantId String
ibanOrLocalAccount String? // IBAN or local account identifier
currency String // ISO 4217
accountType String // NOSTRO, VOSTRO
status String @default("ACTIVE") // ACTIVE, SUSPENDED, CLOSED
currentBalance Decimal @default(0) @db.Decimal(32, 8)
availableLiquidity Decimal @default(0) @db.Decimal(32, 8)
holdAmount Decimal @default(0) @db.Decimal(32, 8)
lastUpdatedAt DateTime @default(now())
metadata Json? // Additional account data
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ownerParticipant NostroVostroParticipant @relation(fields: [ownerParticipantId], references: [id], onDelete: Cascade)
transfers NostroVostroTransfer[] @relation("TransferFromAccount")
transfersTo NostroVostroTransfer[] @relation("TransferToAccount")
balanceHistory NostroVostroBalanceHistory[]
@@index([accountId])
@@index([ownerParticipantId])
@@index([counterpartyParticipantId])
@@index([accountType])
@@index([currency])
@@index([status])
@@map("nostro_vostro_accounts")
}
model NostroVostroBalanceHistory {
id String @id @default(uuid())
accountId String
balance Decimal @db.Decimal(32, 8)
availableLiquidity Decimal @db.Decimal(32, 8)
holdAmount Decimal @db.Decimal(32, 8)
recordedAt DateTime @default(now())
account NostroVostroAccount @relation(fields: [accountId], references: [id], onDelete: Cascade)
@@index([accountId])
@@index([recordedAt])
@@map("nostro_vostro_balance_history")
}
model NostroVostroTransfer {
id String @id @default(uuid())
transferId String @unique
fromAccountId String
toAccountId String
fromParticipantId String
toParticipantId String
amount Decimal @db.Decimal(32, 8)
currency String // ISO 4217
settlementAsset String @default("FIAT") // FIAT, GRU, SSU, CBDC
valueDate DateTime
fxDetails Json? // FX rate, conversion details
status String @default("PENDING") // PENDING, ACCEPTED, SETTLED, REJECTED, CANCELLED
rejectionReason String?
idempotencyKey String? @unique
reference String? // External reference
metadata Json? // Additional transfer data
settledAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
fromAccount NostroVostroAccount @relation("TransferFromAccount", fields: [fromAccountId], references: [id])
toAccount NostroVostroAccount @relation("TransferToAccount", fields: [toAccountId], references: [id])
fromParticipant NostroVostroParticipant @relation("TransferFromParticipant", fields: [fromParticipantId], references: [id])
toParticipant NostroVostroParticipant @relation("TransferToParticipant", fields: [toParticipantId], references: [id])
reconciliation NostroVostroReconciliationTransfer?
@@index([transferId])
@@index([fromAccountId])
@@index([toAccountId])
@@index([fromParticipantId])
@@index([toParticipantId])
@@index([status])
@@index([valueDate])
@@index([idempotencyKey])
@@index([settlementAsset])
@@map("nostro_vostro_transfers")
}
model NostroVostroReconciliation {
id String @id @default(uuid())
reportId String @unique
participantId String
asOfDate DateTime
openingBalance Decimal @db.Decimal(32, 8)
closingBalance Decimal @db.Decimal(32, 8)
totalDebits Decimal @default(0) @db.Decimal(32, 8)
totalCredits Decimal @default(0) @db.Decimal(32, 8)
breakCount Int @default(0)
status String @default("PENDING") // PENDING, COMPLETED, FAILED
breaks Json? // Array of reconciliation breaks
metadata Json? // Additional reconciliation data
completedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
participant NostroVostroParticipant @relation(fields: [participantId], references: [id], onDelete: Cascade)
transfer NostroVostroReconciliationTransfer?
@@index([reportId])
@@index([participantId])
@@index([asOfDate])
@@index([status])
@@map("nostro_vostro_reconciliations")
}
model NostroVostroReconciliationTransfer {
id String @id @default(uuid())
reconciliationId String @unique
transferId String @unique
matched Boolean @default(false)
matchDetails Json? // Matching details
createdAt DateTime @default(now())
reconciliation NostroVostroReconciliation @relation(fields: [reconciliationId], references: [id], onDelete: Cascade)
transfer NostroVostroTransfer @relation(fields: [transferId], references: [id], onDelete: Cascade)
@@index([reconciliationId])
@@index([transferId])
@@map("nostro_vostro_reconciliation_transfers")
}
model NostroVostroWebhookSubscription {
id String @id @default(uuid())
subscriptionId String @unique
participantId String
webhookUrl String
eventTypes String[] // Array of event types to subscribe to
secret String // Webhook signature secret
status String @default("ACTIVE") // ACTIVE, SUSPENDED, INACTIVE
lastDeliveryAt DateTime?
failureCount Int @default(0)
metadata Json? // Additional subscription data
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
participant NostroVostroParticipant @relation(fields: [participantId], references: [id], onDelete: Cascade)
events NostroVostroWebhookEvent[]
@@index([subscriptionId])
@@index([participantId])
@@index([status])
@@map("nostro_vostro_webhook_subscriptions")
}
model NostroVostroWebhookEvent {
id String @id @default(uuid())
eventId String @unique
subscriptionId String
eventType String // TRANSFER_CREATED, TRANSFER_SETTLED, ACCOUNT_UPDATED, etc.
payload Json // Event payload
status String @default("PENDING") // PENDING, DELIVERED, FAILED, RETRYING
deliveryAttempts Int @default(0)
lastAttemptAt DateTime?
deliveredAt DateTime?
errorMessage String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
subscription NostroVostroWebhookSubscription @relation(fields: [subscriptionId], references: [id], onDelete: Cascade)
@@index([eventId])
@@index([subscriptionId])
@@index([eventType])
@@index([status])
@@index([createdAt])
@@map("nostro_vostro_webhook_events")
}