@danielcok17/prisma-db 1.15.1 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
package/prisma/app.prisma
CHANGED
|
@@ -85,6 +85,7 @@ model User {
|
|
|
85
85
|
registrationUtmTerm String? // Keywords pri registrácii
|
|
86
86
|
// Profile fields
|
|
87
87
|
phone String? // Mobilný telefón
|
|
88
|
+
phoneVerified DateTime? // Kedy bol telefón overený cez OTP
|
|
88
89
|
occupation String? // Povolanie (Právnik, Účtovník, etc.)
|
|
89
90
|
preferredLanguage String? @default("sk") // Jazyk odpovedi (sk, cs, en)
|
|
90
91
|
// Relations
|
|
@@ -116,6 +117,7 @@ model User {
|
|
|
116
117
|
conversions Conversion[]
|
|
117
118
|
// Ingestion pipeline
|
|
118
119
|
ingestedDocuments IngestedDocument[]
|
|
120
|
+
adminGrants AdminGrant[]
|
|
119
121
|
|
|
120
122
|
// Multi-brand: compound unique allows same email across brands
|
|
121
123
|
@@unique([email, brand])
|
|
@@ -189,6 +191,7 @@ model Organization {
|
|
|
189
191
|
invites OrganizationInvite[]
|
|
190
192
|
stripeCustomer StripeCustomer?
|
|
191
193
|
folderShares FolderShare[]
|
|
194
|
+
adminGrants AdminGrant[]
|
|
192
195
|
|
|
193
196
|
createdAt DateTime @default(now())
|
|
194
197
|
updatedAt DateTime @updatedAt
|
|
@@ -1254,3 +1257,54 @@ model FolderShare {
|
|
|
1254
1257
|
@@index([organizationId])
|
|
1255
1258
|
@@index([sharedById])
|
|
1256
1259
|
}
|
|
1260
|
+
|
|
1261
|
+
// ============================================
|
|
1262
|
+
// ADMIN GRANTS & INVITES
|
|
1263
|
+
// ============================================
|
|
1264
|
+
|
|
1265
|
+
model AdminGrant {
|
|
1266
|
+
id String @id @default(cuid())
|
|
1267
|
+
userId String?
|
|
1268
|
+
organizationId String?
|
|
1269
|
+
tier SubscriptionTier
|
|
1270
|
+
startsAt DateTime @default(now())
|
|
1271
|
+
expiresAt DateTime
|
|
1272
|
+
grantedBy String
|
|
1273
|
+
reason String?
|
|
1274
|
+
inviteId String?
|
|
1275
|
+
isActive Boolean @default(true)
|
|
1276
|
+
revokedAt DateTime?
|
|
1277
|
+
revokedBy String?
|
|
1278
|
+
createdAt DateTime @default(now())
|
|
1279
|
+
updatedAt DateTime @updatedAt
|
|
1280
|
+
|
|
1281
|
+
user User? @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
1282
|
+
organization Organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
1283
|
+
|
|
1284
|
+
@@index([userId])
|
|
1285
|
+
@@index([organizationId])
|
|
1286
|
+
@@index([expiresAt])
|
|
1287
|
+
@@index([isActive])
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
model AppInvite {
|
|
1291
|
+
id String @id @default(cuid())
|
|
1292
|
+
email String
|
|
1293
|
+
token String @unique
|
|
1294
|
+
invitedByEmail String
|
|
1295
|
+
grantTier SubscriptionTier?
|
|
1296
|
+
grantDays Int?
|
|
1297
|
+
targetOrgId String?
|
|
1298
|
+
targetOrgRole MemberRole?
|
|
1299
|
+
createOrgName String?
|
|
1300
|
+
expiresAt DateTime
|
|
1301
|
+
acceptedAt DateTime?
|
|
1302
|
+
acceptedByUserId String?
|
|
1303
|
+
isActive Boolean @default(true)
|
|
1304
|
+
createdAt DateTime @default(now())
|
|
1305
|
+
updatedAt DateTime @updatedAt
|
|
1306
|
+
|
|
1307
|
+
@@index([email])
|
|
1308
|
+
@@index([token])
|
|
1309
|
+
@@index([isActive])
|
|
1310
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "PhoneOtp" (
|
|
3
|
+
"id" TEXT NOT NULL,
|
|
4
|
+
"userId" TEXT NOT NULL,
|
|
5
|
+
"phone" TEXT NOT NULL,
|
|
6
|
+
"bulkgateId" TEXT NOT NULL,
|
|
7
|
+
"expiresAt" TIMESTAMP(3) NOT NULL,
|
|
8
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
9
|
+
|
|
10
|
+
CONSTRAINT "PhoneOtp_pkey" PRIMARY KEY ("id")
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
-- CreateTable
|
|
14
|
+
CREATE TABLE "AdminGrant" (
|
|
15
|
+
"id" TEXT NOT NULL,
|
|
16
|
+
"userId" TEXT,
|
|
17
|
+
"organizationId" TEXT,
|
|
18
|
+
"tier" "SubscriptionTier" NOT NULL,
|
|
19
|
+
"startsAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
20
|
+
"expiresAt" TIMESTAMP(3) NOT NULL,
|
|
21
|
+
"grantedBy" TEXT NOT NULL,
|
|
22
|
+
"reason" TEXT,
|
|
23
|
+
"inviteId" TEXT,
|
|
24
|
+
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
|
25
|
+
"revokedAt" TIMESTAMP(3),
|
|
26
|
+
"revokedBy" TEXT,
|
|
27
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
28
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
29
|
+
|
|
30
|
+
CONSTRAINT "AdminGrant_pkey" PRIMARY KEY ("id")
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
-- CreateTable
|
|
34
|
+
CREATE TABLE "AppInvite" (
|
|
35
|
+
"id" TEXT NOT NULL,
|
|
36
|
+
"email" TEXT NOT NULL,
|
|
37
|
+
"token" TEXT NOT NULL,
|
|
38
|
+
"invitedByEmail" TEXT NOT NULL,
|
|
39
|
+
"grantTier" "SubscriptionTier",
|
|
40
|
+
"grantDays" INTEGER,
|
|
41
|
+
"targetOrgId" TEXT,
|
|
42
|
+
"targetOrgRole" "MemberRole",
|
|
43
|
+
"createOrgName" TEXT,
|
|
44
|
+
"expiresAt" TIMESTAMP(3) NOT NULL,
|
|
45
|
+
"acceptedAt" TIMESTAMP(3),
|
|
46
|
+
"acceptedByUserId" TEXT,
|
|
47
|
+
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
|
48
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
49
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
50
|
+
|
|
51
|
+
CONSTRAINT "AppInvite_pkey" PRIMARY KEY ("id")
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
-- CreateIndex
|
|
55
|
+
CREATE UNIQUE INDEX "PhoneOtp_bulkgateId_key" ON "PhoneOtp"("bulkgateId");
|
|
56
|
+
|
|
57
|
+
-- CreateIndex
|
|
58
|
+
CREATE INDEX "PhoneOtp_userId_idx" ON "PhoneOtp"("userId");
|
|
59
|
+
|
|
60
|
+
-- CreateIndex
|
|
61
|
+
CREATE INDEX "PhoneOtp_bulkgateId_idx" ON "PhoneOtp"("bulkgateId");
|
|
62
|
+
|
|
63
|
+
-- CreateIndex
|
|
64
|
+
CREATE INDEX "PhoneOtp_expiresAt_idx" ON "PhoneOtp"("expiresAt");
|
|
65
|
+
|
|
66
|
+
-- CreateIndex
|
|
67
|
+
CREATE INDEX "AdminGrant_userId_idx" ON "AdminGrant"("userId");
|
|
68
|
+
|
|
69
|
+
-- CreateIndex
|
|
70
|
+
CREATE INDEX "AdminGrant_organizationId_idx" ON "AdminGrant"("organizationId");
|
|
71
|
+
|
|
72
|
+
-- CreateIndex
|
|
73
|
+
CREATE INDEX "AdminGrant_expiresAt_idx" ON "AdminGrant"("expiresAt");
|
|
74
|
+
|
|
75
|
+
-- CreateIndex
|
|
76
|
+
CREATE INDEX "AdminGrant_isActive_idx" ON "AdminGrant"("isActive");
|
|
77
|
+
|
|
78
|
+
-- CreateIndex
|
|
79
|
+
CREATE UNIQUE INDEX "AppInvite_token_key" ON "AppInvite"("token");
|
|
80
|
+
|
|
81
|
+
-- CreateIndex
|
|
82
|
+
CREATE INDEX "AppInvite_email_idx" ON "AppInvite"("email");
|
|
83
|
+
|
|
84
|
+
-- CreateIndex
|
|
85
|
+
CREATE INDEX "AppInvite_token_idx" ON "AppInvite"("token");
|
|
86
|
+
|
|
87
|
+
-- CreateIndex
|
|
88
|
+
CREATE INDEX "AppInvite_isActive_idx" ON "AppInvite"("isActive");
|
|
89
|
+
|
|
90
|
+
-- CreateIndex
|
|
91
|
+
CREATE INDEX "User_phone_idx" ON "User"("phone");
|
|
92
|
+
|
|
93
|
+
-- AddForeignKey
|
|
94
|
+
ALTER TABLE "PhoneOtp" ADD CONSTRAINT "PhoneOtp_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
95
|
+
|
|
96
|
+
-- AddForeignKey
|
|
97
|
+
ALTER TABLE "AdminGrant" ADD CONSTRAINT "AdminGrant_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
98
|
+
|
|
99
|
+
-- AddForeignKey
|
|
100
|
+
ALTER TABLE "AdminGrant" ADD CONSTRAINT "AdminGrant_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|