From 90b0192cd279e67fbf901396e368ea3ec3daecf9 Mon Sep 17 00:00:00 2001 From: sauravdhakal12 Date: Sun, 22 Feb 2026 17:27:37 +0545 Subject: [PATCH] feat: Organization operations like invite and accept --- prisma/generated/prisma/commonInputTypes.ts | 68 +-- prisma/generated/prisma/internal/class.ts | 4 +- .../prisma/internal/prismaNamespace.ts | 2 + .../prisma/internal/prismaNamespaceBrowser.ts | 2 + .../generated/prisma/models/Organization.ts | 294 +++++++++++- .../prisma/models/OrganizationJoinRequest.ts | 435 +++++++++++++++++- .../models/OrganizationUserJoinTable.ts | 317 ++++++++++++- prisma/generated/prisma/models/User.ts | 366 ++++++++++++++- .../migration.sql | 20 + .../migration.sql | 2 + .../models/organization-join-request.prisma | 4 + prisma/models/organization-user-join.prisma | 3 + prisma/models/organization.prisma | 3 + prisma/models/user.prisma | 3 + src/auth/guards/auth.guard.ts | 6 + .../dto/invite-to-org.dto.ts | 22 +- .../organization-membership.controller.ts | 62 ++- .../organization-membership.module.ts | 9 +- .../organization-membership.service.ts | 41 +- .../dtos/organization-response.dto.ts | 2 + src/prisma/prisma.service.ts | 2 +- src/user/user.service.ts | 10 +- 22 files changed, 1604 insertions(+), 73 deletions(-) create mode 100644 prisma/migrations/20260222104045_foreign_key_relations/migration.sql create mode 100644 prisma/migrations/20260222105345_default_role_member_in_organization_invite/migration.sql diff --git a/prisma/generated/prisma/commonInputTypes.ts b/prisma/generated/prisma/commonInputTypes.ts index 53fba16..e5a2242 100644 --- a/prisma/generated/prisma/commonInputTypes.ts +++ b/prisma/generated/prisma/commonInputTypes.ts @@ -54,6 +54,13 @@ export type DateTimeFilter<$PrismaModel = never> = { not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string } +export type EnumORG_ROLEFilter<$PrismaModel = never> = { + equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> + in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + not?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> | $Enums.ORG_ROLE +} + export type StringNullableFilter<$PrismaModel = never> = { equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null @@ -126,6 +133,16 @@ export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDateTimeFilter<$PrismaModel> } +export type EnumORG_ROLEWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> + in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + not?: Prisma.NestedEnumORG_ROLEWithAggregatesFilter<$PrismaModel> | $Enums.ORG_ROLE + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> + _max?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> +} + export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null @@ -144,23 +161,6 @@ export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedStringNullableFilter<$PrismaModel> } -export type EnumORG_ROLEFilter<$PrismaModel = never> = { - equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> - in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - not?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> | $Enums.ORG_ROLE -} - -export type EnumORG_ROLEWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> - in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - not?: Prisma.NestedEnumORG_ROLEWithAggregatesFilter<$PrismaModel> | $Enums.ORG_ROLE - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> - _max?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> -} - export type EnumUSER_ROLEFilter<$PrismaModel = never> = { equals?: $Enums.USER_ROLE | Prisma.EnumUSER_ROLEFieldRefInput<$PrismaModel> in?: $Enums.USER_ROLE[] | Prisma.ListEnumUSER_ROLEFieldRefInput<$PrismaModel> @@ -255,6 +255,13 @@ export type NestedDateTimeFilter<$PrismaModel = never> = { not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string } +export type NestedEnumORG_ROLEFilter<$PrismaModel = never> = { + equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> + in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + not?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> | $Enums.ORG_ROLE +} + export type NestedStringNullableFilter<$PrismaModel = never> = { equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null @@ -331,6 +338,16 @@ export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { _max?: Prisma.NestedDateTimeFilter<$PrismaModel> } +export type NestedEnumORG_ROLEWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> + in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> + not?: Prisma.NestedEnumORG_ROLEWithAggregatesFilter<$PrismaModel> | $Enums.ORG_ROLE + _count?: Prisma.NestedIntFilter<$PrismaModel> + _min?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> + _max?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> +} + export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null @@ -359,23 +376,6 @@ export type NestedIntNullableFilter<$PrismaModel = never> = { not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null } -export type NestedEnumORG_ROLEFilter<$PrismaModel = never> = { - equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> - in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - not?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> | $Enums.ORG_ROLE -} - -export type NestedEnumORG_ROLEWithAggregatesFilter<$PrismaModel = never> = { - equals?: $Enums.ORG_ROLE | Prisma.EnumORG_ROLEFieldRefInput<$PrismaModel> - in?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - notIn?: $Enums.ORG_ROLE[] | Prisma.ListEnumORG_ROLEFieldRefInput<$PrismaModel> - not?: Prisma.NestedEnumORG_ROLEWithAggregatesFilter<$PrismaModel> | $Enums.ORG_ROLE - _count?: Prisma.NestedIntFilter<$PrismaModel> - _min?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> - _max?: Prisma.NestedEnumORG_ROLEFilter<$PrismaModel> -} - export type NestedEnumUSER_ROLEFilter<$PrismaModel = never> = { equals?: $Enums.USER_ROLE | Prisma.EnumUSER_ROLEFieldRefInput<$PrismaModel> in?: $Enums.USER_ROLE[] | Prisma.ListEnumUSER_ROLEFieldRefInput<$PrismaModel> diff --git a/prisma/generated/prisma/internal/class.ts b/prisma/generated/prisma/internal/class.ts index b21bd72..b5ee1f3 100644 --- a/prisma/generated/prisma/internal/class.ts +++ b/prisma/generated/prisma/internal/class.ts @@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = { "clientVersion": "7.3.0", "engineVersion": "9d6ad21cbbceab97458517b147a6a09ff43aa735", "activeProvider": "postgresql", - "inlineSchema": "model OrganizationJoinRequest {\n userId String\n orgId String\n status ORGANIZATION_JOIN_REQUEST @default(PENDING)\n requestType ORGANIZATION_JOIN_REQUEST_TYPE\n requestedOn DateTime @default(now())\n rejectReason String?\n\n @@unique([userId, orgId])\n @@map(\"organization_join_request\")\n}\n\nenum ORGANIZATION_JOIN_REQUEST {\n PENDING\n ACCEPTED\n REJECTED\n}\n\nenum ORGANIZATION_JOIN_REQUEST_TYPE {\n INVITED\n REQUESTED\n}\n\nmodel OrganizationUserJoinTable {\n userId String\n orgId String\n role ORG_ROLE @default(member)\n joinedDate DateTime @default(now())\n\n @@unique([userId, orgId])\n @@map(\"organization_user_join\")\n}\n\nenum ORG_ROLE {\n owner\n admin\n member\n}\n\nmodel Organization {\n id String @id @default(uuid())\n name String\n description String?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"organization\")\n}\n\n// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id String @id @default(uuid())\n firstName String\n middleName String?\n lastName String\n email String @unique\n password String\n role USER_ROLE @default(user)\n isVerified Boolean? @default(false) // TODO: Email using queue\n refreshToken String?\n profilePicture String?\n isDeleted Boolean? @default(false)\n deletedAt DateTime?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"user\")\n}\n\nenum USER_ROLE {\n superadmin\n user\n}\n", + "inlineSchema": "model OrganizationJoinRequest {\n userId String\n orgId String\n status ORGANIZATION_JOIN_REQUEST @default(PENDING)\n requestType ORGANIZATION_JOIN_REQUEST_TYPE\n requestedOn DateTime @default(now())\n role ORG_ROLE @default(member)\n updatedAt DateTime @updatedAt\n rejectReason String?\n\n organization Organization @relation(fields: [orgId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([userId, orgId])\n @@map(\"organization_join_request\")\n}\n\nenum ORGANIZATION_JOIN_REQUEST {\n PENDING\n ACCEPTED\n REJECTED\n}\n\nenum ORGANIZATION_JOIN_REQUEST_TYPE {\n INVITED\n REQUESTED\n}\n\nmodel OrganizationUserJoinTable {\n userId String\n orgId String\n role ORG_ROLE @default(member)\n joinedDate DateTime @default(now())\n\n organization Organization @relation(fields: [orgId], references: [id], onDelete: Restrict)\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([userId, orgId])\n @@map(\"organization_user_join\")\n}\n\nenum ORG_ROLE {\n owner\n admin\n member\n}\n\nmodel Organization {\n id String @id @default(uuid())\n name String\n description String?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n members OrganizationUserJoinTable[]\n requestingMembers OrganizationJoinRequest[]\n\n @@map(\"organization\")\n}\n\n// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel User {\n id String @id @default(uuid())\n firstName String\n middleName String?\n lastName String\n email String @unique\n password String\n role USER_ROLE @default(user)\n isVerified Boolean? @default(false) // TODO: Email using queue\n refreshToken String?\n profilePicture String?\n isDeleted Boolean? @default(false)\n deletedAt DateTime?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n organizations OrganizationUserJoinTable[]\n organizationsRequested OrganizationJoinRequest[]\n\n @@map(\"user\")\n}\n\nenum USER_ROLE {\n superadmin\n user\n}\n", "runtimeDataModel": { "models": {}, "enums": {}, @@ -28,7 +28,7 @@ const config: runtime.GetPrismaClientConfig = { } } -config.runtimeDataModel = JSON.parse("{\"models\":{\"OrganizationJoinRequest\":{\"fields\":[{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"orgId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ORGANIZATION_JOIN_REQUEST\"},{\"name\":\"requestType\",\"kind\":\"enum\",\"type\":\"ORGANIZATION_JOIN_REQUEST_TYPE\"},{\"name\":\"requestedOn\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"rejectReason\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":\"organization_join_request\"},\"OrganizationUserJoinTable\":{\"fields\":[{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"orgId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ORG_ROLE\"},{\"name\":\"joinedDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"organization_user_join\"},\"Organization\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"organization\"},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"middleName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"USER_ROLE\"},{\"name\":\"isVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"profilePicture\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isDeleted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"user\"}},\"enums\":{},\"types\":{}}") +config.runtimeDataModel = JSON.parse("{\"models\":{\"OrganizationJoinRequest\":{\"fields\":[{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"orgId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ORGANIZATION_JOIN_REQUEST\"},{\"name\":\"requestType\",\"kind\":\"enum\",\"type\":\"ORGANIZATION_JOIN_REQUEST_TYPE\"},{\"name\":\"requestedOn\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ORG_ROLE\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"rejectReason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organization\",\"kind\":\"object\",\"type\":\"Organization\",\"relationName\":\"OrganizationToOrganizationJoinRequest\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganizationJoinRequestToUser\"}],\"dbName\":\"organization_join_request\"},\"OrganizationUserJoinTable\":{\"fields\":[{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"orgId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ORG_ROLE\"},{\"name\":\"joinedDate\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organization\",\"kind\":\"object\",\"type\":\"Organization\",\"relationName\":\"OrganizationToOrganizationUserJoinTable\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganizationUserJoinTableToUser\"}],\"dbName\":\"organization_user_join\"},\"Organization\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"members\",\"kind\":\"object\",\"type\":\"OrganizationUserJoinTable\",\"relationName\":\"OrganizationToOrganizationUserJoinTable\"},{\"name\":\"requestingMembers\",\"kind\":\"object\",\"type\":\"OrganizationJoinRequest\",\"relationName\":\"OrganizationToOrganizationJoinRequest\"}],\"dbName\":\"organization\"},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"firstName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"middleName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"lastName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"USER_ROLE\"},{\"name\":\"isVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"refreshToken\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"profilePicture\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isDeleted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organizations\",\"kind\":\"object\",\"type\":\"OrganizationUserJoinTable\",\"relationName\":\"OrganizationUserJoinTableToUser\"},{\"name\":\"organizationsRequested\",\"kind\":\"object\",\"type\":\"OrganizationJoinRequest\",\"relationName\":\"OrganizationJoinRequestToUser\"}],\"dbName\":\"user\"}},\"enums\":{},\"types\":{}}") async function decodeBase64AsWasm(wasmBase64: string): Promise { const { Buffer } = await import('node:buffer') diff --git a/prisma/generated/prisma/internal/prismaNamespace.ts b/prisma/generated/prisma/internal/prismaNamespace.ts index f6c25ee..bbdde86 100644 --- a/prisma/generated/prisma/internal/prismaNamespace.ts +++ b/prisma/generated/prisma/internal/prismaNamespace.ts @@ -748,6 +748,8 @@ export const OrganizationJoinRequestScalarFieldEnum = { status: 'status', requestType: 'requestType', requestedOn: 'requestedOn', + role: 'role', + updatedAt: 'updatedAt', rejectReason: 'rejectReason' } as const diff --git a/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts b/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts index a9932fc..1160794 100644 --- a/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts +++ b/prisma/generated/prisma/internal/prismaNamespaceBrowser.ts @@ -79,6 +79,8 @@ export const OrganizationJoinRequestScalarFieldEnum = { status: 'status', requestType: 'requestType', requestedOn: 'requestedOn', + role: 'role', + updatedAt: 'updatedAt', rejectReason: 'rejectReason' } as const diff --git a/prisma/generated/prisma/models/Organization.ts b/prisma/generated/prisma/models/Organization.ts index 894bb62..63e04e1 100644 --- a/prisma/generated/prisma/models/Organization.ts +++ b/prisma/generated/prisma/models/Organization.ts @@ -182,6 +182,8 @@ export type OrganizationWhereInput = { description?: Prisma.StringNullableFilter<"Organization"> | string | null createdAt?: Prisma.DateTimeFilter<"Organization"> | Date | string updatedAt?: Prisma.DateTimeFilter<"Organization"> | Date | string + members?: Prisma.OrganizationUserJoinTableListRelationFilter + requestingMembers?: Prisma.OrganizationJoinRequestListRelationFilter } export type OrganizationOrderByWithRelationInput = { @@ -190,6 +192,8 @@ export type OrganizationOrderByWithRelationInput = { description?: Prisma.SortOrderInput | Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder + members?: Prisma.OrganizationUserJoinTableOrderByRelationAggregateInput + requestingMembers?: Prisma.OrganizationJoinRequestOrderByRelationAggregateInput } export type OrganizationWhereUniqueInput = Prisma.AtLeast<{ @@ -201,6 +205,8 @@ export type OrganizationWhereUniqueInput = Prisma.AtLeast<{ description?: Prisma.StringNullableFilter<"Organization"> | string | null createdAt?: Prisma.DateTimeFilter<"Organization"> | Date | string updatedAt?: Prisma.DateTimeFilter<"Organization"> | Date | string + members?: Prisma.OrganizationUserJoinTableListRelationFilter + requestingMembers?: Prisma.OrganizationJoinRequestListRelationFilter }, "id"> export type OrganizationOrderByWithAggregationInput = { @@ -231,6 +237,8 @@ export type OrganizationCreateInput = { description?: string | null createdAt?: Date | string updatedAt?: Date | string + members?: Prisma.OrganizationUserJoinTableCreateNestedManyWithoutOrganizationInput + requestingMembers?: Prisma.OrganizationJoinRequestCreateNestedManyWithoutOrganizationInput } export type OrganizationUncheckedCreateInput = { @@ -239,6 +247,8 @@ export type OrganizationUncheckedCreateInput = { description?: string | null createdAt?: Date | string updatedAt?: Date | string + members?: Prisma.OrganizationUserJoinTableUncheckedCreateNestedManyWithoutOrganizationInput + requestingMembers?: Prisma.OrganizationJoinRequestUncheckedCreateNestedManyWithoutOrganizationInput } export type OrganizationUpdateInput = { @@ -247,6 +257,8 @@ export type OrganizationUpdateInput = { description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + members?: Prisma.OrganizationUserJoinTableUpdateManyWithoutOrganizationNestedInput + requestingMembers?: Prisma.OrganizationJoinRequestUpdateManyWithoutOrganizationNestedInput } export type OrganizationUncheckedUpdateInput = { @@ -255,6 +267,8 @@ export type OrganizationUncheckedUpdateInput = { description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + members?: Prisma.OrganizationUserJoinTableUncheckedUpdateManyWithoutOrganizationNestedInput + requestingMembers?: Prisma.OrganizationJoinRequestUncheckedUpdateManyWithoutOrganizationNestedInput } export type OrganizationCreateManyInput = { @@ -281,6 +295,11 @@ export type OrganizationUncheckedUpdateManyInput = { updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } +export type OrganizationScalarRelationFilter = { + is?: Prisma.OrganizationWhereInput + isNot?: Prisma.OrganizationWhereInput +} + export type OrganizationCountOrderByAggregateInput = { id?: Prisma.SortOrder name?: Prisma.SortOrder @@ -305,6 +324,176 @@ export type OrganizationMinOrderByAggregateInput = { updatedAt?: Prisma.SortOrder } +export type OrganizationCreateNestedOneWithoutRequestingMembersInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.OrganizationCreateOrConnectWithoutRequestingMembersInput + connect?: Prisma.OrganizationWhereUniqueInput +} + +export type OrganizationUpdateOneRequiredWithoutRequestingMembersNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.OrganizationCreateOrConnectWithoutRequestingMembersInput + upsert?: Prisma.OrganizationUpsertWithoutRequestingMembersInput + connect?: Prisma.OrganizationWhereUniqueInput + update?: Prisma.XOR, Prisma.OrganizationUncheckedUpdateWithoutRequestingMembersInput> +} + +export type OrganizationCreateNestedOneWithoutMembersInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.OrganizationCreateOrConnectWithoutMembersInput + connect?: Prisma.OrganizationWhereUniqueInput +} + +export type OrganizationUpdateOneRequiredWithoutMembersNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.OrganizationCreateOrConnectWithoutMembersInput + upsert?: Prisma.OrganizationUpsertWithoutMembersInput + connect?: Prisma.OrganizationWhereUniqueInput + update?: Prisma.XOR, Prisma.OrganizationUncheckedUpdateWithoutMembersInput> +} + +export type OrganizationCreateWithoutRequestingMembersInput = { + id?: string + name: string + description?: string | null + createdAt?: Date | string + updatedAt?: Date | string + members?: Prisma.OrganizationUserJoinTableCreateNestedManyWithoutOrganizationInput +} + +export type OrganizationUncheckedCreateWithoutRequestingMembersInput = { + id?: string + name: string + description?: string | null + createdAt?: Date | string + updatedAt?: Date | string + members?: Prisma.OrganizationUserJoinTableUncheckedCreateNestedManyWithoutOrganizationInput +} + +export type OrganizationCreateOrConnectWithoutRequestingMembersInput = { + where: Prisma.OrganizationWhereUniqueInput + create: Prisma.XOR +} + +export type OrganizationUpsertWithoutRequestingMembersInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.OrganizationWhereInput +} + +export type OrganizationUpdateToOneWithWhereWithoutRequestingMembersInput = { + where?: Prisma.OrganizationWhereInput + data: Prisma.XOR +} + +export type OrganizationUpdateWithoutRequestingMembersInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + members?: Prisma.OrganizationUserJoinTableUpdateManyWithoutOrganizationNestedInput +} + +export type OrganizationUncheckedUpdateWithoutRequestingMembersInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + members?: Prisma.OrganizationUserJoinTableUncheckedUpdateManyWithoutOrganizationNestedInput +} + +export type OrganizationCreateWithoutMembersInput = { + id?: string + name: string + description?: string | null + createdAt?: Date | string + updatedAt?: Date | string + requestingMembers?: Prisma.OrganizationJoinRequestCreateNestedManyWithoutOrganizationInput +} + +export type OrganizationUncheckedCreateWithoutMembersInput = { + id?: string + name: string + description?: string | null + createdAt?: Date | string + updatedAt?: Date | string + requestingMembers?: Prisma.OrganizationJoinRequestUncheckedCreateNestedManyWithoutOrganizationInput +} + +export type OrganizationCreateOrConnectWithoutMembersInput = { + where: Prisma.OrganizationWhereUniqueInput + create: Prisma.XOR +} + +export type OrganizationUpsertWithoutMembersInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.OrganizationWhereInput +} + +export type OrganizationUpdateToOneWithWhereWithoutMembersInput = { + where?: Prisma.OrganizationWhereInput + data: Prisma.XOR +} + +export type OrganizationUpdateWithoutMembersInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + requestingMembers?: Prisma.OrganizationJoinRequestUpdateManyWithoutOrganizationNestedInput +} + +export type OrganizationUncheckedUpdateWithoutMembersInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + name?: Prisma.StringFieldUpdateOperationsInput | string + description?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + requestingMembers?: Prisma.OrganizationJoinRequestUncheckedUpdateManyWithoutOrganizationNestedInput +} + + +/** + * Count Type OrganizationCountOutputType + */ + +export type OrganizationCountOutputType = { + members: number + requestingMembers: number +} + +export type OrganizationCountOutputTypeSelect = { + members?: boolean | OrganizationCountOutputTypeCountMembersArgs + requestingMembers?: boolean | OrganizationCountOutputTypeCountRequestingMembersArgs +} + +/** + * OrganizationCountOutputType without action + */ +export type OrganizationCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the OrganizationCountOutputType + */ + select?: Prisma.OrganizationCountOutputTypeSelect | null +} + +/** + * OrganizationCountOutputType without action + */ +export type OrganizationCountOutputTypeCountMembersArgs = { + where?: Prisma.OrganizationUserJoinTableWhereInput +} + +/** + * OrganizationCountOutputType without action + */ +export type OrganizationCountOutputTypeCountRequestingMembersArgs = { + where?: Prisma.OrganizationJoinRequestWhereInput +} export type OrganizationSelect = runtime.Types.Extensions.GetSelect<{ @@ -313,6 +502,9 @@ export type OrganizationSelect + requestingMembers?: boolean | Prisma.Organization$requestingMembersArgs + _count?: boolean | Prisma.OrganizationCountOutputTypeDefaultArgs }, ExtArgs["result"]["organization"]> export type OrganizationSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ @@ -340,10 +532,20 @@ export type OrganizationSelectScalar = { } export type OrganizationOmit = runtime.Types.Extensions.GetOmit<"id" | "name" | "description" | "createdAt" | "updatedAt", ExtArgs["result"]["organization"]> +export type OrganizationInclude = { + members?: boolean | Prisma.Organization$membersArgs + requestingMembers?: boolean | Prisma.Organization$requestingMembersArgs + _count?: boolean | Prisma.OrganizationCountOutputTypeDefaultArgs +} +export type OrganizationIncludeCreateManyAndReturn = {} +export type OrganizationIncludeUpdateManyAndReturn = {} export type $OrganizationPayload = { name: "Organization" - objects: {} + objects: { + members: Prisma.$OrganizationUserJoinTablePayload[] + requestingMembers: Prisma.$OrganizationJoinRequestPayload[] + } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string name: string @@ -744,6 +946,8 @@ readonly fields: OrganizationFieldRefs; */ export interface Prisma__OrganizationClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" + members = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + requestingMembers = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -794,6 +998,10 @@ export type OrganizationFindUniqueArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * Filter, which Organization to fetch. */ @@ -812,6 +1020,10 @@ export type OrganizationFindUniqueOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * Filter, which Organization to fetch. */ @@ -830,6 +1042,10 @@ export type OrganizationFindFirstArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * Filter, which Organization to fetch. */ @@ -878,6 +1094,10 @@ export type OrganizationFindFirstOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * Filter, which Organization to fetch. */ @@ -926,6 +1146,10 @@ export type OrganizationFindManyArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * Filter, which Organizations to fetch. */ @@ -969,6 +1193,10 @@ export type OrganizationCreateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * The data needed to create a Organization. */ @@ -1017,6 +1245,10 @@ export type OrganizationUpdateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * The data needed to update a Organization. */ @@ -1083,6 +1315,10 @@ export type OrganizationUpsertArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * The filter to search for the Organization to update in case it exists. */ @@ -1109,6 +1345,10 @@ export type OrganizationDeleteArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null /** * Filter which Organization to delete. */ @@ -1129,6 +1369,54 @@ export type OrganizationDeleteManyArgs = { + /** + * Select specific fields to fetch from the OrganizationUserJoinTable + */ + select?: Prisma.OrganizationUserJoinTableSelect | null + /** + * Omit specific fields from the OrganizationUserJoinTable + */ + omit?: Prisma.OrganizationUserJoinTableOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null + where?: Prisma.OrganizationUserJoinTableWhereInput + orderBy?: Prisma.OrganizationUserJoinTableOrderByWithRelationInput | Prisma.OrganizationUserJoinTableOrderByWithRelationInput[] + cursor?: Prisma.OrganizationUserJoinTableWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.OrganizationUserJoinTableScalarFieldEnum | Prisma.OrganizationUserJoinTableScalarFieldEnum[] +} + +/** + * Organization.requestingMembers + */ +export type Organization$requestingMembersArgs = { + /** + * Select specific fields to fetch from the OrganizationJoinRequest + */ + select?: Prisma.OrganizationJoinRequestSelect | null + /** + * Omit specific fields from the OrganizationJoinRequest + */ + omit?: Prisma.OrganizationJoinRequestOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null + where?: Prisma.OrganizationJoinRequestWhereInput + orderBy?: Prisma.OrganizationJoinRequestOrderByWithRelationInput | Prisma.OrganizationJoinRequestOrderByWithRelationInput[] + cursor?: Prisma.OrganizationJoinRequestWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.OrganizationJoinRequestScalarFieldEnum | Prisma.OrganizationJoinRequestScalarFieldEnum[] +} + /** * Organization without action */ @@ -1141,4 +1429,8 @@ export type OrganizationDefaultArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationInclude | null } diff --git a/prisma/generated/prisma/models/OrganizationJoinRequest.ts b/prisma/generated/prisma/models/OrganizationJoinRequest.ts index 6f4477a..f8b69aa 100644 --- a/prisma/generated/prisma/models/OrganizationJoinRequest.ts +++ b/prisma/generated/prisma/models/OrganizationJoinRequest.ts @@ -30,6 +30,8 @@ export type OrganizationJoinRequestMinAggregateOutputType = { status: $Enums.ORGANIZATION_JOIN_REQUEST | null requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | null requestedOn: Date | null + role: $Enums.ORG_ROLE | null + updatedAt: Date | null rejectReason: string | null } @@ -39,6 +41,8 @@ export type OrganizationJoinRequestMaxAggregateOutputType = { status: $Enums.ORGANIZATION_JOIN_REQUEST | null requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | null requestedOn: Date | null + role: $Enums.ORG_ROLE | null + updatedAt: Date | null rejectReason: string | null } @@ -48,6 +52,8 @@ export type OrganizationJoinRequestCountAggregateOutputType = { status: number requestType: number requestedOn: number + role: number + updatedAt: number rejectReason: number _all: number } @@ -59,6 +65,8 @@ export type OrganizationJoinRequestMinAggregateInputType = { status?: true requestType?: true requestedOn?: true + role?: true + updatedAt?: true rejectReason?: true } @@ -68,6 +76,8 @@ export type OrganizationJoinRequestMaxAggregateInputType = { status?: true requestType?: true requestedOn?: true + role?: true + updatedAt?: true rejectReason?: true } @@ -77,6 +87,8 @@ export type OrganizationJoinRequestCountAggregateInputType = { status?: true requestType?: true requestedOn?: true + role?: true + updatedAt?: true rejectReason?: true _all?: true } @@ -159,6 +171,8 @@ export type OrganizationJoinRequestGroupByOutputType = { status: $Enums.ORGANIZATION_JOIN_REQUEST requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn: Date + role: $Enums.ORG_ROLE + updatedAt: Date rejectReason: string | null _count: OrganizationJoinRequestCountAggregateOutputType | null _min: OrganizationJoinRequestMinAggregateOutputType | null @@ -189,7 +203,11 @@ export type OrganizationJoinRequestWhereInput = { status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Prisma.DateTimeFilter<"OrganizationJoinRequest"> | Date | string + role?: Prisma.EnumORG_ROLEFilter<"OrganizationJoinRequest"> | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFilter<"OrganizationJoinRequest"> | Date | string rejectReason?: Prisma.StringNullableFilter<"OrganizationJoinRequest"> | string | null + organization?: Prisma.XOR + user?: Prisma.XOR } export type OrganizationJoinRequestOrderByWithRelationInput = { @@ -198,7 +216,11 @@ export type OrganizationJoinRequestOrderByWithRelationInput = { status?: Prisma.SortOrder requestType?: Prisma.SortOrder requestedOn?: Prisma.SortOrder + role?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder rejectReason?: Prisma.SortOrderInput | Prisma.SortOrder + organization?: Prisma.OrganizationOrderByWithRelationInput + user?: Prisma.UserOrderByWithRelationInput } export type OrganizationJoinRequestWhereUniqueInput = Prisma.AtLeast<{ @@ -211,7 +233,11 @@ export type OrganizationJoinRequestWhereUniqueInput = Prisma.AtLeast<{ status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Prisma.DateTimeFilter<"OrganizationJoinRequest"> | Date | string + role?: Prisma.EnumORG_ROLEFilter<"OrganizationJoinRequest"> | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFilter<"OrganizationJoinRequest"> | Date | string rejectReason?: Prisma.StringNullableFilter<"OrganizationJoinRequest"> | string | null + organization?: Prisma.XOR + user?: Prisma.XOR }, "userId_orgId"> export type OrganizationJoinRequestOrderByWithAggregationInput = { @@ -220,6 +246,8 @@ export type OrganizationJoinRequestOrderByWithAggregationInput = { status?: Prisma.SortOrder requestType?: Prisma.SortOrder requestedOn?: Prisma.SortOrder + role?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder rejectReason?: Prisma.SortOrderInput | Prisma.SortOrder _count?: Prisma.OrganizationJoinRequestCountOrderByAggregateInput _max?: Prisma.OrganizationJoinRequestMaxOrderByAggregateInput @@ -235,16 +263,20 @@ export type OrganizationJoinRequestScalarWhereWithAggregatesInput = { status?: Prisma.EnumORGANIZATION_JOIN_REQUESTWithAggregatesFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEWithAggregatesFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Prisma.DateTimeWithAggregatesFilter<"OrganizationJoinRequest"> | Date | string + role?: Prisma.EnumORG_ROLEWithAggregatesFilter<"OrganizationJoinRequest"> | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeWithAggregatesFilter<"OrganizationJoinRequest"> | Date | string rejectReason?: Prisma.StringNullableWithAggregatesFilter<"OrganizationJoinRequest"> | string | null } export type OrganizationJoinRequestCreateInput = { - userId: string - orgId: string status?: $Enums.ORGANIZATION_JOIN_REQUEST requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string rejectReason?: string | null + organization: Prisma.OrganizationCreateNestedOneWithoutRequestingMembersInput + user: Prisma.UserCreateNestedOneWithoutOrganizationsRequestedInput } export type OrganizationJoinRequestUncheckedCreateInput = { @@ -253,16 +285,20 @@ export type OrganizationJoinRequestUncheckedCreateInput = { status?: $Enums.ORGANIZATION_JOIN_REQUEST requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string rejectReason?: string | null } export type OrganizationJoinRequestUpdateInput = { - userId?: Prisma.StringFieldUpdateOperationsInput | string - orgId?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + organization?: Prisma.OrganizationUpdateOneRequiredWithoutRequestingMembersNestedInput + user?: Prisma.UserUpdateOneRequiredWithoutOrganizationsRequestedNestedInput } export type OrganizationJoinRequestUncheckedUpdateInput = { @@ -271,6 +307,8 @@ export type OrganizationJoinRequestUncheckedUpdateInput = { status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null } @@ -280,15 +318,17 @@ export type OrganizationJoinRequestCreateManyInput = { status?: $Enums.ORGANIZATION_JOIN_REQUEST requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string rejectReason?: string | null } export type OrganizationJoinRequestUpdateManyMutationInput = { - userId?: Prisma.StringFieldUpdateOperationsInput | string - orgId?: Prisma.StringFieldUpdateOperationsInput | string status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null } @@ -298,6 +338,8 @@ export type OrganizationJoinRequestUncheckedUpdateManyInput = { status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null } @@ -312,6 +354,8 @@ export type OrganizationJoinRequestCountOrderByAggregateInput = { status?: Prisma.SortOrder requestType?: Prisma.SortOrder requestedOn?: Prisma.SortOrder + role?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder rejectReason?: Prisma.SortOrder } @@ -321,6 +365,8 @@ export type OrganizationJoinRequestMaxOrderByAggregateInput = { status?: Prisma.SortOrder requestType?: Prisma.SortOrder requestedOn?: Prisma.SortOrder + role?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder rejectReason?: Prisma.SortOrder } @@ -330,11 +376,19 @@ export type OrganizationJoinRequestMinOrderByAggregateInput = { status?: Prisma.SortOrder requestType?: Prisma.SortOrder requestedOn?: Prisma.SortOrder + role?: Prisma.SortOrder + updatedAt?: Prisma.SortOrder rejectReason?: Prisma.SortOrder } -export type StringFieldUpdateOperationsInput = { - set?: string +export type OrganizationJoinRequestListRelationFilter = { + every?: Prisma.OrganizationJoinRequestWhereInput + some?: Prisma.OrganizationJoinRequestWhereInput + none?: Prisma.OrganizationJoinRequestWhereInput +} + +export type OrganizationJoinRequestOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder } export type EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput = { @@ -349,10 +403,288 @@ export type DateTimeFieldUpdateOperationsInput = { set?: Date | string } +export type EnumORG_ROLEFieldUpdateOperationsInput = { + set?: $Enums.ORG_ROLE +} + export type NullableStringFieldUpdateOperationsInput = { set?: string | null } +export type StringFieldUpdateOperationsInput = { + set?: string +} + +export type OrganizationJoinRequestCreateNestedManyWithoutOrganizationInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutOrganizationInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyOrganizationInputEnvelope + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] +} + +export type OrganizationJoinRequestUncheckedCreateNestedManyWithoutOrganizationInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutOrganizationInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyOrganizationInputEnvelope + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] +} + +export type OrganizationJoinRequestUpdateManyWithoutOrganizationNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutOrganizationInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput[] + upsert?: Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutOrganizationInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyOrganizationInputEnvelope + set?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + disconnect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + delete?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + update?: Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutOrganizationInput[] + updateMany?: Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutOrganizationInput | Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutOrganizationInput[] + deleteMany?: Prisma.OrganizationJoinRequestScalarWhereInput | Prisma.OrganizationJoinRequestScalarWhereInput[] +} + +export type OrganizationJoinRequestUncheckedUpdateManyWithoutOrganizationNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutOrganizationInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput[] + upsert?: Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutOrganizationInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyOrganizationInputEnvelope + set?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + disconnect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + delete?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + update?: Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutOrganizationInput[] + updateMany?: Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutOrganizationInput | Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutOrganizationInput[] + deleteMany?: Prisma.OrganizationJoinRequestScalarWhereInput | Prisma.OrganizationJoinRequestScalarWhereInput[] +} + +export type OrganizationJoinRequestCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutUserInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyUserInputEnvelope + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] +} + +export type OrganizationJoinRequestUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutUserInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyUserInputEnvelope + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] +} + +export type OrganizationJoinRequestUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutUserInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput[] + upsert?: Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutUserInput | Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyUserInputEnvelope + set?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + disconnect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + delete?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + update?: Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutUserInput | Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutUserInput | Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.OrganizationJoinRequestScalarWhereInput | Prisma.OrganizationJoinRequestScalarWhereInput[] +} + +export type OrganizationJoinRequestUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationJoinRequestCreateWithoutUserInput[] | Prisma.OrganizationJoinRequestUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput | Prisma.OrganizationJoinRequestCreateOrConnectWithoutUserInput[] + upsert?: Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutUserInput | Prisma.OrganizationJoinRequestUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.OrganizationJoinRequestCreateManyUserInputEnvelope + set?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + disconnect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + delete?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + connect?: Prisma.OrganizationJoinRequestWhereUniqueInput | Prisma.OrganizationJoinRequestWhereUniqueInput[] + update?: Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutUserInput | Prisma.OrganizationJoinRequestUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutUserInput | Prisma.OrganizationJoinRequestUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.OrganizationJoinRequestScalarWhereInput | Prisma.OrganizationJoinRequestScalarWhereInput[] +} + +export type OrganizationJoinRequestCreateWithoutOrganizationInput = { + status?: $Enums.ORGANIZATION_JOIN_REQUEST + requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string + rejectReason?: string | null + user: Prisma.UserCreateNestedOneWithoutOrganizationsRequestedInput +} + +export type OrganizationJoinRequestUncheckedCreateWithoutOrganizationInput = { + userId: string + status?: $Enums.ORGANIZATION_JOIN_REQUEST + requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string + rejectReason?: string | null +} + +export type OrganizationJoinRequestCreateOrConnectWithoutOrganizationInput = { + where: Prisma.OrganizationJoinRequestWhereUniqueInput + create: Prisma.XOR +} + +export type OrganizationJoinRequestCreateManyOrganizationInputEnvelope = { + data: Prisma.OrganizationJoinRequestCreateManyOrganizationInput | Prisma.OrganizationJoinRequestCreateManyOrganizationInput[] + skipDuplicates?: boolean +} + +export type OrganizationJoinRequestUpsertWithWhereUniqueWithoutOrganizationInput = { + where: Prisma.OrganizationJoinRequestWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type OrganizationJoinRequestUpdateWithWhereUniqueWithoutOrganizationInput = { + where: Prisma.OrganizationJoinRequestWhereUniqueInput + data: Prisma.XOR +} + +export type OrganizationJoinRequestUpdateManyWithWhereWithoutOrganizationInput = { + where: Prisma.OrganizationJoinRequestScalarWhereInput + data: Prisma.XOR +} + +export type OrganizationJoinRequestScalarWhereInput = { + AND?: Prisma.OrganizationJoinRequestScalarWhereInput | Prisma.OrganizationJoinRequestScalarWhereInput[] + OR?: Prisma.OrganizationJoinRequestScalarWhereInput[] + NOT?: Prisma.OrganizationJoinRequestScalarWhereInput | Prisma.OrganizationJoinRequestScalarWhereInput[] + userId?: Prisma.StringFilter<"OrganizationJoinRequest"> | string + orgId?: Prisma.StringFilter<"OrganizationJoinRequest"> | string + status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST + requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFilter<"OrganizationJoinRequest"> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Prisma.DateTimeFilter<"OrganizationJoinRequest"> | Date | string + role?: Prisma.EnumORG_ROLEFilter<"OrganizationJoinRequest"> | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFilter<"OrganizationJoinRequest"> | Date | string + rejectReason?: Prisma.StringNullableFilter<"OrganizationJoinRequest"> | string | null +} + +export type OrganizationJoinRequestCreateWithoutUserInput = { + status?: $Enums.ORGANIZATION_JOIN_REQUEST + requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string + rejectReason?: string | null + organization: Prisma.OrganizationCreateNestedOneWithoutRequestingMembersInput +} + +export type OrganizationJoinRequestUncheckedCreateWithoutUserInput = { + orgId: string + status?: $Enums.ORGANIZATION_JOIN_REQUEST + requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string + rejectReason?: string | null +} + +export type OrganizationJoinRequestCreateOrConnectWithoutUserInput = { + where: Prisma.OrganizationJoinRequestWhereUniqueInput + create: Prisma.XOR +} + +export type OrganizationJoinRequestCreateManyUserInputEnvelope = { + data: Prisma.OrganizationJoinRequestCreateManyUserInput | Prisma.OrganizationJoinRequestCreateManyUserInput[] + skipDuplicates?: boolean +} + +export type OrganizationJoinRequestUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.OrganizationJoinRequestWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type OrganizationJoinRequestUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.OrganizationJoinRequestWhereUniqueInput + data: Prisma.XOR +} + +export type OrganizationJoinRequestUpdateManyWithWhereWithoutUserInput = { + where: Prisma.OrganizationJoinRequestScalarWhereInput + data: Prisma.XOR +} + +export type OrganizationJoinRequestCreateManyOrganizationInput = { + userId: string + status?: $Enums.ORGANIZATION_JOIN_REQUEST + requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string + rejectReason?: string | null +} + +export type OrganizationJoinRequestUpdateWithoutOrganizationInput = { + status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST + requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + user?: Prisma.UserUpdateOneRequiredWithoutOrganizationsRequestedNestedInput +} + +export type OrganizationJoinRequestUncheckedUpdateWithoutOrganizationInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST + requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type OrganizationJoinRequestUncheckedUpdateManyWithoutOrganizationInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST + requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type OrganizationJoinRequestCreateManyUserInput = { + orgId: string + status?: $Enums.ORGANIZATION_JOIN_REQUEST + requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Date | string + role?: $Enums.ORG_ROLE + updatedAt?: Date | string + rejectReason?: string | null +} + +export type OrganizationJoinRequestUpdateWithoutUserInput = { + status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST + requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + organization?: Prisma.OrganizationUpdateOneRequiredWithoutRequestingMembersNestedInput +} + +export type OrganizationJoinRequestUncheckedUpdateWithoutUserInput = { + orgId?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST + requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + +export type OrganizationJoinRequestUncheckedUpdateManyWithoutUserInput = { + orgId?: Prisma.StringFieldUpdateOperationsInput | string + status?: Prisma.EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST + requestType?: Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE + requestedOn?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null +} + export type OrganizationJoinRequestSelect = runtime.Types.Extensions.GetSelect<{ @@ -361,7 +693,11 @@ export type OrganizationJoinRequestSelect + user?: boolean | Prisma.UserDefaultArgs }, ExtArgs["result"]["organizationJoinRequest"]> export type OrganizationJoinRequestSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ @@ -370,7 +706,11 @@ export type OrganizationJoinRequestSelectCreateManyAndReturn + user?: boolean | Prisma.UserDefaultArgs }, ExtArgs["result"]["organizationJoinRequest"]> export type OrganizationJoinRequestSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ @@ -379,7 +719,11 @@ export type OrganizationJoinRequestSelectUpdateManyAndReturn + user?: boolean | Prisma.UserDefaultArgs }, ExtArgs["result"]["organizationJoinRequest"]> export type OrganizationJoinRequestSelectScalar = { @@ -388,20 +732,39 @@ export type OrganizationJoinRequestSelectScalar = { status?: boolean requestType?: boolean requestedOn?: boolean + role?: boolean + updatedAt?: boolean rejectReason?: boolean } -export type OrganizationJoinRequestOmit = runtime.Types.Extensions.GetOmit<"userId" | "orgId" | "status" | "requestType" | "requestedOn" | "rejectReason", ExtArgs["result"]["organizationJoinRequest"]> +export type OrganizationJoinRequestOmit = runtime.Types.Extensions.GetOmit<"userId" | "orgId" | "status" | "requestType" | "requestedOn" | "role" | "updatedAt" | "rejectReason", ExtArgs["result"]["organizationJoinRequest"]> +export type OrganizationJoinRequestInclude = { + organization?: boolean | Prisma.OrganizationDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +} +export type OrganizationJoinRequestIncludeCreateManyAndReturn = { + organization?: boolean | Prisma.OrganizationDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +} +export type OrganizationJoinRequestIncludeUpdateManyAndReturn = { + organization?: boolean | Prisma.OrganizationDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +} export type $OrganizationJoinRequestPayload = { name: "OrganizationJoinRequest" - objects: {} + objects: { + organization: Prisma.$OrganizationPayload + user: Prisma.$UserPayload + } scalars: runtime.Types.Extensions.GetPayloadResult<{ userId: string orgId: string status: $Enums.ORGANIZATION_JOIN_REQUEST requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE requestedOn: Date + role: $Enums.ORG_ROLE + updatedAt: Date rejectReason: string | null }, ExtArgs["result"]["organizationJoinRequest"]> composites: {} @@ -797,6 +1160,8 @@ readonly fields: OrganizationJoinRequestFieldRefs; */ export interface Prisma__OrganizationJoinRequestClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" + organization = {}>(args?: Prisma.Subset>): Prisma.Prisma__OrganizationClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -831,6 +1196,8 @@ export interface OrganizationJoinRequestFieldRefs { readonly status: Prisma.FieldRef<"OrganizationJoinRequest", 'ORGANIZATION_JOIN_REQUEST'> readonly requestType: Prisma.FieldRef<"OrganizationJoinRequest", 'ORGANIZATION_JOIN_REQUEST_TYPE'> readonly requestedOn: Prisma.FieldRef<"OrganizationJoinRequest", 'DateTime'> + readonly role: Prisma.FieldRef<"OrganizationJoinRequest", 'ORG_ROLE'> + readonly updatedAt: Prisma.FieldRef<"OrganizationJoinRequest", 'DateTime'> readonly rejectReason: Prisma.FieldRef<"OrganizationJoinRequest", 'String'> } @@ -848,6 +1215,10 @@ export type OrganizationJoinRequestFindUniqueArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * Filter, which OrganizationJoinRequest to fetch. */ @@ -866,6 +1237,10 @@ export type OrganizationJoinRequestFindUniqueOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * Filter, which OrganizationJoinRequest to fetch. */ @@ -884,6 +1259,10 @@ export type OrganizationJoinRequestFindFirstArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * Filter, which OrganizationJoinRequest to fetch. */ @@ -932,6 +1311,10 @@ export type OrganizationJoinRequestFindFirstOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * Filter, which OrganizationJoinRequest to fetch. */ @@ -980,6 +1363,10 @@ export type OrganizationJoinRequestFindManyArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * Filter, which OrganizationJoinRequests to fetch. */ @@ -1023,6 +1410,10 @@ export type OrganizationJoinRequestCreateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * The data needed to create a OrganizationJoinRequest. */ @@ -1057,6 +1448,10 @@ export type OrganizationJoinRequestCreateManyAndReturnArgs | null } /** @@ -1071,6 +1466,10 @@ export type OrganizationJoinRequestUpdateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * The data needed to update a OrganizationJoinRequest. */ @@ -1123,6 +1522,10 @@ export type OrganizationJoinRequestUpdateManyAndReturnArgs | null } /** @@ -1137,6 +1540,10 @@ export type OrganizationJoinRequestUpsertArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * The filter to search for the OrganizationJoinRequest to update in case it exists. */ @@ -1163,6 +1570,10 @@ export type OrganizationJoinRequestDeleteArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null /** * Filter which OrganizationJoinRequest to delete. */ @@ -1195,4 +1606,8 @@ export type OrganizationJoinRequestDefaultArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null } diff --git a/prisma/generated/prisma/models/OrganizationUserJoinTable.ts b/prisma/generated/prisma/models/OrganizationUserJoinTable.ts index c4f664f..c16c102 100644 --- a/prisma/generated/prisma/models/OrganizationUserJoinTable.ts +++ b/prisma/generated/prisma/models/OrganizationUserJoinTable.ts @@ -174,6 +174,8 @@ export type OrganizationUserJoinTableWhereInput = { orgId?: Prisma.StringFilter<"OrganizationUserJoinTable"> | string role?: Prisma.EnumORG_ROLEFilter<"OrganizationUserJoinTable"> | $Enums.ORG_ROLE joinedDate?: Prisma.DateTimeFilter<"OrganizationUserJoinTable"> | Date | string + organization?: Prisma.XOR + user?: Prisma.XOR } export type OrganizationUserJoinTableOrderByWithRelationInput = { @@ -181,6 +183,8 @@ export type OrganizationUserJoinTableOrderByWithRelationInput = { orgId?: Prisma.SortOrder role?: Prisma.SortOrder joinedDate?: Prisma.SortOrder + organization?: Prisma.OrganizationOrderByWithRelationInput + user?: Prisma.UserOrderByWithRelationInput } export type OrganizationUserJoinTableWhereUniqueInput = Prisma.AtLeast<{ @@ -192,6 +196,8 @@ export type OrganizationUserJoinTableWhereUniqueInput = Prisma.AtLeast<{ orgId?: Prisma.StringFilter<"OrganizationUserJoinTable"> | string role?: Prisma.EnumORG_ROLEFilter<"OrganizationUserJoinTable"> | $Enums.ORG_ROLE joinedDate?: Prisma.DateTimeFilter<"OrganizationUserJoinTable"> | Date | string + organization?: Prisma.XOR + user?: Prisma.XOR }, "userId_orgId"> export type OrganizationUserJoinTableOrderByWithAggregationInput = { @@ -215,10 +221,10 @@ export type OrganizationUserJoinTableScalarWhereWithAggregatesInput = { } export type OrganizationUserJoinTableCreateInput = { - userId: string - orgId: string role?: $Enums.ORG_ROLE joinedDate?: Date | string + organization: Prisma.OrganizationCreateNestedOneWithoutMembersInput + user: Prisma.UserCreateNestedOneWithoutOrganizationsInput } export type OrganizationUserJoinTableUncheckedCreateInput = { @@ -229,10 +235,10 @@ export type OrganizationUserJoinTableUncheckedCreateInput = { } export type OrganizationUserJoinTableUpdateInput = { - userId?: Prisma.StringFieldUpdateOperationsInput | string - orgId?: Prisma.StringFieldUpdateOperationsInput | string role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organization?: Prisma.OrganizationUpdateOneRequiredWithoutMembersNestedInput + user?: Prisma.UserUpdateOneRequiredWithoutOrganizationsNestedInput } export type OrganizationUserJoinTableUncheckedUpdateInput = { @@ -250,8 +256,6 @@ export type OrganizationUserJoinTableCreateManyInput = { } export type OrganizationUserJoinTableUpdateManyMutationInput = { - userId?: Prisma.StringFieldUpdateOperationsInput | string - orgId?: Prisma.StringFieldUpdateOperationsInput | string role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } @@ -289,8 +293,232 @@ export type OrganizationUserJoinTableMinOrderByAggregateInput = { joinedDate?: Prisma.SortOrder } -export type EnumORG_ROLEFieldUpdateOperationsInput = { - set?: $Enums.ORG_ROLE +export type OrganizationUserJoinTableListRelationFilter = { + every?: Prisma.OrganizationUserJoinTableWhereInput + some?: Prisma.OrganizationUserJoinTableWhereInput + none?: Prisma.OrganizationUserJoinTableWhereInput +} + +export type OrganizationUserJoinTableOrderByRelationAggregateInput = { + _count?: Prisma.SortOrder +} + +export type OrganizationUserJoinTableCreateNestedManyWithoutOrganizationInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutOrganizationInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyOrganizationInputEnvelope + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] +} + +export type OrganizationUserJoinTableUncheckedCreateNestedManyWithoutOrganizationInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutOrganizationInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyOrganizationInputEnvelope + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] +} + +export type OrganizationUserJoinTableUpdateManyWithoutOrganizationNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutOrganizationInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput[] + upsert?: Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutOrganizationInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyOrganizationInputEnvelope + set?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + disconnect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + delete?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + update?: Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutOrganizationInput[] + updateMany?: Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutOrganizationInput | Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutOrganizationInput[] + deleteMany?: Prisma.OrganizationUserJoinTableScalarWhereInput | Prisma.OrganizationUserJoinTableScalarWhereInput[] +} + +export type OrganizationUserJoinTableUncheckedUpdateManyWithoutOrganizationNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutOrganizationInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutOrganizationInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput[] + upsert?: Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutOrganizationInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyOrganizationInputEnvelope + set?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + disconnect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + delete?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + update?: Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutOrganizationInput | Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutOrganizationInput[] + updateMany?: Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutOrganizationInput | Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutOrganizationInput[] + deleteMany?: Prisma.OrganizationUserJoinTableScalarWhereInput | Prisma.OrganizationUserJoinTableScalarWhereInput[] +} + +export type OrganizationUserJoinTableCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutUserInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyUserInputEnvelope + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] +} + +export type OrganizationUserJoinTableUncheckedCreateNestedManyWithoutUserInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutUserInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyUserInputEnvelope + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] +} + +export type OrganizationUserJoinTableUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutUserInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput[] + upsert?: Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutUserInput | Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyUserInputEnvelope + set?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + disconnect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + delete?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + update?: Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutUserInput | Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutUserInput | Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.OrganizationUserJoinTableScalarWhereInput | Prisma.OrganizationUserJoinTableScalarWhereInput[] +} + +export type OrganizationUserJoinTableUncheckedUpdateManyWithoutUserNestedInput = { + create?: Prisma.XOR | Prisma.OrganizationUserJoinTableCreateWithoutUserInput[] | Prisma.OrganizationUserJoinTableUncheckedCreateWithoutUserInput[] + connectOrCreate?: Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput | Prisma.OrganizationUserJoinTableCreateOrConnectWithoutUserInput[] + upsert?: Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutUserInput | Prisma.OrganizationUserJoinTableUpsertWithWhereUniqueWithoutUserInput[] + createMany?: Prisma.OrganizationUserJoinTableCreateManyUserInputEnvelope + set?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + disconnect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + delete?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + connect?: Prisma.OrganizationUserJoinTableWhereUniqueInput | Prisma.OrganizationUserJoinTableWhereUniqueInput[] + update?: Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutUserInput | Prisma.OrganizationUserJoinTableUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutUserInput | Prisma.OrganizationUserJoinTableUpdateManyWithWhereWithoutUserInput[] + deleteMany?: Prisma.OrganizationUserJoinTableScalarWhereInput | Prisma.OrganizationUserJoinTableScalarWhereInput[] +} + +export type OrganizationUserJoinTableCreateWithoutOrganizationInput = { + role?: $Enums.ORG_ROLE + joinedDate?: Date | string + user: Prisma.UserCreateNestedOneWithoutOrganizationsInput +} + +export type OrganizationUserJoinTableUncheckedCreateWithoutOrganizationInput = { + userId: string + role?: $Enums.ORG_ROLE + joinedDate?: Date | string +} + +export type OrganizationUserJoinTableCreateOrConnectWithoutOrganizationInput = { + where: Prisma.OrganizationUserJoinTableWhereUniqueInput + create: Prisma.XOR +} + +export type OrganizationUserJoinTableCreateManyOrganizationInputEnvelope = { + data: Prisma.OrganizationUserJoinTableCreateManyOrganizationInput | Prisma.OrganizationUserJoinTableCreateManyOrganizationInput[] + skipDuplicates?: boolean +} + +export type OrganizationUserJoinTableUpsertWithWhereUniqueWithoutOrganizationInput = { + where: Prisma.OrganizationUserJoinTableWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type OrganizationUserJoinTableUpdateWithWhereUniqueWithoutOrganizationInput = { + where: Prisma.OrganizationUserJoinTableWhereUniqueInput + data: Prisma.XOR +} + +export type OrganizationUserJoinTableUpdateManyWithWhereWithoutOrganizationInput = { + where: Prisma.OrganizationUserJoinTableScalarWhereInput + data: Prisma.XOR +} + +export type OrganizationUserJoinTableScalarWhereInput = { + AND?: Prisma.OrganizationUserJoinTableScalarWhereInput | Prisma.OrganizationUserJoinTableScalarWhereInput[] + OR?: Prisma.OrganizationUserJoinTableScalarWhereInput[] + NOT?: Prisma.OrganizationUserJoinTableScalarWhereInput | Prisma.OrganizationUserJoinTableScalarWhereInput[] + userId?: Prisma.StringFilter<"OrganizationUserJoinTable"> | string + orgId?: Prisma.StringFilter<"OrganizationUserJoinTable"> | string + role?: Prisma.EnumORG_ROLEFilter<"OrganizationUserJoinTable"> | $Enums.ORG_ROLE + joinedDate?: Prisma.DateTimeFilter<"OrganizationUserJoinTable"> | Date | string +} + +export type OrganizationUserJoinTableCreateWithoutUserInput = { + role?: $Enums.ORG_ROLE + joinedDate?: Date | string + organization: Prisma.OrganizationCreateNestedOneWithoutMembersInput +} + +export type OrganizationUserJoinTableUncheckedCreateWithoutUserInput = { + orgId: string + role?: $Enums.ORG_ROLE + joinedDate?: Date | string +} + +export type OrganizationUserJoinTableCreateOrConnectWithoutUserInput = { + where: Prisma.OrganizationUserJoinTableWhereUniqueInput + create: Prisma.XOR +} + +export type OrganizationUserJoinTableCreateManyUserInputEnvelope = { + data: Prisma.OrganizationUserJoinTableCreateManyUserInput | Prisma.OrganizationUserJoinTableCreateManyUserInput[] + skipDuplicates?: boolean +} + +export type OrganizationUserJoinTableUpsertWithWhereUniqueWithoutUserInput = { + where: Prisma.OrganizationUserJoinTableWhereUniqueInput + update: Prisma.XOR + create: Prisma.XOR +} + +export type OrganizationUserJoinTableUpdateWithWhereUniqueWithoutUserInput = { + where: Prisma.OrganizationUserJoinTableWhereUniqueInput + data: Prisma.XOR +} + +export type OrganizationUserJoinTableUpdateManyWithWhereWithoutUserInput = { + where: Prisma.OrganizationUserJoinTableScalarWhereInput + data: Prisma.XOR +} + +export type OrganizationUserJoinTableCreateManyOrganizationInput = { + userId: string + role?: $Enums.ORG_ROLE + joinedDate?: Date | string +} + +export type OrganizationUserJoinTableUpdateWithoutOrganizationInput = { + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + user?: Prisma.UserUpdateOneRequiredWithoutOrganizationsNestedInput +} + +export type OrganizationUserJoinTableUncheckedUpdateWithoutOrganizationInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type OrganizationUserJoinTableUncheckedUpdateManyWithoutOrganizationInput = { + userId?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type OrganizationUserJoinTableCreateManyUserInput = { + orgId: string + role?: $Enums.ORG_ROLE + joinedDate?: Date | string +} + +export type OrganizationUserJoinTableUpdateWithoutUserInput = { + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organization?: Prisma.OrganizationUpdateOneRequiredWithoutMembersNestedInput +} + +export type OrganizationUserJoinTableUncheckedUpdateWithoutUserInput = { + orgId?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string +} + +export type OrganizationUserJoinTableUncheckedUpdateManyWithoutUserInput = { + orgId?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumORG_ROLEFieldUpdateOperationsInput | $Enums.ORG_ROLE + joinedDate?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } @@ -300,6 +528,8 @@ export type OrganizationUserJoinTableSelect + user?: boolean | Prisma.UserDefaultArgs }, ExtArgs["result"]["organizationUserJoinTable"]> export type OrganizationUserJoinTableSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ @@ -307,6 +537,8 @@ export type OrganizationUserJoinTableSelectCreateManyAndReturn + user?: boolean | Prisma.UserDefaultArgs }, ExtArgs["result"]["organizationUserJoinTable"]> export type OrganizationUserJoinTableSelectUpdateManyAndReturn = runtime.Types.Extensions.GetSelect<{ @@ -314,6 +546,8 @@ export type OrganizationUserJoinTableSelectUpdateManyAndReturn + user?: boolean | Prisma.UserDefaultArgs }, ExtArgs["result"]["organizationUserJoinTable"]> export type OrganizationUserJoinTableSelectScalar = { @@ -324,10 +558,25 @@ export type OrganizationUserJoinTableSelectScalar = { } export type OrganizationUserJoinTableOmit = runtime.Types.Extensions.GetOmit<"userId" | "orgId" | "role" | "joinedDate", ExtArgs["result"]["organizationUserJoinTable"]> +export type OrganizationUserJoinTableInclude = { + organization?: boolean | Prisma.OrganizationDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +} +export type OrganizationUserJoinTableIncludeCreateManyAndReturn = { + organization?: boolean | Prisma.OrganizationDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +} +export type OrganizationUserJoinTableIncludeUpdateManyAndReturn = { + organization?: boolean | Prisma.OrganizationDefaultArgs + user?: boolean | Prisma.UserDefaultArgs +} export type $OrganizationUserJoinTablePayload = { name: "OrganizationUserJoinTable" - objects: {} + objects: { + organization: Prisma.$OrganizationPayload + user: Prisma.$UserPayload + } scalars: runtime.Types.Extensions.GetPayloadResult<{ userId: string orgId: string @@ -727,6 +976,8 @@ readonly fields: OrganizationUserJoinTableFieldRefs; */ export interface Prisma__OrganizationUserJoinTableClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" + organization = {}>(args?: Prisma.Subset>): Prisma.Prisma__OrganizationClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> + user = {}>(args?: Prisma.Subset>): Prisma.Prisma__UserClient, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -776,6 +1027,10 @@ export type OrganizationUserJoinTableFindUniqueArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * Filter, which OrganizationUserJoinTable to fetch. */ @@ -794,6 +1049,10 @@ export type OrganizationUserJoinTableFindUniqueOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * Filter, which OrganizationUserJoinTable to fetch. */ @@ -812,6 +1071,10 @@ export type OrganizationUserJoinTableFindFirstArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * Filter, which OrganizationUserJoinTable to fetch. */ @@ -860,6 +1123,10 @@ export type OrganizationUserJoinTableFindFirstOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * Filter, which OrganizationUserJoinTable to fetch. */ @@ -908,6 +1175,10 @@ export type OrganizationUserJoinTableFindManyArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * Filter, which OrganizationUserJoinTables to fetch. */ @@ -951,6 +1222,10 @@ export type OrganizationUserJoinTableCreateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * The data needed to create a OrganizationUserJoinTable. */ @@ -985,6 +1260,10 @@ export type OrganizationUserJoinTableCreateManyAndReturnArgs | null } /** @@ -999,6 +1278,10 @@ export type OrganizationUserJoinTableUpdateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * The data needed to update a OrganizationUserJoinTable. */ @@ -1051,6 +1334,10 @@ export type OrganizationUserJoinTableUpdateManyAndReturnArgs | null } /** @@ -1065,6 +1352,10 @@ export type OrganizationUserJoinTableUpsertArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * The filter to search for the OrganizationUserJoinTable to update in case it exists. */ @@ -1091,6 +1382,10 @@ export type OrganizationUserJoinTableDeleteArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null /** * Filter which OrganizationUserJoinTable to delete. */ @@ -1123,4 +1418,8 @@ export type OrganizationUserJoinTableDefaultArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null } diff --git a/prisma/generated/prisma/models/User.ts b/prisma/generated/prisma/models/User.ts index 88f62da..79bcc74 100644 --- a/prisma/generated/prisma/models/User.ts +++ b/prisma/generated/prisma/models/User.ts @@ -254,6 +254,8 @@ export type UserWhereInput = { deletedAt?: Prisma.DateTimeNullableFilter<"User"> | Date | string | null createdAt?: Prisma.DateTimeFilter<"User"> | Date | string updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string + organizations?: Prisma.OrganizationUserJoinTableListRelationFilter + organizationsRequested?: Prisma.OrganizationJoinRequestListRelationFilter } export type UserOrderByWithRelationInput = { @@ -271,6 +273,8 @@ export type UserOrderByWithRelationInput = { deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder createdAt?: Prisma.SortOrder updatedAt?: Prisma.SortOrder + organizations?: Prisma.OrganizationUserJoinTableOrderByRelationAggregateInput + organizationsRequested?: Prisma.OrganizationJoinRequestOrderByRelationAggregateInput } export type UserWhereUniqueInput = Prisma.AtLeast<{ @@ -291,6 +295,8 @@ export type UserWhereUniqueInput = Prisma.AtLeast<{ deletedAt?: Prisma.DateTimeNullableFilter<"User"> | Date | string | null createdAt?: Prisma.DateTimeFilter<"User"> | Date | string updatedAt?: Prisma.DateTimeFilter<"User"> | Date | string + organizations?: Prisma.OrganizationUserJoinTableListRelationFilter + organizationsRequested?: Prisma.OrganizationJoinRequestListRelationFilter }, "id" | "email"> export type UserOrderByWithAggregationInput = { @@ -348,6 +354,8 @@ export type UserCreateInput = { deletedAt?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + organizations?: Prisma.OrganizationUserJoinTableCreateNestedManyWithoutUserInput + organizationsRequested?: Prisma.OrganizationJoinRequestCreateNestedManyWithoutUserInput } export type UserUncheckedCreateInput = { @@ -365,6 +373,8 @@ export type UserUncheckedCreateInput = { deletedAt?: Date | string | null createdAt?: Date | string updatedAt?: Date | string + organizations?: Prisma.OrganizationUserJoinTableUncheckedCreateNestedManyWithoutUserInput + organizationsRequested?: Prisma.OrganizationJoinRequestUncheckedCreateNestedManyWithoutUserInput } export type UserUpdateInput = { @@ -382,6 +392,8 @@ export type UserUpdateInput = { deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organizations?: Prisma.OrganizationUserJoinTableUpdateManyWithoutUserNestedInput + organizationsRequested?: Prisma.OrganizationJoinRequestUpdateManyWithoutUserNestedInput } export type UserUncheckedUpdateInput = { @@ -399,6 +411,8 @@ export type UserUncheckedUpdateInput = { deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organizations?: Prisma.OrganizationUserJoinTableUncheckedUpdateManyWithoutUserNestedInput + organizationsRequested?: Prisma.OrganizationJoinRequestUncheckedUpdateManyWithoutUserNestedInput } export type UserCreateManyInput = { @@ -452,6 +466,11 @@ export type UserUncheckedUpdateManyInput = { updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string } +export type UserScalarRelationFilter = { + is?: Prisma.UserWhereInput + isNot?: Prisma.UserWhereInput +} + export type UserCountOrderByAggregateInput = { id?: Prisma.SortOrder firstName?: Prisma.SortOrder @@ -503,6 +522,34 @@ export type UserMinOrderByAggregateInput = { updatedAt?: Prisma.SortOrder } +export type UserCreateNestedOneWithoutOrganizationsRequestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutOrganizationsRequestedInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutOrganizationsRequestedNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutOrganizationsRequestedInput + upsert?: Prisma.UserUpsertWithoutOrganizationsRequestedInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutOrganizationsRequestedInput> +} + +export type UserCreateNestedOneWithoutOrganizationsInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutOrganizationsInput + connect?: Prisma.UserWhereUniqueInput +} + +export type UserUpdateOneRequiredWithoutOrganizationsNestedInput = { + create?: Prisma.XOR + connectOrCreate?: Prisma.UserCreateOrConnectWithoutOrganizationsInput + upsert?: Prisma.UserUpsertWithoutOrganizationsInput + connect?: Prisma.UserWhereUniqueInput + update?: Prisma.XOR, Prisma.UserUncheckedUpdateWithoutOrganizationsInput> +} + export type EnumUSER_ROLEFieldUpdateOperationsInput = { set?: $Enums.USER_ROLE } @@ -515,6 +562,220 @@ export type NullableDateTimeFieldUpdateOperationsInput = { set?: Date | string | null } +export type UserCreateWithoutOrganizationsRequestedInput = { + id?: string + firstName: string + middleName?: string | null + lastName: string + email: string + password: string + role?: $Enums.USER_ROLE + isVerified?: boolean | null + refreshToken?: string | null + profilePicture?: string | null + isDeleted?: boolean | null + deletedAt?: Date | string | null + createdAt?: Date | string + updatedAt?: Date | string + organizations?: Prisma.OrganizationUserJoinTableCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutOrganizationsRequestedInput = { + id?: string + firstName: string + middleName?: string | null + lastName: string + email: string + password: string + role?: $Enums.USER_ROLE + isVerified?: boolean | null + refreshToken?: string | null + profilePicture?: string | null + isDeleted?: boolean | null + deletedAt?: Date | string | null + createdAt?: Date | string + updatedAt?: Date | string + organizations?: Prisma.OrganizationUserJoinTableUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutOrganizationsRequestedInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutOrganizationsRequestedInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutOrganizationsRequestedInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutOrganizationsRequestedInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + middleName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumUSER_ROLEFieldUpdateOperationsInput | $Enums.USER_ROLE + isVerified?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + refreshToken?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + profilePicture?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isDeleted?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organizations?: Prisma.OrganizationUserJoinTableUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutOrganizationsRequestedInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + middleName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumUSER_ROLEFieldUpdateOperationsInput | $Enums.USER_ROLE + isVerified?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + refreshToken?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + profilePicture?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isDeleted?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organizations?: Prisma.OrganizationUserJoinTableUncheckedUpdateManyWithoutUserNestedInput +} + +export type UserCreateWithoutOrganizationsInput = { + id?: string + firstName: string + middleName?: string | null + lastName: string + email: string + password: string + role?: $Enums.USER_ROLE + isVerified?: boolean | null + refreshToken?: string | null + profilePicture?: string | null + isDeleted?: boolean | null + deletedAt?: Date | string | null + createdAt?: Date | string + updatedAt?: Date | string + organizationsRequested?: Prisma.OrganizationJoinRequestCreateNestedManyWithoutUserInput +} + +export type UserUncheckedCreateWithoutOrganizationsInput = { + id?: string + firstName: string + middleName?: string | null + lastName: string + email: string + password: string + role?: $Enums.USER_ROLE + isVerified?: boolean | null + refreshToken?: string | null + profilePicture?: string | null + isDeleted?: boolean | null + deletedAt?: Date | string | null + createdAt?: Date | string + updatedAt?: Date | string + organizationsRequested?: Prisma.OrganizationJoinRequestUncheckedCreateNestedManyWithoutUserInput +} + +export type UserCreateOrConnectWithoutOrganizationsInput = { + where: Prisma.UserWhereUniqueInput + create: Prisma.XOR +} + +export type UserUpsertWithoutOrganizationsInput = { + update: Prisma.XOR + create: Prisma.XOR + where?: Prisma.UserWhereInput +} + +export type UserUpdateToOneWithWhereWithoutOrganizationsInput = { + where?: Prisma.UserWhereInput + data: Prisma.XOR +} + +export type UserUpdateWithoutOrganizationsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + middleName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumUSER_ROLEFieldUpdateOperationsInput | $Enums.USER_ROLE + isVerified?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + refreshToken?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + profilePicture?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isDeleted?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organizationsRequested?: Prisma.OrganizationJoinRequestUpdateManyWithoutUserNestedInput +} + +export type UserUncheckedUpdateWithoutOrganizationsInput = { + id?: Prisma.StringFieldUpdateOperationsInput | string + firstName?: Prisma.StringFieldUpdateOperationsInput | string + middleName?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + lastName?: Prisma.StringFieldUpdateOperationsInput | string + email?: Prisma.StringFieldUpdateOperationsInput | string + password?: Prisma.StringFieldUpdateOperationsInput | string + role?: Prisma.EnumUSER_ROLEFieldUpdateOperationsInput | $Enums.USER_ROLE + isVerified?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + refreshToken?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + profilePicture?: Prisma.NullableStringFieldUpdateOperationsInput | string | null + isDeleted?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null + deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null + createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string + organizationsRequested?: Prisma.OrganizationJoinRequestUncheckedUpdateManyWithoutUserNestedInput +} + + +/** + * Count Type UserCountOutputType + */ + +export type UserCountOutputType = { + organizations: number + organizationsRequested: number +} + +export type UserCountOutputTypeSelect = { + organizations?: boolean | UserCountOutputTypeCountOrganizationsArgs + organizationsRequested?: boolean | UserCountOutputTypeCountOrganizationsRequestedArgs +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the UserCountOutputType + */ + select?: Prisma.UserCountOutputTypeSelect | null +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountOrganizationsArgs = { + where?: Prisma.OrganizationUserJoinTableWhereInput +} + +/** + * UserCountOutputType without action + */ +export type UserCountOutputTypeCountOrganizationsRequestedArgs = { + where?: Prisma.OrganizationJoinRequestWhereInput +} export type UserSelect = runtime.Types.Extensions.GetSelect<{ @@ -532,6 +793,9 @@ export type UserSelect + organizationsRequested?: boolean | Prisma.User$organizationsRequestedArgs + _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs }, ExtArgs["result"]["user"]> export type UserSelectCreateManyAndReturn = runtime.Types.Extensions.GetSelect<{ @@ -586,10 +850,20 @@ export type UserSelectScalar = { } export type UserOmit = runtime.Types.Extensions.GetOmit<"id" | "firstName" | "middleName" | "lastName" | "email" | "password" | "role" | "isVerified" | "refreshToken" | "profilePicture" | "isDeleted" | "deletedAt" | "createdAt" | "updatedAt", ExtArgs["result"]["user"]> +export type UserInclude = { + organizations?: boolean | Prisma.User$organizationsArgs + organizationsRequested?: boolean | Prisma.User$organizationsRequestedArgs + _count?: boolean | Prisma.UserCountOutputTypeDefaultArgs +} +export type UserIncludeCreateManyAndReturn = {} +export type UserIncludeUpdateManyAndReturn = {} export type $UserPayload = { name: "User" - objects: {} + objects: { + organizations: Prisma.$OrganizationUserJoinTablePayload[] + organizationsRequested: Prisma.$OrganizationJoinRequestPayload[] + } scalars: runtime.Types.Extensions.GetPayloadResult<{ id: string firstName: string @@ -999,6 +1273,8 @@ readonly fields: UserFieldRefs; */ export interface Prisma__UserClient extends Prisma.PrismaPromise { readonly [Symbol.toStringTag]: "PrismaPromise" + organizations = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> + organizationsRequested = {}>(args?: Prisma.Subset>): Prisma.PrismaPromise, T, "findMany", GlobalOmitOptions> | Null> /** * Attaches callbacks for the resolution and/or rejection of the Promise. * @param onfulfilled The callback to execute when the Promise is resolved. @@ -1058,6 +1334,10 @@ export type UserFindUniqueArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * Filter, which User to fetch. */ @@ -1076,6 +1356,10 @@ export type UserFindUniqueOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * Filter, which User to fetch. */ @@ -1094,6 +1378,10 @@ export type UserFindFirstArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * Filter, which User to fetch. */ @@ -1142,6 +1430,10 @@ export type UserFindFirstOrThrowArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * Filter, which User to fetch. */ @@ -1190,6 +1482,10 @@ export type UserFindManyArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * Filter, which Users to fetch. */ @@ -1233,6 +1529,10 @@ export type UserCreateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * The data needed to create a User. */ @@ -1281,6 +1581,10 @@ export type UserUpdateArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * The data needed to update a User. */ @@ -1347,6 +1651,10 @@ export type UserUpsertArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * The filter to search for the User to update in case it exists. */ @@ -1373,6 +1681,10 @@ export type UserDeleteArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null /** * Filter which User to delete. */ @@ -1393,6 +1705,54 @@ export type UserDeleteManyArgs = { + /** + * Select specific fields to fetch from the OrganizationUserJoinTable + */ + select?: Prisma.OrganizationUserJoinTableSelect | null + /** + * Omit specific fields from the OrganizationUserJoinTable + */ + omit?: Prisma.OrganizationUserJoinTableOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationUserJoinTableInclude | null + where?: Prisma.OrganizationUserJoinTableWhereInput + orderBy?: Prisma.OrganizationUserJoinTableOrderByWithRelationInput | Prisma.OrganizationUserJoinTableOrderByWithRelationInput[] + cursor?: Prisma.OrganizationUserJoinTableWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.OrganizationUserJoinTableScalarFieldEnum | Prisma.OrganizationUserJoinTableScalarFieldEnum[] +} + +/** + * User.organizationsRequested + */ +export type User$organizationsRequestedArgs = { + /** + * Select specific fields to fetch from the OrganizationJoinRequest + */ + select?: Prisma.OrganizationJoinRequestSelect | null + /** + * Omit specific fields from the OrganizationJoinRequest + */ + omit?: Prisma.OrganizationJoinRequestOmit | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.OrganizationJoinRequestInclude | null + where?: Prisma.OrganizationJoinRequestWhereInput + orderBy?: Prisma.OrganizationJoinRequestOrderByWithRelationInput | Prisma.OrganizationJoinRequestOrderByWithRelationInput[] + cursor?: Prisma.OrganizationJoinRequestWhereUniqueInput + take?: number + skip?: number + distinct?: Prisma.OrganizationJoinRequestScalarFieldEnum | Prisma.OrganizationJoinRequestScalarFieldEnum[] +} + /** * User without action */ @@ -1405,4 +1765,8 @@ export type UserDefaultArgs | null + /** + * Choose, which related nodes to fetch as well + */ + include?: Prisma.UserInclude | null } diff --git a/prisma/migrations/20260222104045_foreign_key_relations/migration.sql b/prisma/migrations/20260222104045_foreign_key_relations/migration.sql new file mode 100644 index 0000000..60948a3 --- /dev/null +++ b/prisma/migrations/20260222104045_foreign_key_relations/migration.sql @@ -0,0 +1,20 @@ +/* + Warnings: + + - Added the required column `updatedAt` to the `organization_join_request` table without a default value. This is not possible if the table is not empty. + +*/ +-- AlterTable +ALTER TABLE "organization_join_request" ADD COLUMN "updatedAt" TIMESTAMP(3) NOT NULL; + +-- AddForeignKey +ALTER TABLE "organization_join_request" ADD CONSTRAINT "organization_join_request_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "organization"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "organization_join_request" ADD CONSTRAINT "organization_join_request_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "organization_user_join" ADD CONSTRAINT "organization_user_join_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "organization"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "organization_user_join" ADD CONSTRAINT "organization_user_join_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260222105345_default_role_member_in_organization_invite/migration.sql b/prisma/migrations/20260222105345_default_role_member_in_organization_invite/migration.sql new file mode 100644 index 0000000..2942352 --- /dev/null +++ b/prisma/migrations/20260222105345_default_role_member_in_organization_invite/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "organization_join_request" ADD COLUMN "role" "ORG_ROLE" NOT NULL DEFAULT 'member'; diff --git a/prisma/models/organization-join-request.prisma b/prisma/models/organization-join-request.prisma index 37a60d3..9d64d3c 100644 --- a/prisma/models/organization-join-request.prisma +++ b/prisma/models/organization-join-request.prisma @@ -4,9 +4,13 @@ model OrganizationJoinRequest { status ORGANIZATION_JOIN_REQUEST @default(PENDING) requestType ORGANIZATION_JOIN_REQUEST_TYPE requestedOn DateTime @default(now()) + role ORG_ROLE @default(member) updatedAt DateTime @updatedAt rejectReason String? + organization Organization @relation(fields: [orgId], references: [id], onDelete: Cascade) + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + @@unique([userId, orgId]) @@map("organization_join_request") } diff --git a/prisma/models/organization-user-join.prisma b/prisma/models/organization-user-join.prisma index 65c5ed9..2b255b7 100644 --- a/prisma/models/organization-user-join.prisma +++ b/prisma/models/organization-user-join.prisma @@ -4,6 +4,9 @@ model OrganizationUserJoinTable { role ORG_ROLE @default(member) joinedDate DateTime @default(now()) + organization Organization @relation(fields: [orgId], references: [id], onDelete: Restrict) + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + @@unique([userId, orgId]) @@map("organization_user_join") } diff --git a/prisma/models/organization.prisma b/prisma/models/organization.prisma index 6428ca9..0b7d45a 100644 --- a/prisma/models/organization.prisma +++ b/prisma/models/organization.prisma @@ -6,5 +6,8 @@ model Organization { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt + members OrganizationUserJoinTable[] + requestingMembers OrganizationJoinRequest[] + @@map("organization") } diff --git a/prisma/models/user.prisma b/prisma/models/user.prisma index ff420ea..8754aaa 100644 --- a/prisma/models/user.prisma +++ b/prisma/models/user.prisma @@ -15,6 +15,9 @@ model User { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt + organizations OrganizationUserJoinTable[] + organizationsRequested OrganizationJoinRequest[] + @@map("user") } diff --git a/src/auth/guards/auth.guard.ts b/src/auth/guards/auth.guard.ts index 9aa1b8e..f1fffba 100644 --- a/src/auth/guards/auth.guard.ts +++ b/src/auth/guards/auth.guard.ts @@ -10,6 +10,7 @@ import { JwtPayload } from '../types'; import { Request } from 'express'; import { Reflector } from '@nestjs/core'; import { PUBLIC_KEY } from 'common/keys'; +import { UserService } from 'src/user/user.service'; @Injectable() export class AuthGuard implements CanActivate { @@ -17,6 +18,7 @@ export class AuthGuard implements CanActivate { private readonly reflector: Reflector, private readonly jwtService: JwtService, private readonly requestContext: RequestContextService, + private readonly userService: UserService, ) {} async canActivate(context: ExecutionContext) { @@ -35,6 +37,10 @@ export class AuthGuard implements CanActivate { const payload: JwtPayload = await this.jwtService.verifyAsync(token, { secret: 'demo', }); + + // TODO: Redis + Org too, blacklist token + const userExists = await this.userService.findById(payload.userId); + if (!userExists) throw new UnauthorizedException(); this.requestContext.set('user', payload); return true; diff --git a/src/organization-membership/dto/invite-to-org.dto.ts b/src/organization-membership/dto/invite-to-org.dto.ts index 8fb8665..aaf805b 100644 --- a/src/organization-membership/dto/invite-to-org.dto.ts +++ b/src/organization-membership/dto/invite-to-org.dto.ts @@ -1,15 +1,31 @@ -import { IsEnum, IsNotEmpty, IsUUID } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { IsEmail, IsEnum, IsNotEmpty, IsUUID } from 'class-validator'; import { ORG_ROLE } from 'prisma/generated/prisma/enums'; export class InviteUserToOrganizationRequestDTO { - @IsUUID() + @ApiProperty({ + description: 'Who to invite', + example: 'user1@example.com', + type: 'string', + }) + @IsEmail() @IsNotEmpty() - invitedUserId: string; + invitedUserEmail: string; + @ApiProperty({ + description: 'Organization id', + example: 'eeec2c79-766a-4174-8004-2e57642095fe', + type: 'string', + }) @IsUUID() @IsNotEmpty() orgId: string; + @ApiProperty({ + description: 'Role to assign', + example: ORG_ROLE.member, + type: 'string', + }) @IsEnum(ORG_ROLE) @IsNotEmpty() role: ORG_ROLE; diff --git a/src/organization-membership/organization-membership.controller.ts b/src/organization-membership/organization-membership.controller.ts index f2bdec3..ea59ae9 100644 --- a/src/organization-membership/organization-membership.controller.ts +++ b/src/organization-membership/organization-membership.controller.ts @@ -1,4 +1,62 @@ -import { Controller } from '@nestjs/common'; +import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common'; +import { OrganizationMembershipService } from './organization-membership.service'; +import { RequestContextService } from 'core/als/request-context.service'; +import { ApiBearerAuth } from '@nestjs/swagger'; +import { InviteUserToOrganizationRequestDTO } from './dto'; @Controller('organization-membership') -export class OrganizationMembershipController {} +@ApiBearerAuth('access-token') +export class OrganizationMembershipController { + constructor( + private readonly orgMemService: OrganizationMembershipService, + private readonly requestContext: RequestContextService, + ) {} + + @Post('/invite') + async inviteUserToOrg(@Body() body: InviteUserToOrganizationRequestDTO) { + const user = this.requestContext.user; + return await this.orgMemService.inviteUserToOrg(user.userId, body); + } + + @Post('/request') + async requestToJoinOrg() {} + + // TODO: Move invite to org. section and join to user. Also option to cancel invitation and join req. + + /* * + * USER OPERATIONS + * */ + @Patch('user/accept-invitation') + acceptInvitation() {} + + @Patch('user/reject-invitation') + rejectInvitation() {} + + @Get('user/invitations') + async getUserInvitations() { + const user = this.requestContext.user; + return await this.orgMemService.getUserInvitations(user.userId); + } + + @Get('user/organizations') + async getUserOrganizations() {} + + /* * + * ORGANIZATION OPERATIONS + * */ + @Get('organization/:id/members') + async getOrganizationMemebers(@Param('id') orgId: string) { + return await this.orgMemService.getMemebersOfOrganization(orgId); + } + + @Get('organization/:id/invitations') + async getOrganizationInvitations(@Param('id') orgId: string) { + return await this.orgMemService.getMemebersOfOrganization(orgId); + } + + @Patch('organization/:id/accept-request') + acceptJoinRequest() {} + + @Patch('organization/:id/reject-request') + rejectJoinRequest() {} +} diff --git a/src/organization-membership/organization-membership.module.ts b/src/organization-membership/organization-membership.module.ts index d9dcf83..a5f6e8f 100644 --- a/src/organization-membership/organization-membership.module.ts +++ b/src/organization-membership/organization-membership.module.ts @@ -5,10 +5,17 @@ import { OrganizationModule } from 'src/organization/organization.module'; import { UserModule } from 'src/user/user.module'; import { PrismaModule } from 'src/prisma/prisma.module'; import { AuthorizationModule } from 'src/authorization/authorization.module'; +import { RequestContextModule } from 'core/als/request-context.module'; @Module({ controllers: [OrganizationMembershipController], providers: [OrganizationMembershipService], - imports: [OrganizationModule, UserModule, PrismaModule, AuthorizationModule], + imports: [ + OrganizationModule, + UserModule, + PrismaModule, + AuthorizationModule, + RequestContextModule, + ], }) export class OrganizationMembershipModule {} diff --git a/src/organization-membership/organization-membership.service.ts b/src/organization-membership/organization-membership.service.ts index 6bee1cb..2d745ec 100644 --- a/src/organization-membership/organization-membership.service.ts +++ b/src/organization-membership/organization-membership.service.ts @@ -28,9 +28,10 @@ export class OrganizationMembershipService { userId: string, dto: InviteUserToOrganizationRequestDTO, ) { + const { invitedUserEmail, ...rest } = dto; const [orgExists, invitedUser] = await Promise.all([ this.orgService.findById(dto.orgId), - this.userService.getById(dto.invitedUserId), + this.userService.findByEmail(invitedUserEmail), ]); if (!orgExists) throw new NotFoundException('Organization'); @@ -41,10 +42,11 @@ export class OrganizationMembershipService { where: { userId_orgId: { orgId: dto.orgId, - userId, + userId: invitedUser.id, }, }, }); + if (userAlreadyPart) throw new BadRequestException('User already part of this organization'); @@ -58,8 +60,8 @@ export class OrganizationMembershipService { try { const invitation = await this.prisma.organizationJoinRequest.create({ data: { - ...dto, - userId: dto.invitedUserId, + ...rest, + userId: invitedUser.id, requestType: ORGANIZATION_JOIN_REQUEST_TYPE.INVITED, }, }); @@ -69,16 +71,16 @@ export class OrganizationMembershipService { if (err instanceof Prisma.PrismaClientKnownRequestError) { if (err.code === 'P2002') throw new BadRequestException('User invitation already sent.'); + } else { + throw err; } - - throw err; } } requestToJoin() {} // TODO: reject, rejectReason - async acceptInvite(userId: string, orgId: string) { + async acceptInvitation(userId: string, orgId: string) { const orgExists = await this.orgService.findById(orgId); if (!orgExists) throw new NotFoundException('Organization'); @@ -134,7 +136,7 @@ export class OrganizationMembershipService { async getUserInvitations( userId: string, - requestType: ORGANIZATION_JOIN_REQUEST_TYPE, + requestType: ORGANIZATION_JOIN_REQUEST_TYPE = ORGANIZATION_JOIN_REQUEST_TYPE.INVITED, status: ORGANIZATION_JOIN_REQUEST = ORGANIZATION_JOIN_REQUEST.PENDING, ) { return await this.prisma.organizationJoinRequest.findMany({ @@ -143,6 +145,29 @@ export class OrganizationMembershipService { status: status, requestType: requestType, }, + include: { + organization: { + select: { name: true }, + }, + }, + }); + } + + async getMemebersOfOrganization(orgId: string) { + const orgExists = await this.orgService.findById(orgId); + if (!orgExists) throw new NotFoundException('Organization'); + + return await this.prisma.organizationUserJoinTable.findMany({ + where: { + orgId: orgId, + }, + include: { + user: { + select: { + email: true, + }, + }, + }, }); } } diff --git a/src/organization/dtos/organization-response.dto.ts b/src/organization/dtos/organization-response.dto.ts index 1dd226c..a2f0e9e 100644 --- a/src/organization/dtos/organization-response.dto.ts +++ b/src/organization/dtos/organization-response.dto.ts @@ -1,11 +1,13 @@ import { Organization } from 'prisma/generated/prisma/client'; export class OrganizationDTO { + readonly id: string; readonly name: string; readonly description: string | null; readonly createdAt: Date; constructor(organization: Organization) { + this.id = organization.id; this.name = organization.name; this.description = organization.description; this.createdAt = organization.createdAt; diff --git a/src/prisma/prisma.service.ts b/src/prisma/prisma.service.ts index c37b618..cd1a972 100644 --- a/src/prisma/prisma.service.ts +++ b/src/prisma/prisma.service.ts @@ -29,7 +29,7 @@ export class PrismaService super({ adapter: adapter, - log: ['info', 'error', 'warn'], + log: ['info', 'warn'], }); } async onModuleInit() { diff --git a/src/user/user.service.ts b/src/user/user.service.ts index e5aaadc..4e3ac4a 100644 --- a/src/user/user.service.ts +++ b/src/user/user.service.ts @@ -28,7 +28,7 @@ export class UserService { }); } - async getById(id: string) { + async findById(id: string) { return await this.prisma.user.findUnique({ where: { id: id, @@ -36,6 +36,14 @@ export class UserService { }); } + async findByEmail(email: string) { + return await this.prisma.user.findUnique({ + where: { + email: email, + }, + }); + } + async updateRefreshToken(id: string, refreshToken: string) { return await this.prisma.user.update({ where: { id },