From f8b63184a34290e54ca91808cafc1ad5e487010b Mon Sep 17 00:00:00 2001 From: Rafi Arrafif Date: Sun, 10 May 2026 21:00:00 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20db:=20add=20following?= =?UTF-8?q?=20and=20provision=20schema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prisma/schema.prisma | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index b730ff8..7858504 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -56,9 +56,13 @@ model User { updated_at DateTime @updatedAt @db.Timestamptz() deleted_at DateTime? @db.Timestamptz() - countryId String? @db.Uuid - oauth_accounts UserOauthAccounts[] - sessions UserSession[] + countryId String? @db.Uuid + oauth_accounts UserOauthAccounts[] + sessions UserSession[] + followers UserFollow[] @relation("UserFollowFollowing") + following UserFollow[] @relation("UserFollowFollower") + provisioned_as_admin ProvisionedUser[] @relation("ProvisionedUserAdmin") + provisioned_as_user ProvisionedUser[] @relation("ProvisionedUserUser") @@map("users") } @@ -165,6 +169,29 @@ model UserCountryPreference { @@map("user_country_preferences") } +model UserFollow { + follower User @relation("UserFollowFollower", fields: [follower_id], references: [id]) + following User @relation("UserFollowFollowing", fields: [following_id], references: [id]) + created_at DateTime @default(now()) @db.Timestamptz() + + follower_id String @db.Uuid + following_id String @db.Uuid + @@id([follower_id, following_id]) + @@map("user_follows") +} + +model ProvisionedUser { + provisioned_by User @relation(fields: [admin_id], references: [id], name: "ProvisionedUserAdmin") + provisioned_to User @relation(fields: [user_id], references: [id], name: "ProvisionedUserUser") + provisioned_at DateTime @default(now()) @db.Timestamptz() + reason String? @db.VarChar(255) + + admin_id String @db.Uuid + user_id String @db.Uuid + @@id([admin_id, user_id]) + @@map("provisioned_users") +} + model Country { id String @id @db.Uuid @default(uuid(7)) name String @db.VarChar(155)