kfreelance-project-postgresql-prisma-2 0.0.1

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.
Files changed (47) hide show
  1. package/README.MD +217 -0
  2. package/dist/client.d.ts +3 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +7 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +10 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +29 -0
  9. package/dist/index.js.map +1 -0
  10. package/generated/prisma/client.d.ts +1 -0
  11. package/generated/prisma/client.js +4 -0
  12. package/generated/prisma/default.d.ts +1 -0
  13. package/generated/prisma/default.js +4 -0
  14. package/generated/prisma/edge.d.ts +1 -0
  15. package/generated/prisma/edge.js +363 -0
  16. package/generated/prisma/index-browser.js +345 -0
  17. package/generated/prisma/index.d.ts +19091 -0
  18. package/generated/prisma/index.js +388 -0
  19. package/generated/prisma/libquery_engine-darwin-arm64.dylib.node +0 -0
  20. package/generated/prisma/libquery_engine-linux-musl-arm64-openssl-3.0.x.so.node +0 -0
  21. package/generated/prisma/package.json +183 -0
  22. package/generated/prisma/query_engine_bg.js +2 -0
  23. package/generated/prisma/query_engine_bg.wasm +0 -0
  24. package/generated/prisma/runtime/edge-esm.js +34 -0
  25. package/generated/prisma/runtime/edge.js +34 -0
  26. package/generated/prisma/runtime/index-browser.d.ts +370 -0
  27. package/generated/prisma/runtime/index-browser.js +16 -0
  28. package/generated/prisma/runtime/library.d.ts +3976 -0
  29. package/generated/prisma/runtime/library.js +146 -0
  30. package/generated/prisma/runtime/react-native.js +83 -0
  31. package/generated/prisma/runtime/wasm-compiler-edge.js +84 -0
  32. package/generated/prisma/runtime/wasm-engine-edge.js +36 -0
  33. package/generated/prisma/schema.prisma +212 -0
  34. package/generated/prisma/wasm-edge-light-loader.mjs +4 -0
  35. package/generated/prisma/wasm-worker-loader.mjs +4 -0
  36. package/generated/prisma/wasm.d.ts +1 -0
  37. package/generated/prisma/wasm.js +370 -0
  38. package/package.json +55 -0
  39. package/prisma/migrations/20251003030244_init/migration.sql +33 -0
  40. package/prisma/migrations/20251006071441_update_user_columns_name/migration.sql +10 -0
  41. package/prisma/migrations/20251229080245_add_is_admin_in_user/migration.sql +2 -0
  42. package/prisma/migrations/20251229092526_remove_passort_reset/migration.sql +11 -0
  43. package/prisma/migrations/20251229101534_init_trip_domain/migration.sql +186 -0
  44. package/prisma/migrations/migration_lock.toml +3 -0
  45. package/prisma/models/trips.prisma +183 -0
  46. package/prisma/models/users.prisma +11 -0
  47. package/prisma/schema.prisma +16 -0
@@ -0,0 +1,186 @@
1
+ -- CreateEnum
2
+ CREATE TYPE "TripType" AS ENUM ('SOLO', 'GROUP');
3
+
4
+ -- CreateEnum
5
+ CREATE TYPE "TripStatus" AS ENUM ('DRAFT', 'ACTIVE', 'COMPLETED');
6
+
7
+ -- CreateEnum
8
+ CREATE TYPE "MemberRole" AS ENUM ('OWNER', 'MEMBER');
9
+
10
+ -- CreateEnum
11
+ CREATE TYPE "InviteStatus" AS ENUM ('PENDING', 'ACCEPTED', 'DECLINED');
12
+
13
+ -- CreateEnum
14
+ CREATE TYPE "ActivityStatus" AS ENUM ('PLANNED', 'SUGGESTED', 'CONFIRMED');
15
+
16
+ -- CreateEnum
17
+ CREATE TYPE "ActivitySuggestionStatus" AS ENUM ('SUGGESTED', 'ACCEPTED', 'REJECTED');
18
+
19
+ -- CreateEnum
20
+ CREATE TYPE "VoteValue" AS ENUM ('YES', 'NO', 'MAYBE');
21
+
22
+ -- CreateEnum
23
+ CREATE TYPE "EntityType" AS ENUM ('TRIP', 'DAY', 'ACTIVITY', 'SUGGESTION');
24
+
25
+ -- CreateEnum
26
+ CREATE TYPE "NotificationType" AS ENUM ('INVITE', 'CHANGE', 'VOTE', 'COMMENT');
27
+
28
+ -- CreateTable
29
+ CREATE TABLE "Trip" (
30
+ "id" TEXT NOT NULL,
31
+ "title" TEXT NOT NULL,
32
+ "destination_summary" TEXT NOT NULL,
33
+ "start_date" TIMESTAMP(3) NOT NULL,
34
+ "end_date" TIMESTAMP(3) NOT NULL,
35
+ "trip_type" "TripType" NOT NULL,
36
+ "owner_id" TEXT NOT NULL,
37
+ "status" "TripStatus" NOT NULL DEFAULT 'DRAFT',
38
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
39
+ "updated_at" TIMESTAMP(3) NOT NULL,
40
+
41
+ CONSTRAINT "Trip_pkey" PRIMARY KEY ("id")
42
+ );
43
+
44
+ -- CreateTable
45
+ CREATE TABLE "TripMemeber" (
46
+ "id" TEXT NOT NULL,
47
+ "trip_id" TEXT NOT NULL,
48
+ "user_id" TEXT NOT NULL,
49
+ "role" "MemberRole" NOT NULL,
50
+ "joined_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
51
+ "invite_status" "InviteStatus" NOT NULL DEFAULT 'PENDING',
52
+
53
+ CONSTRAINT "TripMemeber_pkey" PRIMARY KEY ("id")
54
+ );
55
+
56
+ -- CreateTable
57
+ CREATE TABLE "Day" (
58
+ "id" TEXT NOT NULL,
59
+ "trip_id" TEXT NOT NULL,
60
+ "date" TIMESTAMP(3) NOT NULL,
61
+ "day_index" INTEGER NOT NULL,
62
+ "notes" TEXT,
63
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
64
+ "updated_at" TIMESTAMP(3) NOT NULL,
65
+
66
+ CONSTRAINT "Day_pkey" PRIMARY KEY ("id")
67
+ );
68
+
69
+ -- CreateTable
70
+ CREATE TABLE "Activity" (
71
+ "id" TEXT NOT NULL,
72
+ "day_id" TEXT NOT NULL,
73
+ "title" TEXT NOT NULL,
74
+ "description" TEXT,
75
+ "start_time" TIMESTAMP(3) NOT NULL,
76
+ "end_time" TIMESTAMP(3) NOT NULL,
77
+ "location_name" TEXT,
78
+ "latitude" DOUBLE PRECISION,
79
+ "longitude" DOUBLE PRECISION,
80
+ "created_by" TEXT NOT NULL,
81
+ "order_index" INTEGER NOT NULL,
82
+ "status" "ActivityStatus" NOT NULL DEFAULT 'PLANNED',
83
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
84
+ "updated_at" TIMESTAMP(3) NOT NULL,
85
+
86
+ CONSTRAINT "Activity_pkey" PRIMARY KEY ("id")
87
+ );
88
+
89
+ -- CreateTable
90
+ CREATE TABLE "ActivitySuggestion" (
91
+ "id" TEXT NOT NULL,
92
+ "trip_id" TEXT NOT NULL,
93
+ "activity_draft" TEXT NOT NULL,
94
+ "suggested_by" TEXT NOT NULL,
95
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
96
+ "status" "ActivitySuggestionStatus" NOT NULL DEFAULT 'SUGGESTED',
97
+
98
+ CONSTRAINT "ActivitySuggestion_pkey" PRIMARY KEY ("id")
99
+ );
100
+
101
+ -- CreateTable
102
+ CREATE TABLE "Vote" (
103
+ "id" TEXT NOT NULL,
104
+ "suggestion_id" TEXT NOT NULL,
105
+ "user_id" TEXT NOT NULL,
106
+ "vote_value" "VoteValue" NOT NULL,
107
+ "voted_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
108
+
109
+ CONSTRAINT "Vote_pkey" PRIMARY KEY ("id")
110
+ );
111
+
112
+ -- CreateTable
113
+ CREATE TABLE "Commment" (
114
+ "id" TEXT NOT NULL,
115
+ "entity_type" "EntityType" NOT NULL,
116
+ "user_id" TEXT NOT NULL,
117
+ "content" TEXT NOT NULL,
118
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
119
+ "activityId" TEXT,
120
+ "activitySuggestionId" TEXT,
121
+
122
+ CONSTRAINT "Commment_pkey" PRIMARY KEY ("id")
123
+ );
124
+
125
+ -- CreateTable
126
+ CREATE TABLE "Document" (
127
+ "id" TEXT NOT NULL,
128
+ "trip_id" TEXT NOT NULL,
129
+ "linked_entity_type" "EntityType" NOT NULL,
130
+ "file_name" TEXT NOT NULL,
131
+ "file_type" TEXT NOT NULL,
132
+ "file_url" TEXT NOT NULL,
133
+ "uploaded_by" TEXT NOT NULL,
134
+ "available_offline" BOOLEAN NOT NULL DEFAULT false,
135
+ "uploaded_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
136
+ "dayId" TEXT,
137
+ "activityId" TEXT,
138
+
139
+ CONSTRAINT "Document_pkey" PRIMARY KEY ("id")
140
+ );
141
+
142
+ -- CreateTable
143
+ CREATE TABLE "Notification" (
144
+ "id" TEXT NOT NULL,
145
+ "user_id" TEXT NOT NULL,
146
+ "trip_id" TEXT NOT NULL,
147
+ "type" "NotificationType" NOT NULL,
148
+ "payload" TEXT NOT NULL,
149
+ "is_read" BOOLEAN NOT NULL DEFAULT false,
150
+ "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
151
+
152
+ CONSTRAINT "Notification_pkey" PRIMARY KEY ("id")
153
+ );
154
+
155
+ -- AddForeignKey
156
+ ALTER TABLE "TripMemeber" ADD CONSTRAINT "TripMemeber_trip_id_fkey" FOREIGN KEY ("trip_id") REFERENCES "Trip"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
157
+
158
+ -- AddForeignKey
159
+ ALTER TABLE "Day" ADD CONSTRAINT "Day_trip_id_fkey" FOREIGN KEY ("trip_id") REFERENCES "Trip"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
160
+
161
+ -- AddForeignKey
162
+ ALTER TABLE "Activity" ADD CONSTRAINT "Activity_day_id_fkey" FOREIGN KEY ("day_id") REFERENCES "Day"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
163
+
164
+ -- AddForeignKey
165
+ ALTER TABLE "ActivitySuggestion" ADD CONSTRAINT "ActivitySuggestion_trip_id_fkey" FOREIGN KEY ("trip_id") REFERENCES "Trip"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
166
+
167
+ -- AddForeignKey
168
+ ALTER TABLE "Vote" ADD CONSTRAINT "Vote_suggestion_id_fkey" FOREIGN KEY ("suggestion_id") REFERENCES "ActivitySuggestion"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
169
+
170
+ -- AddForeignKey
171
+ ALTER TABLE "Commment" ADD CONSTRAINT "Commment_activityId_fkey" FOREIGN KEY ("activityId") REFERENCES "Activity"("id") ON DELETE SET NULL ON UPDATE CASCADE;
172
+
173
+ -- AddForeignKey
174
+ ALTER TABLE "Commment" ADD CONSTRAINT "Commment_activitySuggestionId_fkey" FOREIGN KEY ("activitySuggestionId") REFERENCES "ActivitySuggestion"("id") ON DELETE SET NULL ON UPDATE CASCADE;
175
+
176
+ -- AddForeignKey
177
+ ALTER TABLE "Document" ADD CONSTRAINT "Document_trip_id_fkey" FOREIGN KEY ("trip_id") REFERENCES "Trip"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
178
+
179
+ -- AddForeignKey
180
+ ALTER TABLE "Document" ADD CONSTRAINT "Document_dayId_fkey" FOREIGN KEY ("dayId") REFERENCES "Day"("id") ON DELETE SET NULL ON UPDATE CASCADE;
181
+
182
+ -- AddForeignKey
183
+ ALTER TABLE "Document" ADD CONSTRAINT "Document_activityId_fkey" FOREIGN KEY ("activityId") REFERENCES "Activity"("id") ON DELETE SET NULL ON UPDATE CASCADE;
184
+
185
+ -- AddForeignKey
186
+ ALTER TABLE "Notification" ADD CONSTRAINT "Notification_trip_id_fkey" FOREIGN KEY ("trip_id") REFERENCES "Trip"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,3 @@
1
+ # Please do not edit this file manually
2
+ # It should be added in your version-control system (e.g., Git)
3
+ provider = "postgresql"
@@ -0,0 +1,183 @@
1
+ model Trip {
2
+ id String @id @default(uuid())
3
+ title String
4
+ destination_summary String
5
+ start_date DateTime
6
+ end_date DateTime
7
+ trip_type TripType
8
+ owner_id String
9
+ status TripStatus @default(DRAFT)
10
+ created_at DateTime @default(now())
11
+ updated_at DateTime @updatedAt
12
+
13
+ members TripMemeber[]
14
+ days Day[]
15
+ activitySuggestions ActivitySuggestion[]
16
+ documents Document[]
17
+ notifications Notification[]
18
+ }
19
+
20
+ model TripMemeber {
21
+ id String @id @default(uuid())
22
+ trip_id String
23
+ user_id String
24
+ role MemberRole
25
+ joined_at DateTime @default(now())
26
+ invite_status InviteStatus @default(PENDING)
27
+ trip Trip @relation(fields: [trip_id], references: [id])
28
+ }
29
+
30
+ model Day {
31
+ id String @id @default(uuid())
32
+ trip_id String
33
+ date DateTime
34
+ day_index Int
35
+ notes String?
36
+ created_at DateTime @default(now())
37
+ updated_at DateTime @updatedAt
38
+
39
+ trip Trip @relation(fields: [trip_id], references: [id])
40
+ activities Activity[]
41
+ documents Document[]
42
+ }
43
+
44
+ model Activity {
45
+ id String @id @default(uuid())
46
+ day_id String
47
+ title String
48
+ description String?
49
+ start_time DateTime
50
+ end_time DateTime
51
+ location_name String?
52
+ latitude Float?
53
+ longitude Float?
54
+ created_by String
55
+ order_index Int
56
+ status ActivityStatus @default(PLANNED)
57
+ created_at DateTime @default(now())
58
+ updated_at DateTime @updatedAt
59
+
60
+ day Day @relation(fields: [day_id], references: [id])
61
+ documents Document[]
62
+ comments Commment[]
63
+ }
64
+
65
+ model ActivitySuggestion {
66
+ id String @id @default(uuid())
67
+ trip_id String
68
+ activity_draft String
69
+ suggested_by String
70
+ created_at DateTime @default(now())
71
+ status ActivitySuggestionStatus @default(SUGGESTED)
72
+
73
+ trip Trip @relation(fields: [trip_id], references: [id])
74
+ votes Vote[]
75
+ commments Commment[]
76
+ }
77
+
78
+ model Vote {
79
+ id String @id @default(uuid())
80
+ suggestion_id String
81
+ user_id String
82
+ vote_value VoteValue
83
+ voted_at DateTime @default(now())
84
+
85
+ activitySuggestion ActivitySuggestion @relation(fields: [suggestion_id], references: [id])
86
+ }
87
+
88
+ model Commment {
89
+ id String @id @default(uuid())
90
+ entity_type EntityType
91
+ user_id String
92
+ content String
93
+ created_at DateTime @default(now())
94
+
95
+ activity Activity? @relation(fields: [activityId], references: [id])
96
+ activityId String?
97
+ activitySuggestion ActivitySuggestion? @relation(fields: [activitySuggestionId], references: [id])
98
+ activitySuggestionId String?
99
+ }
100
+
101
+ model Document {
102
+ id String @id @default(uuid())
103
+ trip_id String
104
+ linked_entity_type EntityType
105
+ file_name String
106
+ file_type String
107
+ file_url String
108
+ uploaded_by String
109
+ available_offline Boolean @default(false)
110
+ uploaded_at DateTime @default(now())
111
+
112
+ trip Trip @relation(fields: [trip_id], references: [id])
113
+ day Day? @relation(fields: [dayId], references: [id])
114
+ dayId String?
115
+ activity Activity? @relation(fields: [activityId], references: [id])
116
+ activityId String?
117
+ }
118
+
119
+ model Notification {
120
+ id String @id @default(uuid())
121
+ user_id String
122
+ trip_id String
123
+ type NotificationType
124
+ payload String
125
+ is_read Boolean @default(false)
126
+ created_at DateTime @default(now())
127
+
128
+ trip Trip @relation(fields: [trip_id], references: [id])
129
+ }
130
+
131
+ enum TripType {
132
+ SOLO
133
+ GROUP
134
+ }
135
+
136
+ enum TripStatus {
137
+ DRAFT
138
+ ACTIVE
139
+ COMPLETED
140
+ }
141
+
142
+ enum MemberRole {
143
+ OWNER
144
+ MEMBER
145
+ }
146
+
147
+ enum InviteStatus {
148
+ PENDING
149
+ ACCEPTED
150
+ DECLINED
151
+ }
152
+
153
+ enum ActivityStatus {
154
+ PLANNED
155
+ SUGGESTED
156
+ CONFIRMED
157
+ }
158
+
159
+ enum ActivitySuggestionStatus {
160
+ SUGGESTED
161
+ ACCEPTED
162
+ REJECTED
163
+ }
164
+
165
+ enum VoteValue {
166
+ YES
167
+ NO
168
+ MAYBE
169
+ }
170
+
171
+ enum EntityType {
172
+ TRIP
173
+ DAY
174
+ ACTIVITY
175
+ SUGGESTION
176
+ }
177
+
178
+ enum NotificationType {
179
+ INVITE
180
+ CHANGE
181
+ VOTE
182
+ COMMENT
183
+ }
@@ -0,0 +1,11 @@
1
+ model User {
2
+ id String @id @default(uuid())
3
+ username String @unique
4
+ email String @unique
5
+ password_hash String // Hashed password
6
+ is_admin Boolean @default(false)
7
+ is_active Boolean
8
+ must_reset_password Boolean
9
+ created_at DateTime @default(now())
10
+ updated_at DateTime @updatedAt
11
+ }
@@ -0,0 +1,16 @@
1
+ // This is your Prisma schema file,
2
+ // learn more about it in the docs: https://pris.ly/d/prisma-schema
3
+
4
+ // Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
5
+ // Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
6
+
7
+ generator client {
8
+ provider = "prisma-client-js"
9
+ output = "../generated/prisma"
10
+ binaryTargets = ["native", "linux-musl-arm64-openssl-3.0.x"]
11
+ }
12
+
13
+ datasource db {
14
+ provider = "postgresql"
15
+ url = env("DATABASE_URL")
16
+ }