@danielcok17/prisma-db 1.7.0 → 1.8.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielcok17/prisma-db",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Shared Prisma schema for Legal AI applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/prisma/app.prisma CHANGED
@@ -58,10 +58,11 @@ model User {
58
58
  messageCountResetAt DateTime? // Kedy sa má resetovať message count
59
59
  adminGrantExpiresAt DateTime? // Kedy admin grant expiruje
60
60
  // Relations
61
- approvalRequest UserApprovalRequest?
62
- stripeCustomer StripeCustomer? // ✨ B2C Stripe customer
63
- ownedOrganizations Organization[] @relation("OrganizationOwner")
64
- organizationMembers OrganizationMember[]
61
+ approvalRequest UserApprovalRequest?
62
+ stripeCustomer StripeCustomer? // ✨ B2C Stripe customer
63
+ ownedOrganizations Organization[] @relation("OrganizationOwner")
64
+ organizationMembers OrganizationMember[]
65
+ createdInvites OrganizationInvite[] @relation("InviteCreator")
65
66
  accounts Account[]
66
67
  answers Answer[]
67
68
  conversations Conversation[]
@@ -125,9 +126,10 @@ model Organization {
125
126
  maxMembers Int @default(5) // Max počet členov podľa tieru
126
127
 
127
128
  // Relations
128
- owner User @relation("OrganizationOwner", fields: [ownerId], references: [id])
129
+ owner User @relation("OrganizationOwner", fields: [ownerId], references: [id])
129
130
  ownerId String
130
131
  members OrganizationMember[]
132
+ invites OrganizationInvite[]
131
133
  stripeCustomer StripeCustomer?
132
134
 
133
135
  createdAt DateTime @default(now())
@@ -157,6 +159,32 @@ model OrganizationMember {
157
159
  @@index([role])
158
160
  }
159
161
 
162
+ // Organization Invite System
163
+ model OrganizationInvite {
164
+ id String @id @default(cuid())
165
+ organizationId String
166
+ token String @unique
167
+ email String? // Optional: specific email invite
168
+ role MemberRole @default(MEMBER)
169
+ createdBy String
170
+ expiresAt DateTime
171
+ maxUses Int @default(1) // For multi-use invites
172
+ currentUses Int @default(0)
173
+ isActive Boolean @default(true)
174
+ usedAt DateTime? // Last usage timestamp
175
+ usedBy String? // Last user who used it
176
+ createdAt DateTime @default(now())
177
+ updatedAt DateTime @updatedAt
178
+
179
+ organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
180
+ creator User @relation("InviteCreator", fields: [createdBy], references: [id])
181
+
182
+ @@index([token])
183
+ @@index([organizationId])
184
+ @@index([isActive])
185
+ @@index([expiresAt])
186
+ }
187
+
160
188
  enum MemberRole {
161
189
  OWNER // Zakladateľ/vlastník, plný prístup k billing a settings
162
190
  ADMIN // Administrátor, môže pridávať/odoberať členov