From ac529a7ceb478a688a253fa572cb5dbd408d7670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFs=20Mansot?= <26844641+devfull@users.noreply.github.com> Date: Wed, 20 Sep 2023 11:00:49 +0200 Subject: [PATCH] refactor anchoring to be `OfficeFolder` based --- src/common/databases/schema.prisma | 52 ++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/src/common/databases/schema.prisma b/src/common/databases/schema.prisma index 317bf91d..e9c064b1 100644 --- a/src/common/databases/schema.prisma +++ b/src/common/databases/schema.prisma @@ -133,17 +133,41 @@ model OfficeFolders { customers Customers[] @relation("OfficeFolderHasCustomers") documents Documents[] + folder_anchor OfficeFolderAnchors? @relation(fields: [folder_anchor_uid], references: [uid]) + folder_anchor_uid String? @unique @db.VarChar(255) + @@unique([folder_number, office_uid]) @@map("office_folders") } +model OfficeFolderAnchors { + uid String @id @unique @default(uuid()) + + hash_sources String[] + root_hash String @db.VarChar(255) + + blockchain EBlockchainName @default(TEZOS) + status EAnchoringStatus @default(QUEUED) + anchor_nb_try Int @default(0) + + anchored_at DateTime? + tx_id String? @db.VarChar(255) + tx_link String? @db.VarChar(255) + tx_hash String? @db.VarChar(255) + + folder OfficeFolders? + + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + + @@map("office_folder_anchors") +} + model Documents { uid String @id @unique @default(uuid()) document_status EDocumentStatus @default(ASKED) document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid]) document_type_uid String @db.VarChar(255) - blockchain_anchor BlockchainAnchors? @relation(fields: [blockchain_anchor_uid], references: [uid]) - blockchain_anchor_uid String? @db.VarChar(255) folder OfficeFolders @relation(fields: [folder_uid], references: [uid]) folder_uid String @db.VarChar(255) depositor Customers @relation(fields: [depositor_uid], references: [uid], onDelete: Cascade) @@ -175,6 +199,7 @@ model Files { file_path String @unique @db.VarChar(255) file_name String @db.VarChar(255) mimetype String @db.VarChar(255) + hash String @db.VarChar(255) size Int archived_at DateTime? key String? @db.VarChar(255) @@ -184,16 +209,6 @@ model Files { @@map("files") } -model BlockchainAnchors { - uid String @id @unique @default(uuid()) - smartSigJobId String @unique @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - documents Documents[] - - @@map("blockchain_anchors") -} - model DocumentTypes { uid String @id @unique @default(uuid()) name String @db.VarChar(255) @@ -346,7 +361,6 @@ enum EDocumentStatus { ASKED DEPOSITED VALIDATED - ANCHORED REFUSED } @@ -359,3 +373,15 @@ enum EAppointmentStatus { OPEN CLOSED } + +enum EBlockchainName { + TEZOS +} + +enum EAnchoringStatus { + QUEUED + ATTEMPTING + VERIFIED_ON_CHAIN + VERIFYING_ON_CHAIN + ABANDONED +}