procbay-schema 1.0.85 → 1.0.87

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": "procbay-schema",
3
- "version": "1.0.85",
3
+ "version": "1.0.87",
4
4
  "description": "A set of utilities for managing Prisma database schemas, seeding, and maintenance operations for the Procure-to-Pay system",
5
5
  "main": "src/prisma/index.js",
6
6
  "type": "module",
@@ -0,0 +1,99 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "RfiSubmissionStatus" AS ENUM ('PENDING', 'SUBMITTED', 'APPROVED', 'REJECTED');
3
+
4
+ -- CreateTable
5
+ CREATE TABLE "rfi_submissions" (
6
+ "id" SERIAL NOT NULL,
7
+ "uuid" TEXT,
8
+ "event_id" INTEGER,
9
+ "event_vendor_id" INTEGER,
10
+ "rfi_form" JSONB,
11
+ "rfi_form_response" JSONB,
12
+ "status" "RfiSubmissionStatus" NOT NULL DEFAULT 'PENDING',
13
+ "submission_date" TIMESTAMPTZ(6),
14
+ "reviewed_at" TIMESTAMPTZ(6),
15
+ "reviewed_by" INTEGER,
16
+ "review_comments" TEXT,
17
+ "rejection_reason" TEXT,
18
+ "revision_notes" TEXT,
19
+ "rating" INTEGER,
20
+ "revision_count" INTEGER NOT NULL DEFAULT 0,
21
+ "version" INTEGER NOT NULL DEFAULT 1,
22
+ "attachments" JSONB,
23
+ "is_deleted" BOOLEAN NOT NULL DEFAULT false,
24
+ "created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
25
+ "created_by" INTEGER,
26
+ "updated_at" TIMESTAMPTZ(6) NOT NULL,
27
+ "updated_by" INTEGER,
28
+ "deleted_at" TIMESTAMPTZ(6),
29
+ "deleted_by" INTEGER,
30
+
31
+ CONSTRAINT "rfi_submissions_pkey" PRIMARY KEY ("id")
32
+ );
33
+
34
+ -- CreateTable
35
+ CREATE TABLE "rfi_submission_logs" (
36
+ "id" SERIAL NOT NULL,
37
+ "uuid" TEXT,
38
+ "rfi_submission_id" INTEGER,
39
+ "event_id" INTEGER,
40
+ "event_vendor_id" INTEGER,
41
+ "previous_status" "RfiSubmissionStatus",
42
+ "new_status" "RfiSubmissionStatus" NOT NULL,
43
+ "action" TEXT,
44
+ "action_by" INTEGER,
45
+ "comments" TEXT,
46
+ "rating" INTEGER,
47
+ "version" INTEGER NOT NULL DEFAULT 1,
48
+ "created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
49
+
50
+ CONSTRAINT "rfi_submission_logs_pkey" PRIMARY KEY ("id")
51
+ );
52
+
53
+ -- CreateIndex
54
+ CREATE UNIQUE INDEX "rfi_submissions_uuid_key" ON "rfi_submissions"("uuid");
55
+
56
+ -- CreateIndex
57
+ CREATE INDEX "rfi_submissions_event_id_idx" ON "rfi_submissions"("event_id");
58
+
59
+ -- CreateIndex
60
+ CREATE INDEX "rfi_submissions_event_vendor_id_idx" ON "rfi_submissions"("event_vendor_id");
61
+
62
+ -- CreateIndex
63
+ CREATE INDEX "rfi_submissions_status_idx" ON "rfi_submissions"("status");
64
+
65
+ -- CreateIndex
66
+ CREATE INDEX "rfi_submissions_submission_date_idx" ON "rfi_submissions"("submission_date");
67
+
68
+ -- CreateIndex
69
+ CREATE UNIQUE INDEX "rfi_submissions_event_id_event_vendor_id_key" ON "rfi_submissions"("event_id", "event_vendor_id");
70
+
71
+ -- CreateIndex
72
+ CREATE UNIQUE INDEX "rfi_submission_logs_uuid_key" ON "rfi_submission_logs"("uuid");
73
+
74
+ -- CreateIndex
75
+ CREATE INDEX "rfi_submission_logs_rfi_submission_id_idx" ON "rfi_submission_logs"("rfi_submission_id");
76
+
77
+ -- CreateIndex
78
+ CREATE INDEX "rfi_submission_logs_event_id_idx" ON "rfi_submission_logs"("event_id");
79
+
80
+ -- CreateIndex
81
+ CREATE INDEX "rfi_submission_logs_event_vendor_id_idx" ON "rfi_submission_logs"("event_vendor_id");
82
+
83
+ -- CreateIndex
84
+ CREATE INDEX "rfi_submission_logs_created_at_idx" ON "rfi_submission_logs"("created_at");
85
+
86
+ -- AddForeignKey
87
+ ALTER TABLE "rfi_submissions" ADD CONSTRAINT "rfi_submissions_event_id_fkey" FOREIGN KEY ("event_id") REFERENCES "events"("id") ON DELETE CASCADE ON UPDATE CASCADE;
88
+
89
+ -- AddForeignKey
90
+ ALTER TABLE "rfi_submissions" ADD CONSTRAINT "rfi_submissions_event_vendor_id_fkey" FOREIGN KEY ("event_vendor_id") REFERENCES "event_vendors"("id") ON DELETE CASCADE ON UPDATE CASCADE;
91
+
92
+ -- AddForeignKey
93
+ ALTER TABLE "rfi_submissions" ADD CONSTRAINT "rfi_submissions_reviewed_by_fkey" FOREIGN KEY ("reviewed_by") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
94
+
95
+ -- AddForeignKey
96
+ ALTER TABLE "rfi_submission_logs" ADD CONSTRAINT "rfi_submission_logs_rfi_submission_id_fkey" FOREIGN KEY ("rfi_submission_id") REFERENCES "rfi_submissions"("id") ON DELETE CASCADE ON UPDATE CASCADE;
97
+
98
+ -- AddForeignKey
99
+ ALTER TABLE "rfi_submission_logs" ADD CONSTRAINT "rfi_submission_logs_action_by_fkey" FOREIGN KEY ("action_by") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,111 @@
1
+ /*
2
+ Warnings:
3
+
4
+ - You are about to drop the `rfi_submission_logs` table. If the table is not empty, all the data it contains will be lost.
5
+ - You are about to drop the `rfi_submissions` table. If the table is not empty, all the data it contains will be lost.
6
+
7
+ */
8
+ -- CreateEnum
9
+ CREATE TYPE "EventRfiFormStatus" AS ENUM ('PENDING', 'SUBMITTED', 'APPROVED', 'REJECTED', 'DRAFT');
10
+
11
+ -- DropForeignKey
12
+ ALTER TABLE "rfi_submission_logs" DROP CONSTRAINT "rfi_submission_logs_action_by_fkey";
13
+
14
+ -- DropForeignKey
15
+ ALTER TABLE "rfi_submission_logs" DROP CONSTRAINT "rfi_submission_logs_rfi_submission_id_fkey";
16
+
17
+ -- DropForeignKey
18
+ ALTER TABLE "rfi_submissions" DROP CONSTRAINT "rfi_submissions_event_id_fkey";
19
+
20
+ -- DropForeignKey
21
+ ALTER TABLE "rfi_submissions" DROP CONSTRAINT "rfi_submissions_event_vendor_id_fkey";
22
+
23
+ -- DropForeignKey
24
+ ALTER TABLE "rfi_submissions" DROP CONSTRAINT "rfi_submissions_reviewed_by_fkey";
25
+
26
+ -- DropTable
27
+ DROP TABLE "rfi_submission_logs";
28
+
29
+ -- DropTable
30
+ DROP TABLE "rfi_submissions";
31
+
32
+ -- DropEnum
33
+ DROP TYPE "RfiSubmissionStatus";
34
+
35
+ -- CreateTable
36
+ CREATE TABLE "event_rfi_forms" (
37
+ "id" SERIAL NOT NULL,
38
+ "uuid" TEXT,
39
+ "event_id" INTEGER,
40
+ "form_data" JSONB,
41
+ "is_deleted" BOOLEAN NOT NULL DEFAULT false,
42
+ "created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
43
+ "created_by" INTEGER,
44
+ "updated_at" TIMESTAMPTZ(6) NOT NULL,
45
+ "updated_by" INTEGER,
46
+ "deleted_at" TIMESTAMPTZ(6),
47
+ "deleted_by" INTEGER,
48
+
49
+ CONSTRAINT "event_rfi_forms_pkey" PRIMARY KEY ("id")
50
+ );
51
+
52
+ -- CreateTable
53
+ CREATE TABLE "event_rfi_form_logs" (
54
+ "id" SERIAL NOT NULL,
55
+ "uuid" TEXT,
56
+ "event_id" INTEGER,
57
+ "event_vendor_id" INTEGER,
58
+ "rfi_form_id" INTEGER,
59
+ "rfi_form_response" JSONB,
60
+ "status" "EventRfiFormStatus" NOT NULL DEFAULT 'DRAFT',
61
+ "reviewed_at" TIMESTAMPTZ(6),
62
+ "reviewed_by" INTEGER,
63
+ "comments" TEXT,
64
+ "rating" INTEGER,
65
+ "version" INTEGER NOT NULL DEFAULT 1,
66
+ "created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
67
+ "created_by" INTEGER,
68
+ "updated_at" TIMESTAMPTZ(6) NOT NULL,
69
+ "updated_by" INTEGER,
70
+ "is_deleted" BOOLEAN NOT NULL DEFAULT false,
71
+ "deleted_at" TIMESTAMPTZ(6),
72
+ "deleted_by" INTEGER,
73
+
74
+ CONSTRAINT "event_rfi_form_logs_pkey" PRIMARY KEY ("id")
75
+ );
76
+
77
+ -- CreateIndex
78
+ CREATE UNIQUE INDEX "event_rfi_forms_uuid_key" ON "event_rfi_forms"("uuid");
79
+
80
+ -- CreateIndex
81
+ CREATE UNIQUE INDEX "event_rfi_forms_event_id_key" ON "event_rfi_forms"("event_id");
82
+
83
+ -- CreateIndex
84
+ CREATE INDEX "event_rfi_forms_event_id_idx" ON "event_rfi_forms"("event_id");
85
+
86
+ -- CreateIndex
87
+ CREATE UNIQUE INDEX "event_rfi_form_logs_uuid_key" ON "event_rfi_form_logs"("uuid");
88
+
89
+ -- CreateIndex
90
+ CREATE INDEX "event_rfi_form_logs_event_id_event_vendor_id_idx" ON "event_rfi_form_logs"("event_id", "event_vendor_id");
91
+
92
+ -- CreateIndex
93
+ CREATE INDEX "event_rfi_form_logs_event_id_status_idx" ON "event_rfi_form_logs"("event_id", "status");
94
+
95
+ -- CreateIndex
96
+ CREATE INDEX "event_rfi_form_logs_event_vendor_id_idx" ON "event_rfi_form_logs"("event_vendor_id");
97
+
98
+ -- AddForeignKey
99
+ ALTER TABLE "event_rfi_forms" ADD CONSTRAINT "event_rfi_forms_event_id_fkey" FOREIGN KEY ("event_id") REFERENCES "events"("id") ON DELETE CASCADE ON UPDATE CASCADE;
100
+
101
+ -- AddForeignKey
102
+ ALTER TABLE "event_rfi_form_logs" ADD CONSTRAINT "event_rfi_form_logs_event_id_fkey" FOREIGN KEY ("event_id") REFERENCES "events"("id") ON DELETE CASCADE ON UPDATE CASCADE;
103
+
104
+ -- AddForeignKey
105
+ ALTER TABLE "event_rfi_form_logs" ADD CONSTRAINT "event_rfi_form_logs_event_vendor_id_fkey" FOREIGN KEY ("event_vendor_id") REFERENCES "event_vendors"("id") ON DELETE CASCADE ON UPDATE CASCADE;
106
+
107
+ -- AddForeignKey
108
+ ALTER TABLE "event_rfi_form_logs" ADD CONSTRAINT "event_rfi_form_logs_rfi_form_id_fkey" FOREIGN KEY ("rfi_form_id") REFERENCES "event_rfi_forms"("id") ON DELETE CASCADE ON UPDATE CASCADE;
109
+
110
+ -- AddForeignKey
111
+ ALTER TABLE "event_rfi_form_logs" ADD CONSTRAINT "event_rfi_form_logs_reviewed_by_fkey" FOREIGN KEY ("reviewed_by") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -108,8 +108,7 @@ model User {
108
108
  send_back_approvers SendBack[] @relation("send_back_approver")
109
109
  send_back_requestors SendBack[] @relation("send_back_requestor")
110
110
  user_login_activities UserLoginActivity[]
111
- rfi_reviewer RfiSubmission[] @relation("rfi_reviewer")
112
- rfi_action_by RfiSubmissionLog[] @relation("rfi_action_by")
111
+ event_rfi_form_logs EventRfiFormLog[]
113
112
 
114
113
  @@map("users")
115
114
  }
@@ -1158,7 +1157,8 @@ model Event {
1158
1157
  bid_logs BidLog[]
1159
1158
  quotations Quotation[]
1160
1159
  quotation_logs QuotationLog[]
1161
- rfi_submissions RfiSubmission[]
1160
+ event_rfi_form EventRfiForm[]
1161
+ event_rfi_form_logs EventRfiFormLog[]
1162
1162
  purchase_order PurchaseOrder[]
1163
1163
 
1164
1164
  @@map("events")
@@ -1247,7 +1247,7 @@ model EventVendors {
1247
1247
  bid_logs BidLog[]
1248
1248
  quotations Quotation[]
1249
1249
  quotation_logs QuotationLog[]
1250
- rfi_submissions RfiSubmission[]
1250
+ event_rfi_form_logs EventRfiFormLog[]
1251
1251
  purchase_order PurchaseOrder[]
1252
1252
 
1253
1253
  @@index([event_id, vendor_id])
@@ -2302,7 +2302,6 @@ model UploadLog {
2302
2302
 
2303
2303
  //------------------------------------- UPLOAD MODEL END --------------------------------------------
2304
2304
 
2305
-
2306
2305
  //------------------------------------- USER EVENT CONFIGURATION MODEL END --------------------------------------------
2307
2306
 
2308
2307
  model UserEventConfiguration {
@@ -2737,80 +2736,66 @@ model CatalogueCart {
2737
2736
 
2738
2737
  //---------------------------------- CATALOGUE CART MODEL END ---------------------------------------
2739
2738
 
2740
- //---------------------------------- RFI SUBMISSION MODEL START ---------------------------------------
2741
- enum RfiSubmissionStatus {
2739
+ //---------------------------------- RFI FORM TEMPLATE MODEL START ---------------------------------------
2740
+ model EventRfiForm {
2741
+ id Int @id @default(autoincrement())
2742
+ uuid String? @unique @default(uuid())
2743
+ event_id Int? @unique
2744
+ event Event? @relation(fields: [event_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2745
+ form_data Json? @db.JsonB
2746
+ is_deleted Boolean @default(false)
2747
+ created_at DateTime @default(now()) @db.Timestamptz(6)
2748
+ created_by Int?
2749
+ updated_at DateTime @updatedAt @db.Timestamptz(6)
2750
+ updated_by Int?
2751
+ deleted_at DateTime? @db.Timestamptz(6)
2752
+ deleted_by Int?
2753
+ event_rfi_form_logs EventRfiFormLog[]
2754
+
2755
+ @@index([event_id])
2756
+ @@map("event_rfi_forms")
2757
+ }
2758
+
2759
+ //---------------------------------- RFI FORM TEMPLATE MODEL END ---------------------------------------
2760
+
2761
+ //---------------------------------- RFI SUBMISSION LOG MODEL START ---------------------------------------
2762
+ enum EventRfiFormStatus {
2742
2763
  PENDING
2743
2764
  SUBMITTED
2744
2765
  APPROVED
2745
2766
  REJECTED
2767
+ DRAFT
2746
2768
  }
2747
2769
 
2748
- // Stores vendor RFI form submissions for RFI type events
2749
- model RfiSubmission {
2750
- id Int @id @default(autoincrement())
2751
- uuid String? @unique @default(uuid())
2770
+ model EventRfiFormLog {
2771
+ id Int @id @default(autoincrement())
2772
+ uuid String? @unique @default(uuid())
2752
2773
  event_id Int?
2753
- event Event? @relation(fields: [event_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2774
+ event Event? @relation(fields: [event_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2754
2775
  event_vendor_id Int?
2755
- event_vendor EventVendors? @relation(fields: [event_vendor_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2756
- rfi_form Json? @db.JsonB
2757
- rfi_form_response Json? @db.JsonB
2758
- status RfiSubmissionStatus @default(PENDING)
2759
- submission_date DateTime? @db.Timestamptz(6)
2760
- reviewed_at DateTime? @db.Timestamptz(6)
2776
+ event_vendor EventVendors? @relation(fields: [event_vendor_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2777
+ rfi_form_id Int?
2778
+ rfi_form EventRfiForm? @relation(fields: [rfi_form_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2779
+ rfi_form_response Json? @db.JsonB
2780
+ status EventRfiFormStatus @default(DRAFT)
2781
+ reviewed_at DateTime? @db.Timestamptz(6)
2761
2782
  reviewed_by Int?
2762
- reviewer User? @relation("rfi_reviewer", fields: [reviewed_by], references: [id], onDelete: SetNull)
2763
- review_comments String?
2764
- rejection_reason String?
2765
- revision_notes String?
2783
+ user User? @relation(fields: [reviewed_by], references: [id], onDelete: Cascade)
2784
+ comments String?
2766
2785
  rating Int?
2767
- revision_count Int @default(0)
2768
- version Int @default(1)
2769
- attachments Json? @db.JsonB
2770
- is_deleted Boolean @default(false)
2771
- created_at DateTime @default(now()) @db.Timestamptz(6)
2786
+ version Int @default(1)
2787
+ created_at DateTime @default(now()) @db.Timestamptz(6)
2772
2788
  created_by Int?
2773
- updated_at DateTime @updatedAt @db.Timestamptz(6)
2789
+ updated_at DateTime @updatedAt @db.Timestamptz(6)
2774
2790
  updated_by Int?
2775
- deleted_at DateTime? @db.Timestamptz(6)
2791
+ is_deleted Boolean @default(false)
2792
+ deleted_at DateTime? @db.Timestamptz(6)
2776
2793
  deleted_by Int?
2777
2794
 
2778
- rfi_submission_logs RfiSubmissionLog[]
2779
-
2780
- @@unique([event_id, event_vendor_id], name: "unique_event_vendor_rfi")
2781
- @@index([event_id])
2782
- @@index([event_vendor_id])
2783
- @@index([status])
2784
- @@index([submission_date])
2785
- @@map("rfi_submissions")
2786
- }
2787
-
2788
- //---------------------------------- RFI SUBMISSION MODEL END ---------------------------------------
2789
-
2790
- //---------------------------------- RFI SUBMISSION LOG MODEL START ---------------------------------------
2791
- // Audit log for RFI submissions - tracks complete history of all status changes and actions
2792
- model RfiSubmissionLog {
2793
- id Int @id @default(autoincrement())
2794
- uuid String? @unique @default(uuid())
2795
- rfi_submission_id Int?
2796
- rfi_submission RfiSubmission? @relation(fields: [rfi_submission_id], references: [id], onDelete: Cascade)
2797
- event_id Int?
2798
- event_vendor_id Int?
2799
- previous_status RfiSubmissionStatus?
2800
- new_status RfiSubmissionStatus
2801
- action String?
2802
- action_by Int?
2803
- action_by_user User? @relation("rfi_action_by", fields: [action_by], references: [id], onDelete: SetNull)
2804
- comments String?
2805
- rating Int?
2806
- version Int @default(1)
2807
- created_at DateTime @default(now()) @db.Timestamptz(6)
2808
-
2809
- @@index([rfi_submission_id])
2810
- @@index([event_id])
2795
+ @@index([event_id, event_vendor_id])
2796
+ @@index([event_id, status])
2811
2797
  @@index([event_vendor_id])
2812
- @@index([created_at])
2813
- @@map("rfi_submission_logs")
2798
+ @@map("event_rfi_form_logs")
2814
2799
  }
2815
2800
 
2816
2801
  //---------------------------------- RFI SUBMISSION LOG MODEL END ---------------------------------------