@danielcok17/prisma-db 1.20.19 → 1.20.21

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielcok17/prisma-db",
3
- "version": "1.20.19",
3
+ "version": "1.20.21",
4
4
  "description": "Shared Prisma schema for Legal AI applications",
5
5
  "repository": {
6
6
  "type": "git",
package/prisma/app.prisma CHANGED
@@ -89,6 +89,9 @@ model User {
89
89
  phone String? // Mobilný telefón
90
90
  phoneVerified DateTime? // Kedy bol telefón overený cez OTP
91
91
  occupation String? // Povolanie (Právnik, Účtovník, etc.)
92
+ isicVerified Boolean @default(false) // Overený ISIC/ITIC/EURO<26 preukaz
93
+ isicJscp String? // JSČP číslo overeného preukazu
94
+ isicVerifiedAt DateTime? // Kedy bol preukaz overený
92
95
  preferredLanguage String? @default("sk") // Jazyk odpovedi (sk, cs, en)
93
96
  // Email Lifecycle — 360° user view
94
97
  lastActiveAt DateTime?
@@ -860,6 +863,7 @@ enum CustomerType {
860
863
  // Stripe: Tier predplatného
861
864
  enum SubscriptionTier {
862
865
  FREE // Free tier (4 messages/month)
866
+ STUDENT // Student tier (ISIC/ITIC/EURO<26, €9/month)
863
867
  LAWYER // Lawyer tier (1000 messages/month, €29/month, 1 user)
864
868
  LAWYER_PRO // Lawyer Pro tier (3000 messages/month, €49/month, 1 user) - RECOMMENDED
865
869
  LAW_FIRM // Law Firm tier (10000 messages/month, €129/month, up to 5 users)
@@ -1311,6 +1315,7 @@ model UserFile {
1311
1315
  parentFile UserFile? @relation("FileVersions", fields: [parentFileId], references: [id], onDelete: SetNull)
1312
1316
  childVersions UserFile[] @relation("FileVersions")
1313
1317
  conversationUsages UserFileConversation[]
1318
+ summaryCards UserFileSummaryCard[]
1314
1319
 
1315
1320
  @@index([userId])
1316
1321
  @@index([status])
@@ -1336,6 +1341,37 @@ model UserFileConversation {
1336
1341
  @@index([conversationId])
1337
1342
  }
1338
1343
 
1344
+ model UserFileSummaryCard {
1345
+ id String @id @default(cuid())
1346
+ fileId String
1347
+ userId String
1348
+
1349
+ schemaVersion String @default("user_file_summary_card_v1")
1350
+ cardId String
1351
+ cardType String
1352
+ title String
1353
+ summary String
1354
+ searchText String
1355
+
1356
+ normalizedEntities Json?
1357
+ sourceRefs Json
1358
+ searchTerms String[] @default([])
1359
+ generatedQuestions String[] @default([])
1360
+ confidence Float?
1361
+ warnings Json?
1362
+
1363
+ qdrantPointId String @unique
1364
+ createdAt DateTime @default(now())
1365
+ updatedAt DateTime @updatedAt
1366
+
1367
+ file UserFile @relation(fields: [fileId], references: [id], onDelete: Cascade)
1368
+
1369
+ @@unique([fileId, cardId])
1370
+ @@index([fileId])
1371
+ @@index([userId])
1372
+ @@index([cardType])
1373
+ }
1374
+
1339
1375
  model FileIndexingJob {
1340
1376
  id String @id @default(cuid())
1341
1377
  fileId String
@@ -0,0 +1,8 @@
1
+ -- AddValueToEnum: STUDENT to SubscriptionTier
2
+ -- Note: ALTER TYPE ADD VALUE cannot run inside a transaction in PostgreSQL
3
+ ALTER TYPE "SubscriptionTier" ADD VALUE IF NOT EXISTS 'STUDENT';
4
+
5
+ -- AlterTable: Add ISIC fields to User
6
+ ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "isicVerified" BOOLEAN NOT NULL DEFAULT false;
7
+ ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "isicJscp" TEXT;
8
+ ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "isicVerifiedAt" TIMESTAMP(3);
@@ -0,0 +1,41 @@
1
+ -- CreateTable
2
+ CREATE TABLE "UserFileSummaryCard" (
3
+ "id" TEXT NOT NULL,
4
+ "fileId" TEXT NOT NULL,
5
+ "userId" TEXT NOT NULL,
6
+ "schemaVersion" TEXT NOT NULL DEFAULT 'user_file_summary_card_v1',
7
+ "cardId" TEXT NOT NULL,
8
+ "cardType" TEXT NOT NULL,
9
+ "title" TEXT NOT NULL,
10
+ "summary" TEXT NOT NULL,
11
+ "searchText" TEXT NOT NULL,
12
+ "normalizedEntities" JSONB,
13
+ "sourceRefs" JSONB NOT NULL,
14
+ "searchTerms" TEXT[] DEFAULT ARRAY[]::TEXT[],
15
+ "generatedQuestions" TEXT[] DEFAULT ARRAY[]::TEXT[],
16
+ "confidence" DOUBLE PRECISION,
17
+ "warnings" JSONB,
18
+ "qdrantPointId" TEXT NOT NULL,
19
+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
20
+ "updatedAt" TIMESTAMP(3) NOT NULL,
21
+
22
+ CONSTRAINT "UserFileSummaryCard_pkey" PRIMARY KEY ("id")
23
+ );
24
+
25
+ -- CreateIndex
26
+ CREATE UNIQUE INDEX "UserFileSummaryCard_qdrantPointId_key" ON "UserFileSummaryCard"("qdrantPointId");
27
+
28
+ -- CreateIndex
29
+ CREATE UNIQUE INDEX "UserFileSummaryCard_fileId_cardId_key" ON "UserFileSummaryCard"("fileId", "cardId");
30
+
31
+ -- CreateIndex
32
+ CREATE INDEX "UserFileSummaryCard_fileId_idx" ON "UserFileSummaryCard"("fileId");
33
+
34
+ -- CreateIndex
35
+ CREATE INDEX "UserFileSummaryCard_userId_idx" ON "UserFileSummaryCard"("userId");
36
+
37
+ -- CreateIndex
38
+ CREATE INDEX "UserFileSummaryCard_cardType_idx" ON "UserFileSummaryCard"("cardType");
39
+
40
+ -- AddForeignKey
41
+ ALTER TABLE "UserFileSummaryCard" ADD CONSTRAINT "UserFileSummaryCard_fileId_fkey" FOREIGN KEY ("fileId") REFERENCES "UserFile"("id") ON DELETE CASCADE ON UPDATE CASCADE;