Add ownership transfer foundation

This commit is contained in:
diyaa
2026-06-25 04:20:39 +02:00
parent 488b219ef9
commit a74ff58083
6 changed files with 1432 additions and 2 deletions
@@ -0,0 +1,13 @@
ALTER TABLE "ownership_transfers"
ADD COLUMN "requested_by_user_id" UUID,
ADD COLUMN "mode" TEXT NOT NULL DEFAULT 'COPY',
ADD COLUMN "summary" JSONB;
CREATE INDEX "ownership_transfers_requested_by_user_id_idx"
ON "ownership_transfers"("requested_by_user_id");
ALTER TABLE "ownership_transfers"
ADD CONSTRAINT "ownership_transfers_requested_by_user_id_fkey"
FOREIGN KEY ("requested_by_user_id") REFERENCES "users"("id")
ON DELETE SET NULL
ON UPDATE CASCADE;
+6
View File
@@ -32,6 +32,7 @@ model User {
deviceLinkHistory DeviceLinkHistory[]
outgoingTransfers OwnershipTransfer[] @relation("OwnershipTransferFromUser")
incomingTransfers OwnershipTransfer[] @relation("OwnershipTransferToUser")
initiatedTransfers OwnershipTransfer[] @relation("OwnershipTransferRequestedByUser")
@@map("users")
}
@@ -262,17 +263,22 @@ model OwnershipTransfer {
id String @id @default(uuid()) @db.Uuid
fromUserId String @map("from_user_id") @db.Uuid
toUserId String? @map("to_user_id") @db.Uuid
requestedByUserId String? @map("requested_by_user_id") @db.Uuid
requestedByDeviceId String? @map("requested_by_device_id") @db.Uuid
mode String @default("COPY")
status String
summary Json? @map("summary")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
completedAt DateTime? @map("completed_at")
fromUser User @relation("OwnershipTransferFromUser", fields: [fromUserId], references: [id], onDelete: Cascade, onUpdate: Cascade)
toUser User? @relation("OwnershipTransferToUser", fields: [toUserId], references: [id], onDelete: SetNull, onUpdate: Cascade)
requestedByUser User? @relation("OwnershipTransferRequestedByUser", fields: [requestedByUserId], references: [id], onDelete: SetNull, onUpdate: Cascade)
requestedByDevice Device? @relation("OwnershipTransferRequestedByDevice", fields: [requestedByDeviceId], references: [id], onDelete: SetNull, onUpdate: Cascade)
@@index([fromUserId])
@@index([toUserId])
@@index([requestedByUserId])
@@map("ownership_transfers")
}