File size: 18,998 Bytes
fd8638c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6c192fb
fd8638c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
generator client {
  provider        = "prisma-client-py"
  previewFeatures = ["multiSchema"]
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
  schemas  = ["auth", "public"]
}

model audit_log_entries {
  instance_id String?   @db.Uuid
  id          String    @id @db.Uuid
  payload     Json?     @db.Json
  created_at  DateTime? @db.Timestamptz(6)
  ip_address  String    @default("") @db.VarChar(64)

  @@index([instance_id], map: "audit_logs_instance_id_idx")
  @@schema("auth") 
}

model flow_state {
  id                     String                @id @db.Uuid
  user_id                String?               @db.Uuid
  auth_code              String
  code_challenge_method  code_challenge_method
  code_challenge         String
  provider_type          String
  provider_access_token  String?
  provider_refresh_token String?
  created_at             DateTime?             @db.Timestamptz(6)
  updated_at             DateTime?             @db.Timestamptz(6)
  authentication_method  String
  saml_relay_states      saml_relay_states[]

  @@index([created_at(sort: Desc)])
  @@index([auth_code], map: "idx_auth_code")
  @@index([user_id, authentication_method], map: "idx_user_id_auth_method")
  @@schema("auth")
}

model identities {
  provider_id     String
  user_id         String     @db.Uuid
  identity_data   Json
  provider        String
  last_sign_in_at DateTime?  @db.Timestamptz(6)
  created_at      DateTime?  @db.Timestamptz(6)
  updated_at      DateTime?  @db.Timestamptz(6)
  email           String?    @default(dbgenerated("lower((identity_data ->> 'email'::text))"))
  id              String     @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
  users           auth_users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@unique([provider_id, provider], map: "identities_provider_id_provider_unique")
  @@index([email])
  @@index([user_id])
  @@schema("auth")
}

model instances {
  id              String    @id @db.Uuid
  uuid            String?   @db.Uuid
  raw_base_config String?
  created_at      DateTime? @db.Timestamptz(6)
  updated_at      DateTime? @db.Timestamptz(6)

  @@schema("auth")
}

model mfa_amr_claims {
  session_id            String   @db.Uuid
  created_at            DateTime @db.Timestamptz(6)
  updated_at            DateTime @db.Timestamptz(6)
  authentication_method String
  id                    String   @id(map: "amr_id_pk") @db.Uuid
  sessions              sessions @relation(fields: [session_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@unique([session_id, authentication_method], map: "mfa_amr_claims_session_id_authentication_method_pkey")
  @@schema("auth")
}

model mfa_challenges {
  id          String      @id @db.Uuid
  factor_id   String      @db.Uuid
  created_at  DateTime    @db.Timestamptz(6)
  verified_at DateTime?   @db.Timestamptz(6)
  ip_address  String      @db.Inet
  mfa_factors mfa_factors @relation(fields: [factor_id], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "mfa_challenges_auth_factor_id_fkey")

  @@index([created_at(sort: Desc)], map: "mfa_challenge_created_at_idx")
  @@schema("auth")
}

model mfa_factors {
  id             String           @id @db.Uuid
  user_id        String           @db.Uuid
  friendly_name  String?
  factor_type    factor_type
  status         factor_status
  created_at     DateTime         @db.Timestamptz(6)
  updated_at     DateTime         @db.Timestamptz(6)
  secret         String?
  mfa_challenges mfa_challenges[]
  users          auth_users       @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@index([user_id, created_at], map: "factor_id_created_at_idx")
  @@index([user_id])
  @@schema("auth")
}

model refresh_tokens {
  instance_id String?   @db.Uuid
  id          BigInt    @id @default(autoincrement())
  token       String?   @unique(map: "refresh_tokens_token_unique") @db.VarChar(255)
  user_id     String?   @db.VarChar(255)
  revoked     Boolean?
  created_at  DateTime? @db.Timestamptz(6)
  updated_at  DateTime? @db.Timestamptz(6)
  parent      String?   @db.VarChar(255)
  session_id  String?   @db.Uuid
  sessions    sessions? @relation(fields: [session_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@index([instance_id])
  @@index([instance_id, user_id])
  @@index([parent])
  @@index([session_id, revoked])
  @@index([updated_at(sort: Desc)])
  @@schema("auth")
}

model saml_providers {
  id                String        @id @db.Uuid
  sso_provider_id   String        @db.Uuid
  entity_id         String        @unique
  metadata_xml      String
  metadata_url      String?
  attribute_mapping Json?
  created_at        DateTime?     @db.Timestamptz(6)
  updated_at        DateTime?     @db.Timestamptz(6)
  sso_providers     sso_providers @relation(fields: [sso_provider_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@index([sso_provider_id])
  @@schema("auth")
}

model saml_relay_states {
  id              String        @id @db.Uuid
  sso_provider_id String        @db.Uuid
  request_id      String
  for_email       String?
  redirect_to     String?
  from_ip_address String?       @db.Inet
  created_at      DateTime?     @db.Timestamptz(6)
  updated_at      DateTime?     @db.Timestamptz(6)
  flow_state_id   String?       @db.Uuid
  flow_state      flow_state?   @relation(fields: [flow_state_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
  sso_providers   sso_providers @relation(fields: [sso_provider_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@index([created_at(sort: Desc)])
  @@index([for_email])
  @@index([sso_provider_id])
  @@schema("auth")
}

model schema_migrations {
  version String @id @db.VarChar(255)

  @@schema("auth")
}

model sessions {
  id             String           @id @db.Uuid
  user_id        String           @db.Uuid
  created_at     DateTime?        @db.Timestamptz(6)
  updated_at     DateTime?        @db.Timestamptz(6)
  factor_id      String?          @db.Uuid
  aal            aal_level?
  not_after      DateTime?        @db.Timestamptz(6)
  refreshed_at   DateTime?        @db.Timestamp(6)
  user_agent     String?
  ip             String?          @db.Inet
  tag            String?
  mfa_amr_claims mfa_amr_claims[]
  refresh_tokens refresh_tokens[]
  users          auth_users       @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@index([not_after(sort: Desc)])
  @@index([user_id])
  @@index([user_id, created_at], map: "user_id_created_at_idx")
  @@schema("auth")
}

model sso_domains {
  id              String        @id @db.Uuid
  sso_provider_id String        @db.Uuid
  domain          String
  created_at      DateTime?     @db.Timestamptz(6)
  updated_at      DateTime?     @db.Timestamptz(6)
  sso_providers   sso_providers @relation(fields: [sso_provider_id], references: [id], onDelete: Cascade, onUpdate: NoAction)

  @@index([sso_provider_id])
  @@schema("auth")
}

model sso_providers {
  id                String              @id @db.Uuid
  resource_id       String?
  created_at        DateTime?           @db.Timestamptz(6)
  updated_at        DateTime?           @db.Timestamptz(6)
  saml_providers    saml_providers[]
  saml_relay_states saml_relay_states[]
  sso_domains       sso_domains[]

  @@schema("auth")
}

model auth_users {
  instance_id                 String?         @db.Uuid
  id                          String          @id @db.Uuid
  aud                         String?         @db.VarChar(255)
  role                        String?         @db.VarChar(255)
  email                       String?         @db.VarChar(255)
  encrypted_password          String?         @db.VarChar(255)
  email_confirmed_at          DateTime?       @db.Timestamptz(6)
  invited_at                  DateTime?       @db.Timestamptz(6)
  confirmation_token          String?         @db.VarChar(255)
  confirmation_sent_at        DateTime?       @db.Timestamptz(6)
  recovery_token              String?         @db.VarChar(255)
  recovery_sent_at            DateTime?       @db.Timestamptz(6)
  email_change_token_new      String?         @db.VarChar(255)
  email_change                String?         @db.VarChar(255)
  email_change_sent_at        DateTime?       @db.Timestamptz(6)
  last_sign_in_at             DateTime?       @db.Timestamptz(6)
  raw_app_meta_data           Json?
  raw_user_meta_data          Json?
  is_super_admin              Boolean?
  created_at                  DateTime?       @db.Timestamptz(6)
  updated_at                  DateTime?       @db.Timestamptz(6)
  phone                       String?         @unique
  phone_confirmed_at          DateTime?       @db.Timestamptz(6)
  phone_change                String?         @default("")
  phone_change_token          String?         @default("") @db.VarChar(255)
  phone_change_sent_at        DateTime?       @db.Timestamptz(6)
  confirmed_at                DateTime?       @default(dbgenerated("LEAST(email_confirmed_at, phone_confirmed_at)")) @db.Timestamptz(6)
  email_change_token_current  String?         @default("") @db.VarChar(255)
  email_change_confirm_status Int?            @default(0) @db.SmallInt
  banned_until                DateTime?       @db.Timestamptz(6)
  reauthentication_token      String?         @default("") @db.VarChar(255)
  reauthentication_sent_at    DateTime?       @db.Timestamptz(6)
  is_sso_user                 Boolean         @default(false)
  deleted_at                  DateTime?       @db.Timestamptz(6)
  identities                  identities[]
  mfa_factors                 mfa_factors[]
  sessions                    sessions[]
  customers                   customers?
  subscriptions               subscriptions[]
  users                       public_users?

  @@index([instance_id])
  @@map("users")
  @@schema("auth")
}

model Accommodations {
  id         BigInt   @id(map: "Hotels_pkey") @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)

  @@schema("public")
}

model Activities {
  id         BigInt   @id @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)

  @@schema("public")
}

model Assistants {
  id                                            String        @id @db.Uuid
  name                                          String
  description                                   String?
  created_at                                    DateTime      @default(now()) @db.Timestamptz(6)
  updated_at                                    DateTime?     @db.Timestamptz(6)
  system_message                                String?
  opening_message                               String?
  managers                                      String[]
  slug                                          String?       @unique
  directory                                     BigInt?
  tools                                         Json[]
  traits                                        String[]
  openai_assistant_id                           String?
  model                                         String?
  Directories_Assistants_directoryToDirectories Directories?  @relation("Assistants_directoryToDirectories", fields: [directory], references: [id], onDelete: NoAction, onUpdate: NoAction)
  Chats                                         Chats[]
  Directories_Directories_assistantToAssistants Directories[] @relation("Directories_assistantToAssistants")
  Pages                                         Pages[]

  @@schema("public")
}

model Chatbots {
  id          BigInt        @id @default(autoincrement())
  created_at  DateTime      @default(now()) @db.Timestamptz(6)
  name        String?
  description String?
  customer    String?       @db.Uuid
  type        chatbot_type?
  platform    String?
  customers   customers?    @relation(fields: [customer], references: [id], onDelete: NoAction, onUpdate: NoAction)

  @@schema("public")
}

model Chats {
  id         BigInt      @id @default(autoincrement())
  created_at DateTime    @default(now()) @db.Timestamptz(6)
  threadId   String?
  assistant  String?     @db.Uuid
  Assistants Assistants? @relation(fields: [assistant], references: [id], onDelete: NoAction, onUpdate: NoAction)
  Messages   Messages[]

  @@schema("public")
}

model Directories {
  id                                           BigInt       @id @default(autoincrement())
  created_at                                   DateTime     @default(now()) @db.Timestamptz(6)
  assistant                                    String?      @db.Uuid
  Assistants_Assistants_directoryToDirectories Assistants[] @relation("Assistants_directoryToDirectories")
  Assistants_Directories_assistantToAssistants Assistants?  @relation("Directories_assistantToAssistants", fields: [assistant], references: [id], onDelete: NoAction, onUpdate: NoAction)
  Files                                        Files[]
  Pages                                        Pages[]

  @@schema("public")
}

model Eateries {
  id         BigInt   @id @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)

  @@schema("public")
}

model Files {
  id          BigInt       @id @default(autoincrement())
  created_at  DateTime     @default(now()) @db.Timestamptz(6)
  title       String?
  description String?
  directory   BigInt?
  Directories Directories? @relation(fields: [directory], references: [id], onDelete: NoAction, onUpdate: NoAction)

  @@schema("public")
}

model Flights {
  id         BigInt   @id @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)

  @@schema("public")
}

model Journals {
  id         BigInt   @id @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)

  @@schema("public")
}

model Messages {
  id         BigInt   @id @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)
  text       String
  sender     String
  chatId     BigInt
  Chats      Chats    @relation(fields: [chatId], references: [id], onDelete: Cascade)

  @@schema("public")
}

model Pages {
  id              BigInt       @id @default(autoincrement())
  created_at      DateTime     @default(now()) @db.Timestamptz(6)
  url             String
  title           String?
  directoryId     BigInt?
  type            page_type?
  website_url     String?
  links_to        String[]
  referring_links String[]
  images          String[]
  assistantId     String?      @db.Uuid
  Assistants      Assistants?  @relation(fields: [assistantId], references: [id], onDelete: NoAction, onUpdate: NoAction)
  Directories     Directories? @relation(fields: [directoryId], references: [id], onDelete: NoAction, onUpdate: NoAction)

  @@schema("public")
}

model Recommendations {
  id         BigInt   @id @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)

  @@schema("public")
}

model TravelPlans {
  id         BigInt   @id @default(autoincrement())
  created_at DateTime @default(now()) @db.Timestamptz(6)

  @@schema("public")
}

model customers {
  id                 String     @id @db.Uuid
  stripe_customer_id String?
  Chatbots           Chatbots[]
  users              auth_users @relation(fields: [id], references: [id], onDelete: NoAction, onUpdate: NoAction)

  @@schema("public")
}

model prices {
  id                String                 @id
  product_id        String?
  active            Boolean?
  description       String?
  unit_amount       BigInt?
  currency          String?
  type              pricing_type?
  interval          pricing_plan_interval?
  interval_count    Int?
  trial_period_days Int?
  metadata          Json?
  products          products?              @relation(fields: [product_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
  subscriptions     subscriptions[]

  @@schema("public")
}

model products {
  id          String   @id
  active      Boolean?
  name        String?
  description String?
  image       String?
  metadata    Json?
  prices      prices[]

  @@schema("public")
}

model subscriptions {
  id                   String               @id
  user_id              String               @db.Uuid
  status               subscription_status?
  metadata             Json?
  price_id             String?
  quantity             Int?
  cancel_at_period_end Boolean?
  created              DateTime             @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  current_period_start DateTime             @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  current_period_end   DateTime             @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  ended_at             DateTime?            @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  cancel_at            DateTime?            @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  canceled_at          DateTime?            @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  trial_start          DateTime?            @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  trial_end            DateTime?            @default(dbgenerated("timezone('utc'::text, now())")) @db.Timestamptz(6)
  prices               prices?              @relation(fields: [price_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
  users                auth_users           @relation(fields: [user_id], references: [id], onDelete: NoAction, onUpdate: NoAction)

  @@schema("public")
}

model public_users {
  id                  String     @id @db.Uuid
  full_name           String?
  avatar_url          String?
  billing_address     Json?
  payment_method      Json?
  organization        String?
  api_keys            String[]   @unique(map: "users_apiKeys_key")
  email               String?    @unique
  apiKey              String?    @unique
  openai_assistant_id String?    @unique
  openai_api_key      String?    @unique
  users               auth_users @relation(fields: [id], references: [id], onDelete: NoAction, onUpdate: NoAction)

  @@map("users")
  @@schema("public")
}

enum aal_level {
  aal1
  aal2
  aal3

  @@schema("auth")
}

enum code_challenge_method {
  s256
  plain

  @@schema("auth")
}

enum factor_status {
  unverified
  verified

  @@schema("auth")
}

enum factor_type {
  totp
  webauthn

  @@schema("auth")
}

enum chatbot_type {
  QandA
  Assistant
  CoPilot

  @@schema("public")
}

enum page_type {
  Post
  Listing
  Product
  Services
  Booking
  Checkout
  Contact
  Other

  @@schema("public")
}

enum pricing_plan_interval {
  day
  week
  month
  year

  @@schema("public")
}

enum pricing_type {
  one_time
  recurring

  @@schema("public")
}

enum subscription_status {
  trialing
  active
  canceled
  incomplete
  incomplete_expired
  past_due
  unpaid
  paused

  @@schema("public")
}