This commit is contained in:
2025-12-14 21:26:47 +11:00
parent a3e95627c8
commit 2045e40cee
25 changed files with 6131 additions and 104 deletions

View File

@@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = {
"clientVersion": "7.1.0",
"engineVersion": "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba",
"activeProvider": "sqlite",
"inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\ngenerator prismabox {\n provider = \"prismabox\"\n typeboxImportDependencyName = \"elysia\"\n typeboxImportVariableName = \"t\"\n inputModel = true\n output = \"../generated/prismabox\"\n}\n\nmodel User {\n id String @id @default(cuid())\n email String @unique\n username String @unique\n}\n",
"inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\ngenerator prismabox {\n provider = \"prismabox\"\n typeboxImportDependencyName = \"elysia\"\n typeboxImportVariableName = \"t\"\n inputModel = true\n output = \"../generated/prismabox\"\n}\n\nmodel User {\n id String @id @default(cuid())\n email String @unique\n username String @unique\n password String\n createdAt DateTime @default(now())\n messages Message[] @relation(\"UserMessages\")\n conversationMemberships ConversationParticipant[] @relation(\"UserConversations\")\n}\n\nmodel Conversation {\n id String @id @default(cuid())\n createdAt DateTime @default(now())\n participants ConversationParticipant[] @relation(\"ConversationParticipants\")\n messages Message[] @relation(\"ConversationMessages\")\n}\n\nmodel ConversationParticipant {\n id String @id @default(cuid())\n conversationId String\n userId String\n conversation Conversation @relation(\"ConversationParticipants\", fields: [conversationId], references: [id], onDelete: Cascade)\n user User @relation(\"UserConversations\", fields: [userId], references: [id], onDelete: Cascade)\n lastReadAt DateTime?\n\n @@unique([conversationId, userId])\n @@index([userId])\n}\n\nmodel Message {\n id String @id @default(cuid())\n conversationId String\n senderId String\n content String\n createdAt DateTime @default(now())\n conversation Conversation @relation(\"ConversationMessages\", fields: [conversationId], references: [id], onDelete: Cascade)\n sender User @relation(\"UserMessages\", fields: [senderId], references: [id], onDelete: Cascade)\n\n @@index([conversationId, createdAt])\n}\n",
"runtimeDataModel": {
"models": {},
"enums": {},
@@ -28,7 +28,7 @@ const config: runtime.GetPrismaClientConfig = {
}
}
config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"username\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"messages\",\"kind\":\"object\",\"type\":\"Message\",\"relationName\":\"UserMessages\"},{\"name\":\"conversationMemberships\",\"kind\":\"object\",\"type\":\"ConversationParticipant\",\"relationName\":\"UserConversations\"}],\"dbName\":null},\"Conversation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"participants\",\"kind\":\"object\",\"type\":\"ConversationParticipant\",\"relationName\":\"ConversationParticipants\"},{\"name\":\"messages\",\"kind\":\"object\",\"type\":\"Message\",\"relationName\":\"ConversationMessages\"}],\"dbName\":null},\"ConversationParticipant\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"conversationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"conversation\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ConversationParticipants\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserConversations\"},{\"name\":\"lastReadAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Message\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"conversationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"senderId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"content\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"conversation\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ConversationMessages\"},{\"name\":\"sender\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserMessages\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
const { Buffer } = await import('node:buffer')
@@ -183,6 +183,36 @@ export interface PrismaClient<
* ```
*/
get user(): Prisma.UserDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.conversation`: Exposes CRUD operations for the **Conversation** model.
* Example usage:
* ```ts
* // Fetch zero or more Conversations
* const conversations = await prisma.conversation.findMany()
* ```
*/
get conversation(): Prisma.ConversationDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.conversationParticipant`: Exposes CRUD operations for the **ConversationParticipant** model.
* Example usage:
* ```ts
* // Fetch zero or more ConversationParticipants
* const conversationParticipants = await prisma.conversationParticipant.findMany()
* ```
*/
get conversationParticipant(): Prisma.ConversationParticipantDelegate<ExtArgs, { omit: OmitOpts }>;
/**
* `prisma.message`: Exposes CRUD operations for the **Message** model.
* Example usage:
* ```ts
* // Fetch zero or more Messages
* const messages = await prisma.message.findMany()
* ```
*/
get message(): Prisma.MessageDelegate<ExtArgs, { omit: OmitOpts }>;
}
export function getPrismaClientClass(): PrismaClientConstructor {

View File

@@ -384,7 +384,10 @@ type FieldRefInputType<Model, FieldType> = Model extends never ? never : FieldRe
export const ModelName = {
User: 'User'
User: 'User',
Conversation: 'Conversation',
ConversationParticipant: 'ConversationParticipant',
Message: 'Message'
} as const
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
@@ -400,7 +403,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
omit: GlobalOmitOptions
}
meta: {
modelProps: "user"
modelProps: "user" | "conversation" | "conversationParticipant" | "message"
txIsolationLevel: TransactionIsolationLevel
}
model: {
@@ -478,6 +481,228 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
}
}
}
Conversation: {
payload: Prisma.$ConversationPayload<ExtArgs>
fields: Prisma.ConversationFieldRefs
operations: {
findUnique: {
args: Prisma.ConversationFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload> | null
}
findUniqueOrThrow: {
args: Prisma.ConversationFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>
}
findFirst: {
args: Prisma.ConversationFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload> | null
}
findFirstOrThrow: {
args: Prisma.ConversationFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>
}
findMany: {
args: Prisma.ConversationFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>[]
}
create: {
args: Prisma.ConversationCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>
}
createMany: {
args: Prisma.ConversationCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.ConversationCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>[]
}
delete: {
args: Prisma.ConversationDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>
}
update: {
args: Prisma.ConversationUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>
}
deleteMany: {
args: Prisma.ConversationDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.ConversationUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.ConversationUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>[]
}
upsert: {
args: Prisma.ConversationUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationPayload>
}
aggregate: {
args: Prisma.ConversationAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateConversation>
}
groupBy: {
args: Prisma.ConversationGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.ConversationGroupByOutputType>[]
}
count: {
args: Prisma.ConversationCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.ConversationCountAggregateOutputType> | number
}
}
}
ConversationParticipant: {
payload: Prisma.$ConversationParticipantPayload<ExtArgs>
fields: Prisma.ConversationParticipantFieldRefs
operations: {
findUnique: {
args: Prisma.ConversationParticipantFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload> | null
}
findUniqueOrThrow: {
args: Prisma.ConversationParticipantFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>
}
findFirst: {
args: Prisma.ConversationParticipantFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload> | null
}
findFirstOrThrow: {
args: Prisma.ConversationParticipantFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>
}
findMany: {
args: Prisma.ConversationParticipantFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>[]
}
create: {
args: Prisma.ConversationParticipantCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>
}
createMany: {
args: Prisma.ConversationParticipantCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.ConversationParticipantCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>[]
}
delete: {
args: Prisma.ConversationParticipantDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>
}
update: {
args: Prisma.ConversationParticipantUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>
}
deleteMany: {
args: Prisma.ConversationParticipantDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.ConversationParticipantUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.ConversationParticipantUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>[]
}
upsert: {
args: Prisma.ConversationParticipantUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$ConversationParticipantPayload>
}
aggregate: {
args: Prisma.ConversationParticipantAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateConversationParticipant>
}
groupBy: {
args: Prisma.ConversationParticipantGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.ConversationParticipantGroupByOutputType>[]
}
count: {
args: Prisma.ConversationParticipantCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.ConversationParticipantCountAggregateOutputType> | number
}
}
}
Message: {
payload: Prisma.$MessagePayload<ExtArgs>
fields: Prisma.MessageFieldRefs
operations: {
findUnique: {
args: Prisma.MessageFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload> | null
}
findUniqueOrThrow: {
args: Prisma.MessageFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>
}
findFirst: {
args: Prisma.MessageFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload> | null
}
findFirstOrThrow: {
args: Prisma.MessageFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>
}
findMany: {
args: Prisma.MessageFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>[]
}
create: {
args: Prisma.MessageCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>
}
createMany: {
args: Prisma.MessageCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.MessageCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>[]
}
delete: {
args: Prisma.MessageDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>
}
update: {
args: Prisma.MessageUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>
}
deleteMany: {
args: Prisma.MessageDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.MessageUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.MessageUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>[]
}
upsert: {
args: Prisma.MessageUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$MessagePayload>
}
aggregate: {
args: Prisma.MessageAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateMessage>
}
groupBy: {
args: Prisma.MessageGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.MessageGroupByOutputType>[]
}
count: {
args: Prisma.MessageCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.MessageCountAggregateOutputType> | number
}
}
}
}
} & {
other: {
@@ -517,12 +742,43 @@ export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof
export const UserScalarFieldEnum = {
id: 'id',
email: 'email',
username: 'username'
username: 'username',
password: 'password',
createdAt: 'createdAt'
} as const
export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]
export const ConversationScalarFieldEnum = {
id: 'id',
createdAt: 'createdAt'
} as const
export type ConversationScalarFieldEnum = (typeof ConversationScalarFieldEnum)[keyof typeof ConversationScalarFieldEnum]
export const ConversationParticipantScalarFieldEnum = {
id: 'id',
conversationId: 'conversationId',
userId: 'userId',
lastReadAt: 'lastReadAt'
} as const
export type ConversationParticipantScalarFieldEnum = (typeof ConversationParticipantScalarFieldEnum)[keyof typeof ConversationParticipantScalarFieldEnum]
export const MessageScalarFieldEnum = {
id: 'id',
conversationId: 'conversationId',
senderId: 'senderId',
content: 'content',
createdAt: 'createdAt'
} as const
export type MessageScalarFieldEnum = (typeof MessageScalarFieldEnum)[keyof typeof MessageScalarFieldEnum]
export const SortOrder = {
asc: 'asc',
desc: 'desc'
@@ -531,6 +787,14 @@ export const SortOrder = {
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
export const NullsOrder = {
first: 'first',
last: 'last'
} as const
export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]
/**
* Field references
@@ -544,6 +808,13 @@ export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel,
/**
* Reference to a field of type 'DateTime'
*/
export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'>
/**
* Reference to a field of type 'Int'
*/
@@ -646,6 +917,9 @@ export type PrismaClientOptions = ({
}
export type GlobalOmitConfig = {
user?: Prisma.UserOmit
conversation?: Prisma.ConversationOmit
conversationParticipant?: Prisma.ConversationParticipantOmit
message?: Prisma.MessageOmit
}
/* Types for Logging */

View File

@@ -51,7 +51,10 @@ export const AnyNull = runtime.AnyNull
export const ModelName = {
User: 'User'
User: 'User',
Conversation: 'Conversation',
ConversationParticipant: 'ConversationParticipant',
Message: 'Message'
} as const
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
@@ -70,12 +73,43 @@ export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof
export const UserScalarFieldEnum = {
id: 'id',
email: 'email',
username: 'username'
username: 'username',
password: 'password',
createdAt: 'createdAt'
} as const
export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]
export const ConversationScalarFieldEnum = {
id: 'id',
createdAt: 'createdAt'
} as const
export type ConversationScalarFieldEnum = (typeof ConversationScalarFieldEnum)[keyof typeof ConversationScalarFieldEnum]
export const ConversationParticipantScalarFieldEnum = {
id: 'id',
conversationId: 'conversationId',
userId: 'userId',
lastReadAt: 'lastReadAt'
} as const
export type ConversationParticipantScalarFieldEnum = (typeof ConversationParticipantScalarFieldEnum)[keyof typeof ConversationParticipantScalarFieldEnum]
export const MessageScalarFieldEnum = {
id: 'id',
conversationId: 'conversationId',
senderId: 'senderId',
content: 'content',
createdAt: 'createdAt'
} as const
export type MessageScalarFieldEnum = (typeof MessageScalarFieldEnum)[keyof typeof MessageScalarFieldEnum]
export const SortOrder = {
asc: 'asc',
desc: 'desc'
@@ -83,3 +117,11 @@ export const SortOrder = {
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
export const NullsOrder = {
first: 'first',
last: 'last'
} as const
export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]