feat: Organization services

This commit is contained in:
sauravdhakal12
2026-02-22 15:47:45 +05:45
parent f4c9174752
commit afed1731d2
42 changed files with 862 additions and 17 deletions

View File

@@ -36,6 +36,13 @@ export type EnumORGANIZATION_JOIN_REQUESTFilter<$PrismaModel = never> = {
not?: Prisma.NestedEnumORGANIZATION_JOIN_REQUESTFilter<$PrismaModel> | $Enums.ORGANIZATION_JOIN_REQUEST
}
export type EnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel = never> = {
equals?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
in?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
notIn?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
not?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
}
export type DateTimeFilter<$PrismaModel = never> = {
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
@@ -95,6 +102,16 @@ export type EnumORGANIZATION_JOIN_REQUESTWithAggregatesFilter<$PrismaModel = nev
_max?: Prisma.NestedEnumORGANIZATION_JOIN_REQUESTFilter<$PrismaModel>
}
export type EnumORGANIZATION_JOIN_REQUEST_TYPEWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
in?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
notIn?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
not?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEWithAggregatesFilter<$PrismaModel> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
_count?: Prisma.NestedIntFilter<$PrismaModel>
_min?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel>
_max?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel>
}
export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
@@ -220,6 +237,13 @@ export type NestedEnumORGANIZATION_JOIN_REQUESTFilter<$PrismaModel = never> = {
not?: Prisma.NestedEnumORGANIZATION_JOIN_REQUESTFilter<$PrismaModel> | $Enums.ORGANIZATION_JOIN_REQUEST
}
export type NestedEnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel = never> = {
equals?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
in?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
notIn?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
not?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
}
export type NestedDateTimeFilter<$PrismaModel = never> = {
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>
@@ -283,6 +307,16 @@ export type NestedEnumORGANIZATION_JOIN_REQUESTWithAggregatesFilter<$PrismaModel
_max?: Prisma.NestedEnumORGANIZATION_JOIN_REQUESTFilter<$PrismaModel>
}
export type NestedEnumORGANIZATION_JOIN_REQUEST_TYPEWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | Prisma.EnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
in?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
notIn?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE[] | Prisma.ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel>
not?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEWithAggregatesFilter<$PrismaModel> | $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
_count?: Prisma.NestedIntFilter<$PrismaModel>
_min?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel>
_max?: Prisma.NestedEnumORGANIZATION_JOIN_REQUEST_TYPEFilter<$PrismaModel>
}
export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel>

View File

@@ -18,9 +18,18 @@ export const ORGANIZATION_JOIN_REQUEST = {
export type ORGANIZATION_JOIN_REQUEST = (typeof ORGANIZATION_JOIN_REQUEST)[keyof typeof ORGANIZATION_JOIN_REQUEST]
export const ORGANIZATION_JOIN_REQUEST_TYPE = {
INVITED: 'INVITED',
REQUESTED: 'REQUESTED'
} as const
export type ORGANIZATION_JOIN_REQUEST_TYPE = (typeof ORGANIZATION_JOIN_REQUEST_TYPE)[keyof typeof ORGANIZATION_JOIN_REQUEST_TYPE]
export const ORG_ROLE = {
owner: 'owner',
admin: 'admin',
user: 'user'
member: 'member'
} as const
export type ORG_ROLE = (typeof ORG_ROLE)[keyof typeof ORG_ROLE]
@@ -28,7 +37,7 @@ export type ORG_ROLE = (typeof ORG_ROLE)[keyof typeof ORG_ROLE]
export const USER_ROLE = {
superadmin: 'superadmin',
ordinary: 'ordinary'
user: 'user'
} as const
export type USER_ROLE = (typeof USER_ROLE)[keyof typeof USER_ROLE]

View File

@@ -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 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\nmodel OrganizationUserJoinTable {\n userId String\n orgId String\n role ORG_ROLE @default(user)\n joinedDate DateTime @default(now())\n\n @@unique([userId, orgId])\n @@map(\"organization_user_join\")\n}\n\nenum ORG_ROLE {\n admin\n user\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(ordinary)\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 ordinary\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 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",
"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\":\"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\":\"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\":{}}")
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
const { Buffer } = await import('node:buffer')

View File

@@ -746,6 +746,7 @@ export const OrganizationJoinRequestScalarFieldEnum = {
userId: 'userId',
orgId: 'orgId',
status: 'status',
requestType: 'requestType',
requestedOn: 'requestedOn',
rejectReason: 'rejectReason'
} as const
@@ -852,6 +853,20 @@ export type ListEnumORGANIZATION_JOIN_REQUESTFieldRefInput<$PrismaModel> = Field
/**
* Reference to a field of type 'ORGANIZATION_JOIN_REQUEST_TYPE'
*/
export type EnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ORGANIZATION_JOIN_REQUEST_TYPE'>
/**
* Reference to a field of type 'ORGANIZATION_JOIN_REQUEST_TYPE[]'
*/
export type ListEnumORGANIZATION_JOIN_REQUEST_TYPEFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ORGANIZATION_JOIN_REQUEST_TYPE[]'>
/**
* Reference to a field of type 'DateTime'
*/

View File

@@ -77,6 +77,7 @@ export const OrganizationJoinRequestScalarFieldEnum = {
userId: 'userId',
orgId: 'orgId',
status: 'status',
requestType: 'requestType',
requestedOn: 'requestedOn',
rejectReason: 'rejectReason'
} as const

View File

@@ -28,6 +28,7 @@ export type OrganizationJoinRequestMinAggregateOutputType = {
userId: string | null
orgId: string | null
status: $Enums.ORGANIZATION_JOIN_REQUEST | null
requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | null
requestedOn: Date | null
rejectReason: string | null
}
@@ -36,6 +37,7 @@ export type OrganizationJoinRequestMaxAggregateOutputType = {
userId: string | null
orgId: string | null
status: $Enums.ORGANIZATION_JOIN_REQUEST | null
requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE | null
requestedOn: Date | null
rejectReason: string | null
}
@@ -44,6 +46,7 @@ export type OrganizationJoinRequestCountAggregateOutputType = {
userId: number
orgId: number
status: number
requestType: number
requestedOn: number
rejectReason: number
_all: number
@@ -54,6 +57,7 @@ export type OrganizationJoinRequestMinAggregateInputType = {
userId?: true
orgId?: true
status?: true
requestType?: true
requestedOn?: true
rejectReason?: true
}
@@ -62,6 +66,7 @@ export type OrganizationJoinRequestMaxAggregateInputType = {
userId?: true
orgId?: true
status?: true
requestType?: true
requestedOn?: true
rejectReason?: true
}
@@ -70,6 +75,7 @@ export type OrganizationJoinRequestCountAggregateInputType = {
userId?: true
orgId?: true
status?: true
requestType?: true
requestedOn?: true
rejectReason?: true
_all?: true
@@ -151,6 +157,7 @@ export type OrganizationJoinRequestGroupByOutputType = {
userId: string
orgId: string
status: $Enums.ORGANIZATION_JOIN_REQUEST
requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
requestedOn: Date
rejectReason: string | null
_count: OrganizationJoinRequestCountAggregateOutputType | null
@@ -180,6 +187,7 @@ export type OrganizationJoinRequestWhereInput = {
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
rejectReason?: Prisma.StringNullableFilter<"OrganizationJoinRequest"> | string | null
}
@@ -188,6 +196,7 @@ export type OrganizationJoinRequestOrderByWithRelationInput = {
userId?: Prisma.SortOrder
orgId?: Prisma.SortOrder
status?: Prisma.SortOrder
requestType?: Prisma.SortOrder
requestedOn?: Prisma.SortOrder
rejectReason?: Prisma.SortOrderInput | Prisma.SortOrder
}
@@ -200,6 +209,7 @@ export type OrganizationJoinRequestWhereUniqueInput = Prisma.AtLeast<{
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
rejectReason?: Prisma.StringNullableFilter<"OrganizationJoinRequest"> | string | null
}, "userId_orgId">
@@ -208,6 +218,7 @@ export type OrganizationJoinRequestOrderByWithAggregationInput = {
userId?: Prisma.SortOrder
orgId?: Prisma.SortOrder
status?: Prisma.SortOrder
requestType?: Prisma.SortOrder
requestedOn?: Prisma.SortOrder
rejectReason?: Prisma.SortOrderInput | Prisma.SortOrder
_count?: Prisma.OrganizationJoinRequestCountOrderByAggregateInput
@@ -222,6 +233,7 @@ export type OrganizationJoinRequestScalarWhereWithAggregatesInput = {
userId?: Prisma.StringWithAggregatesFilter<"OrganizationJoinRequest"> | string
orgId?: Prisma.StringWithAggregatesFilter<"OrganizationJoinRequest"> | string
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
rejectReason?: Prisma.StringNullableWithAggregatesFilter<"OrganizationJoinRequest"> | string | null
}
@@ -230,6 +242,7 @@ export type OrganizationJoinRequestCreateInput = {
userId: string
orgId: string
status?: $Enums.ORGANIZATION_JOIN_REQUEST
requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
requestedOn?: Date | string
rejectReason?: string | null
}
@@ -238,6 +251,7 @@ export type OrganizationJoinRequestUncheckedCreateInput = {
userId: string
orgId: string
status?: $Enums.ORGANIZATION_JOIN_REQUEST
requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
requestedOn?: Date | string
rejectReason?: string | null
}
@@ -246,6 +260,7 @@ 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
rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}
@@ -254,6 +269,7 @@ export type OrganizationJoinRequestUncheckedUpdateInput = {
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
rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}
@@ -262,6 +278,7 @@ export type OrganizationJoinRequestCreateManyInput = {
userId: string
orgId: string
status?: $Enums.ORGANIZATION_JOIN_REQUEST
requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
requestedOn?: Date | string
rejectReason?: string | null
}
@@ -270,6 +287,7 @@ 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
rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}
@@ -278,6 +296,7 @@ export type OrganizationJoinRequestUncheckedUpdateManyInput = {
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
rejectReason?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}
@@ -291,6 +310,7 @@ export type OrganizationJoinRequestCountOrderByAggregateInput = {
userId?: Prisma.SortOrder
orgId?: Prisma.SortOrder
status?: Prisma.SortOrder
requestType?: Prisma.SortOrder
requestedOn?: Prisma.SortOrder
rejectReason?: Prisma.SortOrder
}
@@ -299,6 +319,7 @@ export type OrganizationJoinRequestMaxOrderByAggregateInput = {
userId?: Prisma.SortOrder
orgId?: Prisma.SortOrder
status?: Prisma.SortOrder
requestType?: Prisma.SortOrder
requestedOn?: Prisma.SortOrder
rejectReason?: Prisma.SortOrder
}
@@ -307,6 +328,7 @@ export type OrganizationJoinRequestMinOrderByAggregateInput = {
userId?: Prisma.SortOrder
orgId?: Prisma.SortOrder
status?: Prisma.SortOrder
requestType?: Prisma.SortOrder
requestedOn?: Prisma.SortOrder
rejectReason?: Prisma.SortOrder
}
@@ -319,6 +341,10 @@ export type EnumORGANIZATION_JOIN_REQUESTFieldUpdateOperationsInput = {
set?: $Enums.ORGANIZATION_JOIN_REQUEST
}
export type EnumORGANIZATION_JOIN_REQUEST_TYPEFieldUpdateOperationsInput = {
set?: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
}
export type DateTimeFieldUpdateOperationsInput = {
set?: Date | string
}
@@ -333,6 +359,7 @@ export type OrganizationJoinRequestSelect<ExtArgs extends runtime.Types.Extensio
userId?: boolean
orgId?: boolean
status?: boolean
requestType?: boolean
requestedOn?: boolean
rejectReason?: boolean
}, ExtArgs["result"]["organizationJoinRequest"]>
@@ -341,6 +368,7 @@ export type OrganizationJoinRequestSelectCreateManyAndReturn<ExtArgs extends run
userId?: boolean
orgId?: boolean
status?: boolean
requestType?: boolean
requestedOn?: boolean
rejectReason?: boolean
}, ExtArgs["result"]["organizationJoinRequest"]>
@@ -349,6 +377,7 @@ export type OrganizationJoinRequestSelectUpdateManyAndReturn<ExtArgs extends run
userId?: boolean
orgId?: boolean
status?: boolean
requestType?: boolean
requestedOn?: boolean
rejectReason?: boolean
}, ExtArgs["result"]["organizationJoinRequest"]>
@@ -357,11 +386,12 @@ export type OrganizationJoinRequestSelectScalar = {
userId?: boolean
orgId?: boolean
status?: boolean
requestType?: boolean
requestedOn?: boolean
rejectReason?: boolean
}
export type OrganizationJoinRequestOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"userId" | "orgId" | "status" | "requestedOn" | "rejectReason", ExtArgs["result"]["organizationJoinRequest"]>
export type OrganizationJoinRequestOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"userId" | "orgId" | "status" | "requestType" | "requestedOn" | "rejectReason", ExtArgs["result"]["organizationJoinRequest"]>
export type $OrganizationJoinRequestPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
name: "OrganizationJoinRequest"
@@ -370,6 +400,7 @@ export type $OrganizationJoinRequestPayload<ExtArgs extends runtime.Types.Extens
userId: string
orgId: string
status: $Enums.ORGANIZATION_JOIN_REQUEST
requestType: $Enums.ORGANIZATION_JOIN_REQUEST_TYPE
requestedOn: Date
rejectReason: string | null
}, ExtArgs["result"]["organizationJoinRequest"]>
@@ -798,6 +829,7 @@ export interface OrganizationJoinRequestFieldRefs {
readonly userId: Prisma.FieldRef<"OrganizationJoinRequest", 'String'>
readonly orgId: Prisma.FieldRef<"OrganizationJoinRequest", 'String'>
readonly status: Prisma.FieldRef<"OrganizationJoinRequest", 'ORGANIZATION_JOIN_REQUEST'>
readonly requestType: Prisma.FieldRef<"OrganizationJoinRequest", 'ORGANIZATION_JOIN_REQUEST_TYPE'>
readonly requestedOn: Prisma.FieldRef<"OrganizationJoinRequest", 'DateTime'>
readonly rejectReason: Prisma.FieldRef<"OrganizationJoinRequest", 'String'>
}

View File

@@ -0,0 +1,35 @@
/*
Warnings:
- The values [user] on the enum `ORG_ROLE` will be removed. If these variants are still used in the database, this will fail.
- The values [ordinary] on the enum `USER_ROLE` will be removed. If these variants are still used in the database, this will fail.
*/
-- AlterEnum
BEGIN;
CREATE TYPE "ORG_ROLE_new" AS ENUM ('owner', 'admin', 'member');
ALTER TABLE "public"."organization_user_join" ALTER COLUMN "role" DROP DEFAULT;
ALTER TABLE "organization_user_join" ALTER COLUMN "role" TYPE "ORG_ROLE_new" USING ("role"::text::"ORG_ROLE_new");
ALTER TYPE "ORG_ROLE" RENAME TO "ORG_ROLE_old";
ALTER TYPE "ORG_ROLE_new" RENAME TO "ORG_ROLE";
DROP TYPE "public"."ORG_ROLE_old";
ALTER TABLE "organization_user_join" ALTER COLUMN "role" SET DEFAULT 'member';
COMMIT;
-- AlterEnum
BEGIN;
CREATE TYPE "USER_ROLE_new" AS ENUM ('superadmin', 'user');
ALTER TABLE "public"."user" ALTER COLUMN "role" DROP DEFAULT;
ALTER TABLE "user" ALTER COLUMN "role" TYPE "USER_ROLE_new" USING ("role"::text::"USER_ROLE_new");
ALTER TYPE "USER_ROLE" RENAME TO "USER_ROLE_old";
ALTER TYPE "USER_ROLE_new" RENAME TO "USER_ROLE";
DROP TYPE "public"."USER_ROLE_old";
ALTER TABLE "user" ALTER COLUMN "role" SET DEFAULT 'user';
COMMIT;
-- AlterTable
ALTER TABLE "organization_user_join" ALTER COLUMN "role" SET DEFAULT 'member';
-- AlterTable
ALTER TABLE "user" ALTER COLUMN "role" SET DEFAULT 'user';

View File

@@ -0,0 +1 @@
-- This is an empty migration.

View File

@@ -0,0 +1,11 @@
/*
Warnings:
- Added the required column `requestType` to the `organization_join_request` table without a default value. This is not possible if the table is not empty.
*/
-- CreateEnum
CREATE TYPE "ORGANIZATION_JOIN_REQUEST_TYPE" AS ENUM ('INVITED', 'REQUESTED');
-- AlterTable
ALTER TABLE "organization_join_request" ADD COLUMN "requestType" "ORGANIZATION_JOIN_REQUEST_TYPE" NOT NULL;

View File

@@ -1,8 +1,10 @@
model OrganizationJoinRequest {
userId String
orgId String
status ORGANIZATION_JOIN_REQUEST @default(PENDING)
requestedOn DateTime @default(now())
status ORGANIZATION_JOIN_REQUEST @default(PENDING)
requestType ORGANIZATION_JOIN_REQUEST_TYPE
requestedOn DateTime @default(now())
updatedAt DateTime @updatedAt
rejectReason String?
@@unique([userId, orgId])
@@ -14,3 +16,8 @@ enum ORGANIZATION_JOIN_REQUEST {
ACCEPTED
REJECTED
}
enum ORGANIZATION_JOIN_REQUEST_TYPE {
INVITED
REQUESTED
}

View File

@@ -1,7 +1,7 @@
model OrganizationUserJoinTable {
userId String
orgId String
role ORG_ROLE @default(user)
role ORG_ROLE @default(member)
joinedDate DateTime @default(now())
@@unique([userId, orgId])
@@ -9,6 +9,7 @@ model OrganizationUserJoinTable {
}
enum ORG_ROLE {
owner
admin
user
member
}

View File

@@ -5,7 +5,7 @@ model User {
lastName String
email String @unique
password String
role USER_ROLE @default(ordinary)
role USER_ROLE @default(user)
isVerified Boolean? @default(false) // TODO: Email using queue
refreshToken String?
profilePicture String?
@@ -20,5 +20,5 @@ model User {
enum USER_ROLE {
superadmin
ordinary
user
}