From 65fb6816cac5df6b642b98ccd279c519260adbe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=5BQuy=20Anh=5D=20=C2=ABElliot=C2=BB=20Nguyen?= Date: Wed, 24 Jun 2026 15:34:09 +0200 Subject: [PATCH] --- --- README.md | 456 ++ backend/.dockerignore | 3 + backend/.editorconfig | 10 + backend/.env.example | 11 + backend/.gitignore | 2 + backend/Dockerfile | 5 + backend/README.md | 1 + backend/env.d.ts | 19 + backend/package-lock.json | 5603 ++++++++++++++ backend/package.json | 54 + .../prisma/generated/type-graphql/enhance.ts | 638 ++ .../enums/DownvoteScalarFieldEnum.ts | 10 + .../type-graphql/enums/NullsOrder.ts | 10 + .../type-graphql/enums/PostScalarFieldEnum.ts | 15 + .../generated/type-graphql/enums/QueryMode.ts | 10 + .../ResetPasswordTokenScalarFieldEnum.ts | 11 + .../generated/type-graphql/enums/SortOrder.ts | 10 + .../enums/TransactionIsolationLevel.ts | 12 + .../enums/UpvoteScalarFieldEnum.ts | 10 + .../type-graphql/enums/UserScalarFieldEnum.ts | 14 + .../generated/type-graphql/enums/index.ts | 9 + .../prisma/generated/type-graphql/helpers.ts | 61 + .../prisma/generated/type-graphql/index.ts | 23 + .../generated/type-graphql/models/Downvote.ts | 17 + .../generated/type-graphql/models/Post.ts | 45 + .../type-graphql/models/ResetPasswordToken.ts | 22 + .../generated/type-graphql/models/Upvote.ts | 17 + .../generated/type-graphql/models/User.ts | 46 + .../generated/type-graphql/models/index.ts | 5 + .../Downvote/AggregateDownvoteResolver.ts | 19 + .../CreateManyAndReturnDownvoteResolver.ts | 20 + .../Downvote/CreateManyDownvoteResolver.ts | 20 + .../Downvote/CreateOneDownvoteResolver.ts | 19 + .../Downvote/DeleteManyDownvoteResolver.ts | 20 + .../Downvote/DeleteOneDownvoteResolver.ts | 19 + .../crud/Downvote/DownvoteCrudResolver.ts | 192 + .../FindFirstDownvoteOrThrowResolver.ts | 19 + .../Downvote/FindFirstDownvoteResolver.ts | 19 + .../crud/Downvote/FindManyDownvoteResolver.ts | 19 + .../FindUniqueDownvoteOrThrowResolver.ts | 19 + .../Downvote/FindUniqueDownvoteResolver.ts | 19 + .../crud/Downvote/GroupByDownvoteResolver.ts | 22 + .../Downvote/UpdateManyDownvoteResolver.ts | 20 + .../Downvote/UpdateOneDownvoteResolver.ts | 19 + .../Downvote/UpsertOneDownvoteResolver.ts | 19 + .../Downvote/args/AggregateDownvoteArgs.ts | 33 + .../args/CreateManyAndReturnDownvoteArgs.ts | 16 + .../Downvote/args/CreateManyDownvoteArgs.ts | 16 + .../Downvote/args/CreateOneDownvoteArgs.ts | 11 + .../Downvote/args/DeleteManyDownvoteArgs.ts | 11 + .../Downvote/args/DeleteOneDownvoteArgs.ts | 11 + .../Downvote/args/FindFirstDownvoteArgs.ts | 39 + .../args/FindFirstDownvoteOrThrowArgs.ts | 39 + .../Downvote/args/FindManyDownvoteArgs.ts | 39 + .../Downvote/args/FindUniqueDownvoteArgs.ts | 11 + .../args/FindUniqueDownvoteOrThrowArgs.ts | 11 + .../crud/Downvote/args/GroupByDownvoteArgs.ts | 39 + .../Downvote/args/UpdateManyDownvoteArgs.ts | 17 + .../Downvote/args/UpdateOneDownvoteArgs.ts | 17 + .../Downvote/args/UpsertOneDownvoteArgs.ts | 23 + .../resolvers/crud/Downvote/args/index.ts | 15 + .../crud/Post/AggregatePostResolver.ts | 19 + .../Post/CreateManyAndReturnPostResolver.ts | 20 + .../crud/Post/CreateManyPostResolver.ts | 20 + .../crud/Post/CreateOnePostResolver.ts | 19 + .../crud/Post/DeleteManyPostResolver.ts | 20 + .../crud/Post/DeleteOnePostResolver.ts | 19 + .../crud/Post/FindFirstPostOrThrowResolver.ts | 19 + .../crud/Post/FindFirstPostResolver.ts | 19 + .../crud/Post/FindManyPostResolver.ts | 19 + .../Post/FindUniquePostOrThrowResolver.ts | 19 + .../crud/Post/FindUniquePostResolver.ts | 19 + .../crud/Post/GroupByPostResolver.ts | 22 + .../resolvers/crud/Post/PostCrudResolver.ts | 192 + .../crud/Post/UpdateManyPostResolver.ts | 20 + .../crud/Post/UpdateOnePostResolver.ts | 19 + .../crud/Post/UpsertOnePostResolver.ts | 19 + .../crud/Post/args/AggregatePostArgs.ts | 33 + .../Post/args/CreateManyAndReturnPostArgs.ts | 16 + .../crud/Post/args/CreateManyPostArgs.ts | 16 + .../crud/Post/args/CreateOnePostArgs.ts | 11 + .../crud/Post/args/DeleteManyPostArgs.ts | 11 + .../crud/Post/args/DeleteOnePostArgs.ts | 11 + .../crud/Post/args/FindFirstPostArgs.ts | 39 + .../Post/args/FindFirstPostOrThrowArgs.ts | 39 + .../crud/Post/args/FindManyPostArgs.ts | 39 + .../crud/Post/args/FindUniquePostArgs.ts | 11 + .../Post/args/FindUniquePostOrThrowArgs.ts | 11 + .../crud/Post/args/GroupByPostArgs.ts | 39 + .../crud/Post/args/UpdateManyPostArgs.ts | 17 + .../crud/Post/args/UpdateOnePostArgs.ts | 17 + .../crud/Post/args/UpsertOnePostArgs.ts | 23 + .../resolvers/crud/Post/args/index.ts | 15 + .../AggregateResetPasswordTokenResolver.ts | 19 + ...ManyAndReturnResetPasswordTokenResolver.ts | 20 + .../CreateManyResetPasswordTokenResolver.ts | 20 + .../CreateOneResetPasswordTokenResolver.ts | 19 + .../DeleteManyResetPasswordTokenResolver.ts | 20 + .../DeleteOneResetPasswordTokenResolver.ts | 19 + ...dFirstResetPasswordTokenOrThrowResolver.ts | 19 + .../FindFirstResetPasswordTokenResolver.ts | 19 + .../FindManyResetPasswordTokenResolver.ts | 19 + ...UniqueResetPasswordTokenOrThrowResolver.ts | 19 + .../FindUniqueResetPasswordTokenResolver.ts | 19 + .../GroupByResetPasswordTokenResolver.ts | 22 + .../ResetPasswordTokenCrudResolver.ts | 192 + .../UpdateManyResetPasswordTokenResolver.ts | 20 + .../UpdateOneResetPasswordTokenResolver.ts | 19 + .../UpsertOneResetPasswordTokenResolver.ts | 19 + .../args/AggregateResetPasswordTokenArgs.ts | 33 + ...eateManyAndReturnResetPasswordTokenArgs.ts | 16 + .../args/CreateManyResetPasswordTokenArgs.ts | 16 + .../args/CreateOneResetPasswordTokenArgs.ts | 11 + .../args/DeleteManyResetPasswordTokenArgs.ts | 11 + .../args/DeleteOneResetPasswordTokenArgs.ts | 11 + .../args/FindFirstResetPasswordTokenArgs.ts | 39 + .../FindFirstResetPasswordTokenOrThrowArgs.ts | 39 + .../args/FindManyResetPasswordTokenArgs.ts | 39 + .../args/FindUniqueResetPasswordTokenArgs.ts | 11 + ...FindUniqueResetPasswordTokenOrThrowArgs.ts | 11 + .../args/GroupByResetPasswordTokenArgs.ts | 39 + .../args/UpdateManyResetPasswordTokenArgs.ts | 17 + .../args/UpdateOneResetPasswordTokenArgs.ts | 17 + .../args/UpsertOneResetPasswordTokenArgs.ts | 23 + .../crud/ResetPasswordToken/args/index.ts | 15 + .../crud/Upvote/AggregateUpvoteResolver.ts | 19 + .../CreateManyAndReturnUpvoteResolver.ts | 20 + .../crud/Upvote/CreateManyUpvoteResolver.ts | 20 + .../crud/Upvote/CreateOneUpvoteResolver.ts | 19 + .../crud/Upvote/DeleteManyUpvoteResolver.ts | 20 + .../crud/Upvote/DeleteOneUpvoteResolver.ts | 19 + .../Upvote/FindFirstUpvoteOrThrowResolver.ts | 19 + .../crud/Upvote/FindFirstUpvoteResolver.ts | 19 + .../crud/Upvote/FindManyUpvoteResolver.ts | 19 + .../Upvote/FindUniqueUpvoteOrThrowResolver.ts | 19 + .../crud/Upvote/FindUniqueUpvoteResolver.ts | 19 + .../crud/Upvote/GroupByUpvoteResolver.ts | 22 + .../crud/Upvote/UpdateManyUpvoteResolver.ts | 20 + .../crud/Upvote/UpdateOneUpvoteResolver.ts | 19 + .../crud/Upvote/UpsertOneUpvoteResolver.ts | 19 + .../crud/Upvote/UpvoteCrudResolver.ts | 192 + .../crud/Upvote/args/AggregateUpvoteArgs.ts | 33 + .../args/CreateManyAndReturnUpvoteArgs.ts | 16 + .../crud/Upvote/args/CreateManyUpvoteArgs.ts | 16 + .../crud/Upvote/args/CreateOneUpvoteArgs.ts | 11 + .../crud/Upvote/args/DeleteManyUpvoteArgs.ts | 11 + .../crud/Upvote/args/DeleteOneUpvoteArgs.ts | 11 + .../crud/Upvote/args/FindFirstUpvoteArgs.ts | 39 + .../Upvote/args/FindFirstUpvoteOrThrowArgs.ts | 39 + .../crud/Upvote/args/FindManyUpvoteArgs.ts | 39 + .../crud/Upvote/args/FindUniqueUpvoteArgs.ts | 11 + .../args/FindUniqueUpvoteOrThrowArgs.ts | 11 + .../crud/Upvote/args/GroupByUpvoteArgs.ts | 39 + .../crud/Upvote/args/UpdateManyUpvoteArgs.ts | 17 + .../crud/Upvote/args/UpdateOneUpvoteArgs.ts | 17 + .../crud/Upvote/args/UpsertOneUpvoteArgs.ts | 23 + .../resolvers/crud/Upvote/args/index.ts | 15 + .../crud/User/AggregateUserResolver.ts | 19 + .../User/CreateManyAndReturnUserResolver.ts | 20 + .../crud/User/CreateManyUserResolver.ts | 20 + .../crud/User/CreateOneUserResolver.ts | 19 + .../crud/User/DeleteManyUserResolver.ts | 20 + .../crud/User/DeleteOneUserResolver.ts | 19 + .../crud/User/FindFirstUserOrThrowResolver.ts | 19 + .../crud/User/FindFirstUserResolver.ts | 19 + .../crud/User/FindManyUserResolver.ts | 19 + .../User/FindUniqueUserOrThrowResolver.ts | 19 + .../crud/User/FindUniqueUserResolver.ts | 19 + .../crud/User/GroupByUserResolver.ts | 22 + .../crud/User/UpdateManyUserResolver.ts | 20 + .../crud/User/UpdateOneUserResolver.ts | 19 + .../crud/User/UpsertOneUserResolver.ts | 19 + .../resolvers/crud/User/UserCrudResolver.ts | 192 + .../crud/User/args/AggregateUserArgs.ts | 33 + .../User/args/CreateManyAndReturnUserArgs.ts | 16 + .../crud/User/args/CreateManyUserArgs.ts | 16 + .../crud/User/args/CreateOneUserArgs.ts | 11 + .../crud/User/args/DeleteManyUserArgs.ts | 11 + .../crud/User/args/DeleteOneUserArgs.ts | 11 + .../crud/User/args/FindFirstUserArgs.ts | 39 + .../User/args/FindFirstUserOrThrowArgs.ts | 39 + .../crud/User/args/FindManyUserArgs.ts | 39 + .../crud/User/args/FindUniqueUserArgs.ts | 11 + .../User/args/FindUniqueUserOrThrowArgs.ts | 11 + .../crud/User/args/GroupByUserArgs.ts | 39 + .../crud/User/args/UpdateManyUserArgs.ts | 17 + .../crud/User/args/UpdateOneUserArgs.ts | 17 + .../crud/User/args/UpsertOneUserArgs.ts | 23 + .../resolvers/crud/User/args/index.ts | 15 + .../type-graphql/resolvers/crud/args.index.ts | 5 + .../type-graphql/resolvers/crud/index.ts | 3 + .../resolvers/crud/resolvers-actions.index.ts | 75 + .../resolvers/crud/resolvers-crud.index.ts | 5 + .../DateTimeFieldUpdateOperationsInput.ts | 12 + .../resolvers/inputs/DateTimeFilter.ts | 48 + .../inputs/DateTimeWithAggregatesFilter.ts | 65 + .../DownvoteCountOrderByAggregateInput.ts | 18 + .../resolvers/inputs/DownvoteCreateInput.ts | 17 + .../inputs/DownvoteCreateManyInput.ts | 17 + .../DownvoteMaxOrderByAggregateInput.ts | 18 + .../DownvoteMinOrderByAggregateInput.ts | 18 + .../DownvoteOrderByWithAggregationInput.ts | 36 + .../DownvoteOrderByWithRelationInput.ts | 18 + .../DownvoteScalarWhereWithAggregatesInput.ts | 33 + .../resolvers/inputs/DownvoteUpdateInput.ts | 18 + .../inputs/DownvoteUpdateManyMutationInput.ts | 18 + ...DownvoteUserIDPostIDCompoundUniqueInput.ts | 17 + .../resolvers/inputs/DownvoteWhereInput.ts | 33 + .../inputs/DownvoteWhereUniqueInput.ts | 40 + .../inputs/IntFieldUpdateOperationsInput.ts | 32 + .../resolvers/inputs/IntFilter.ts | 48 + .../inputs/IntWithAggregatesFilter.ts | 75 + .../resolvers/inputs/NestedDateTimeFilter.ts | 47 + .../NestedDateTimeWithAggregatesFilter.ts | 64 + .../resolvers/inputs/NestedFloatFilter.ts | 47 + .../resolvers/inputs/NestedIntFilter.ts | 47 + .../inputs/NestedIntNullableFilter.ts | 47 + .../inputs/NestedIntWithAggregatesFilter.ts | 74 + .../resolvers/inputs/NestedStringFilter.ts | 62 + .../inputs/NestedStringNullableFilter.ts | 62 + ...estedStringNullableWithAggregatesFilter.ts | 79 + .../NestedStringWithAggregatesFilter.ts | 79 + ...ullableStringFieldUpdateOperationsInput.ts | 12 + .../inputs/PostAvgOrderByAggregateInput.ts | 13 + .../inputs/PostCountOrderByAggregateInput.ts | 43 + .../resolvers/inputs/PostCreateInput.ts | 43 + .../inputs/PostCreateManyAuthorInput.ts | 37 + .../PostCreateManyAuthorInputEnvelope.ts | 18 + .../resolvers/inputs/PostCreateManyInput.ts | 42 + .../PostCreateNestedManyWithoutAuthorInput.ts | 31 + .../PostCreateOrConnectWithoutAuthorInput.ts | 19 + .../inputs/PostCreateWithoutAuthorInput.ts | 37 + .../inputs/PostListRelationFilter.ts | 23 + .../inputs/PostMaxOrderByAggregateInput.ts | 43 + .../inputs/PostMinOrderByAggregateInput.ts | 43 + .../PostOrderByRelationAggregateInput.ts | 13 + .../inputs/PostOrderByWithAggregationInput.ts | 74 + .../inputs/PostOrderByWithRelationInput.ts | 50 + .../resolvers/inputs/PostScalarWhereInput.ts | 61 + .../PostScalarWhereWithAggregatesInput.ts | 61 + .../inputs/PostSumOrderByAggregateInput.ts | 13 + .../resolvers/inputs/PostUpdateInput.ts | 47 + .../inputs/PostUpdateManyMutationInput.ts | 41 + ...stUpdateManyWithWhereWithoutAuthorInput.ts | 19 + .../PostUpdateManyWithoutAuthorNestedInput.ts | 70 + ...UpdateWithWhereUniqueWithoutAuthorInput.ts | 19 + .../inputs/PostUpdateWithoutAuthorInput.ts | 41 + ...UpsertWithWhereUniqueWithoutAuthorInput.ts | 25 + .../resolvers/inputs/PostWhereInput.ts | 67 + .../resolvers/inputs/PostWhereUniqueInput.ts | 67 + ...PasswordTokenCountOrderByAggregateInput.ts | 23 + .../inputs/ResetPasswordTokenCreateInput.ts | 22 + .../ResetPasswordTokenCreateManyInput.ts | 22 + ...etPasswordTokenMaxOrderByAggregateInput.ts | 23 + ...etPasswordTokenMinOrderByAggregateInput.ts | 23 + ...asswordTokenOrderByWithAggregationInput.ts | 41 + ...etPasswordTokenOrderByWithRelationInput.ts | 23 + ...wordTokenScalarWhereWithAggregatesInput.ts | 38 + .../inputs/ResetPasswordTokenUpdateInput.ts | 23 + ...setPasswordTokenUpdateManyMutationInput.ts | 23 + ...wordTokenUserIDValueCompoundUniqueInput.ts | 17 + .../inputs/ResetPasswordTokenWhereInput.ts | 38 + .../ResetPasswordTokenWhereUniqueInput.ts | 45 + .../resolvers/inputs/SortOrderInput.ts | 19 + .../StringFieldUpdateOperationsInput.ts | 12 + .../resolvers/inputs/StringFilter.ts | 69 + .../resolvers/inputs/StringNullableFilter.ts | 69 + .../StringNullableWithAggregatesFilter.ts | 86 + .../inputs/StringWithAggregatesFilter.ts | 86 + .../UpvoteCountOrderByAggregateInput.ts | 18 + .../resolvers/inputs/UpvoteCreateInput.ts | 17 + .../resolvers/inputs/UpvoteCreateManyInput.ts | 17 + .../inputs/UpvoteMaxOrderByAggregateInput.ts | 18 + .../inputs/UpvoteMinOrderByAggregateInput.ts | 18 + .../UpvoteOrderByWithAggregationInput.ts | 36 + .../inputs/UpvoteOrderByWithRelationInput.ts | 18 + .../UpvoteScalarWhereWithAggregatesInput.ts | 33 + .../resolvers/inputs/UpvoteUpdateInput.ts | 18 + .../inputs/UpvoteUpdateManyMutationInput.ts | 18 + .../UpvoteUserIDPostIDCompoundUniqueInput.ts | 17 + .../resolvers/inputs/UpvoteWhereInput.ts | 33 + .../inputs/UpvoteWhereUniqueInput.ts | 40 + .../inputs/UserCountOrderByAggregateInput.ts | 38 + .../resolvers/inputs/UserCreateInput.ts | 43 + .../resolvers/inputs/UserCreateManyInput.ts | 37 + .../UserCreateNestedOneWithoutPostsInput.ts | 25 + .../UserCreateOrConnectWithoutPostsInput.ts | 19 + .../inputs/UserCreateWithoutPostsInput.ts | 37 + .../inputs/UserMaxOrderByAggregateInput.ts | 38 + .../inputs/UserMinOrderByAggregateInput.ts | 38 + .../inputs/UserOrderByWithAggregationInput.ts | 57 + .../inputs/UserOrderByWithRelationInput.ts | 45 + .../resolvers/inputs/UserRelationFilter.ts | 18 + .../UserScalarWhereWithAggregatesInput.ts | 55 + .../resolvers/inputs/UserUpdateInput.ts | 46 + .../inputs/UserUpdateManyMutationInput.ts | 40 + ...pdateOneRequiredWithoutPostsNestedInput.ts | 37 + ...erUpdateToOneWithWhereWithoutPostsInput.ts | 19 + .../inputs/UserUpdateWithoutPostsInput.ts | 40 + .../inputs/UserUpsertWithoutPostsInput.ts | 25 + .../resolvers/inputs/UserWhereInput.ts | 61 + .../resolvers/inputs/UserWhereUniqueInput.ts | 61 + .../type-graphql/resolvers/inputs/index.ts | 109 + .../resolvers/outputs/AffectedRowsOutput.ts | 12 + .../resolvers/outputs/AggregateDownvote.ts | 25 + .../resolvers/outputs/AggregatePost.ts | 37 + .../outputs/AggregateResetPasswordToken.ts | 25 + .../resolvers/outputs/AggregateUpvote.ts | 25 + .../resolvers/outputs/AggregateUser.ts | 25 + .../outputs/CreateManyAndReturnDownvote.ts | 17 + .../outputs/CreateManyAndReturnPost.ts | 48 + .../CreateManyAndReturnResetPasswordToken.ts | 22 + .../outputs/CreateManyAndReturnUpvote.ts | 17 + .../outputs/CreateManyAndReturnUser.ts | 37 + .../outputs/DownvoteCountAggregate.ts | 22 + .../resolvers/outputs/DownvoteGroupBy.ts | 35 + .../resolvers/outputs/DownvoteMaxAggregate.ts | 17 + .../resolvers/outputs/DownvoteMinAggregate.ts | 17 + .../resolvers/outputs/PostAvgAggregate.ts | 12 + .../resolvers/outputs/PostCountAggregate.ts | 47 + .../resolvers/outputs/PostGroupBy.ts | 72 + .../resolvers/outputs/PostMaxAggregate.ts | 42 + .../resolvers/outputs/PostMinAggregate.ts | 42 + .../resolvers/outputs/PostSumAggregate.ts | 12 + .../ResetPasswordTokenCountAggregate.ts | 27 + .../outputs/ResetPasswordTokenGroupBy.ts | 40 + .../outputs/ResetPasswordTokenMaxAggregate.ts | 22 + .../outputs/ResetPasswordTokenMinAggregate.ts | 22 + .../resolvers/outputs/UpvoteCountAggregate.ts | 22 + .../resolvers/outputs/UpvoteGroupBy.ts | 35 + .../resolvers/outputs/UpvoteMaxAggregate.ts | 17 + .../resolvers/outputs/UpvoteMinAggregate.ts | 17 + .../resolvers/outputs/UserCount.ts | 18 + .../resolvers/outputs/UserCountAggregate.ts | 42 + .../resolvers/outputs/UserGroupBy.ts | 55 + .../resolvers/outputs/UserMaxAggregate.ts | 37 + .../resolvers/outputs/UserMinAggregate.ts | 37 + .../outputs/args/UserCountPostsArgs.ts | 11 + .../resolvers/outputs/args/index.ts | 1 + .../type-graphql/resolvers/outputs/index.ts | 35 + .../relations/Post/PostRelationsResolver.ts | 22 + .../relations/User/UserRelationsResolver.ts | 24 + .../relations/User/args/UserPostsArgs.ts | 39 + .../resolvers/relations/User/args/index.ts | 1 + .../resolvers/relations/args.index.ts | 1 + .../type-graphql/resolvers/relations/index.ts | 2 + .../resolvers/relations/resolvers.index.ts | 2 + .../prisma/generated/type-graphql/scalars.ts | 20 + .../migrations/20240725104507_/migration.sql | 72 + .../migrations/20240725104539_/migration.sql | 104 + .../migrations/20240725104611_/migration.sql | 1005 +++ backend/prisma/migrations/migration_lock.toml | 3 + backend/prisma/schema.prisma | 62 + backend/src/configs/index.ts | 2 + backend/src/configs/prisma.ts | 4 + backend/src/configs/redis.ts | 5 + backend/src/constants.ts | 2 + backend/src/index.ts | 102 + backend/src/loaders/createUserLoader.ts | 13 + backend/src/loaders/index.ts | 1 + backend/src/middlewares/index.ts | 1 + backend/src/middlewares/isAuth.ts | 10 + backend/src/resolvers/index.ts | 2 + backend/src/resolvers/post.ts | 284 + backend/src/resolvers/user.ts | 223 + backend/src/types.ts | 85 + backend/src/utils/index.ts | 2 + backend/src/utils/sendEmail.ts | 23 + backend/src/utils/validateEmail.ts | 1 + backend/tsconfig.json | 48 + frontend/.dockerignore | 8 + frontend/.env.example | 2 + frontend/.gitignore | 37 + frontend/Dockerfile | 9 + frontend/Providers.tsx | 14 + frontend/README.md | 1 + frontend/app/NavBar.tsx | 64 + frontend/app/create-post/page.tsx | 49 + frontend/app/edit-post/[id]/page.tsx | 65 + frontend/app/favicon.ico | Bin 0 -> 25931 bytes frontend/app/forgot-password/page.tsx | 52 + frontend/app/globals.css | 0 frontend/app/layout.tsx | 28 + frontend/app/login/page.tsx | 69 + frontend/app/page.module.css | 0 frontend/app/page.tsx | 58 + frontend/app/post/[id]/ClientSection.tsx | 79 + frontend/app/post/[id]/loading.tsx | 8 + frontend/app/post/[id]/page.tsx | 42 + frontend/app/register/page.tsx | 48 + frontend/app/reset-password/[token]/page.tsx | 36 + frontend/components/FormErrorMessage.tsx | 17 + frontend/components/FormSuccessMessage.tsx | 17 + frontend/components/InputField.tsx | 18 + frontend/components/PasswordResetForm.tsx | 60 + frontend/components/Post.tsx | 105 + frontend/components/RefetchButton.tsx | 10 + frontend/components/TextareaField.tsx | 36 + frontend/components/Wrapper.tsx | 14 + frontend/components/index.ts | 8 + frontend/constants.ts | 2 + frontend/env.d.ts | 9 + .../generated/graphql/fragment-masking.ts | 87 + frontend/generated/graphql/gql.ts | 142 + frontend/generated/graphql/graphql.ts | 486 ++ frontend/generated/graphql/index.ts | 1 + frontend/graphql-codegen.ts | 17 + .../graphql/fragments/RegularError.graphql | 4 + .../graphql/fragments/RegularPost.graphql | 15 + .../fragments/RegularPostResponse.graphql | 8 + .../graphql/fragments/RegularUser.graphql | 8 + .../fragments/RegularUserResponse.graphql | 8 + frontend/graphql/mutations/createPost.graphql | 5 + frontend/graphql/mutations/deletePost.graphql | 3 + frontend/graphql/mutations/downvote.graphql | 5 + .../graphql/mutations/forgotPassword.graphql | 9 + frontend/graphql/mutations/login.graphql | 5 + frontend/graphql/mutations/logout.graphql | 3 + frontend/graphql/mutations/register.graphql | 5 + .../graphql/mutations/removeDownvote.graphql | 5 + .../graphql/mutations/removeUpvote.graphql | 5 + .../graphql/mutations/resetPassword.graphql | 9 + frontend/graphql/mutations/updatePost.graphql | 10 + frontend/graphql/mutations/upvote.graphql | 5 + .../queries/checkResetPasswordToken.graphql | 3 + frontend/graphql/queries/me.graphql | 5 + frontend/graphql/queries/post.graphql | 5 + frontend/graphql/queries/posts.graphql | 5 + frontend/hooks/index.ts | 1 + frontend/hooks/useAuthenticate.ts | 15 + frontend/lib/apollo/client.ts | 38 + frontend/lib/apollo/index.ts | 2 + frontend/lib/apollo/server.ts | 18 + frontend/lib/index.ts | 1 + frontend/next.config.mjs | 4 + frontend/package-lock.json | 6481 +++++++++++++++++ frontend/package.json | 42 + frontend/public/next.svg | 1 + frontend/public/vercel.svg | 1 + frontend/tsconfig.json | 40 + frontend/utils/errorMapper.ts | 13 + frontend/utils/index.ts | 1 + 442 files changed, 27246 insertions(+) create mode 100644 README.md create mode 100644 backend/.dockerignore create mode 100644 backend/.editorconfig create mode 100644 backend/.env.example create mode 100644 backend/.gitignore create mode 100644 backend/Dockerfile create mode 100644 backend/README.md create mode 100644 backend/env.d.ts create mode 100644 backend/package-lock.json create mode 100644 backend/package.json create mode 100644 backend/prisma/generated/type-graphql/enhance.ts create mode 100644 backend/prisma/generated/type-graphql/enums/DownvoteScalarFieldEnum.ts create mode 100644 backend/prisma/generated/type-graphql/enums/NullsOrder.ts create mode 100644 backend/prisma/generated/type-graphql/enums/PostScalarFieldEnum.ts create mode 100644 backend/prisma/generated/type-graphql/enums/QueryMode.ts create mode 100644 backend/prisma/generated/type-graphql/enums/ResetPasswordTokenScalarFieldEnum.ts create mode 100644 backend/prisma/generated/type-graphql/enums/SortOrder.ts create mode 100644 backend/prisma/generated/type-graphql/enums/TransactionIsolationLevel.ts create mode 100644 backend/prisma/generated/type-graphql/enums/UpvoteScalarFieldEnum.ts create mode 100644 backend/prisma/generated/type-graphql/enums/UserScalarFieldEnum.ts create mode 100644 backend/prisma/generated/type-graphql/enums/index.ts create mode 100644 backend/prisma/generated/type-graphql/helpers.ts create mode 100644 backend/prisma/generated/type-graphql/index.ts create mode 100644 backend/prisma/generated/type-graphql/models/Downvote.ts create mode 100644 backend/prisma/generated/type-graphql/models/Post.ts create mode 100644 backend/prisma/generated/type-graphql/models/ResetPasswordToken.ts create mode 100644 backend/prisma/generated/type-graphql/models/Upvote.ts create mode 100644 backend/prisma/generated/type-graphql/models/User.ts create mode 100644 backend/prisma/generated/type-graphql/models/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/AggregateDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyAndReturnDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateOneDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteManyDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteOneDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DownvoteCrudResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindManyDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/GroupByDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateManyDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateOneDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpsertOneDownvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/AggregateDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyAndReturnDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateOneDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteManyDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteOneDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindManyDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/GroupByDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateManyDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateOneDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpsertOneDownvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/AggregatePostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyAndReturnPostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyPostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateOnePostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteManyPostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteOnePostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/FindManyPostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/GroupByPostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/PostCrudResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateManyPostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateOnePostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/UpsertOnePostResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/AggregatePostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyAndReturnPostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyPostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateOnePostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteManyPostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteOnePostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindManyPostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/GroupByPostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateManyPostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateOnePostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpsertOnePostArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Post/args/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/AggregateResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyAndReturnResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateOneResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteManyResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteOneResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindManyResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/GroupByResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/ResetPasswordTokenCrudResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateManyResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateOneResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpsertOneResetPasswordTokenResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/AggregateResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyAndReturnResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateOneResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteManyResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteOneResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindManyResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/GroupByResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateManyResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateOneResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpsertOneResetPasswordTokenArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/AggregateUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyAndReturnUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateOneUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteManyUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteOneUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindManyUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/GroupByUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateManyUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateOneUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpsertOneUpvoteResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpvoteCrudResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/AggregateUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyAndReturnUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateOneUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteManyUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteOneUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindManyUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/GroupByUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateManyUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateOneUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpsertOneUpvoteArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/AggregateUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyAndReturnUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/CreateOneUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteManyUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteOneUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/FindManyUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserOrThrowResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/GroupByUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateManyUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateOneUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/UpsertOneUserResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/UserCrudResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/AggregateUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyAndReturnUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateOneUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteManyUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteOneUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindManyUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserOrThrowArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/GroupByUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateManyUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateOneUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpsertOneUserArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/User/args/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/args.index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/resolvers-actions.index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/crud/resolvers-crud.index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFieldUpdateOperationsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCountOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateManyInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMaxOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMinOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithAggregationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithRelationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteScalarWhereWithAggregatesInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateManyMutationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUserIDPostIDCompoundUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/IntFieldUpdateOperationsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/IntFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/IntWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedFloatFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntNullableFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/NullableStringFieldUpdateOperationsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostAvgOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCountOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInputEnvelope.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateNestedManyWithoutAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateOrConnectWithoutAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateWithoutAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostListRelationFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostMaxOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostMinOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByRelationAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithAggregationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithRelationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereWithAggregatesInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostSumOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyMutationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithWhereWithoutAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithoutAuthorNestedInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithWhereUniqueWithoutAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithoutAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostUpsertWithWhereUniqueWithoutAuthorInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCountOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateManyInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMaxOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMinOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithAggregationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithRelationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenScalarWhereWithAggregatesInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateManyMutationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUserIDValueCompoundUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/SortOrderInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/StringFieldUpdateOperationsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/StringFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/StringWithAggregatesFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCountOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateManyInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMaxOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMinOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithAggregationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithRelationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteScalarWhereWithAggregatesInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateManyMutationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUserIDPostIDCompoundUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserCountOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateManyInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateNestedOneWithoutPostsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateOrConnectWithoutPostsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateWithoutPostsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserMaxOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserMinOrderByAggregateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithAggregationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithRelationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserRelationFilter.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserScalarWhereWithAggregatesInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateManyMutationInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateOneRequiredWithoutPostsNestedInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateToOneWithWhereWithoutPostsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateWithoutPostsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserUpsertWithoutPostsInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereUniqueInput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/inputs/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/AffectedRowsOutput.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/AggregateDownvote.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/AggregatePost.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/AggregateResetPasswordToken.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUpvote.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUser.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnDownvote.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnPost.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnResetPasswordToken.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUpvote.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUser.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteCountAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteGroupBy.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMaxAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMinAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/PostAvgAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/PostCountAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/PostGroupBy.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/PostMaxAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/PostMinAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/PostSumAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenCountAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenGroupBy.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMaxAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMinAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteCountAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteGroupBy.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMaxAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMinAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UserCount.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UserCountAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UserGroupBy.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UserMaxAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/UserMinAggregate.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/args/UserCountPostsArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/args/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/outputs/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/relations/Post/PostRelationsResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/relations/User/UserRelationsResolver.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/relations/User/args/UserPostsArgs.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/relations/User/args/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/relations/args.index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/relations/index.ts create mode 100644 backend/prisma/generated/type-graphql/resolvers/relations/resolvers.index.ts create mode 100644 backend/prisma/generated/type-graphql/scalars.ts create mode 100644 backend/prisma/migrations/20240725104507_/migration.sql create mode 100644 backend/prisma/migrations/20240725104539_/migration.sql create mode 100644 backend/prisma/migrations/20240725104611_/migration.sql create mode 100644 backend/prisma/migrations/migration_lock.toml create mode 100644 backend/prisma/schema.prisma create mode 100644 backend/src/configs/index.ts create mode 100644 backend/src/configs/prisma.ts create mode 100644 backend/src/configs/redis.ts create mode 100644 backend/src/constants.ts create mode 100644 backend/src/index.ts create mode 100644 backend/src/loaders/createUserLoader.ts create mode 100644 backend/src/loaders/index.ts create mode 100644 backend/src/middlewares/index.ts create mode 100644 backend/src/middlewares/isAuth.ts create mode 100644 backend/src/resolvers/index.ts create mode 100644 backend/src/resolvers/post.ts create mode 100644 backend/src/resolvers/user.ts create mode 100644 backend/src/types.ts create mode 100644 backend/src/utils/index.ts create mode 100644 backend/src/utils/sendEmail.ts create mode 100644 backend/src/utils/validateEmail.ts create mode 100644 backend/tsconfig.json create mode 100644 frontend/.dockerignore create mode 100644 frontend/.env.example create mode 100644 frontend/.gitignore create mode 100644 frontend/Dockerfile create mode 100644 frontend/Providers.tsx create mode 100644 frontend/README.md create mode 100644 frontend/app/NavBar.tsx create mode 100644 frontend/app/create-post/page.tsx create mode 100644 frontend/app/edit-post/[id]/page.tsx create mode 100644 frontend/app/favicon.ico create mode 100644 frontend/app/forgot-password/page.tsx create mode 100644 frontend/app/globals.css create mode 100644 frontend/app/layout.tsx create mode 100644 frontend/app/login/page.tsx create mode 100644 frontend/app/page.module.css create mode 100644 frontend/app/page.tsx create mode 100644 frontend/app/post/[id]/ClientSection.tsx create mode 100644 frontend/app/post/[id]/loading.tsx create mode 100644 frontend/app/post/[id]/page.tsx create mode 100644 frontend/app/register/page.tsx create mode 100644 frontend/app/reset-password/[token]/page.tsx create mode 100644 frontend/components/FormErrorMessage.tsx create mode 100644 frontend/components/FormSuccessMessage.tsx create mode 100644 frontend/components/InputField.tsx create mode 100644 frontend/components/PasswordResetForm.tsx create mode 100644 frontend/components/Post.tsx create mode 100644 frontend/components/RefetchButton.tsx create mode 100644 frontend/components/TextareaField.tsx create mode 100644 frontend/components/Wrapper.tsx create mode 100644 frontend/components/index.ts create mode 100644 frontend/constants.ts create mode 100644 frontend/env.d.ts create mode 100644 frontend/generated/graphql/fragment-masking.ts create mode 100644 frontend/generated/graphql/gql.ts create mode 100644 frontend/generated/graphql/graphql.ts create mode 100644 frontend/generated/graphql/index.ts create mode 100644 frontend/graphql-codegen.ts create mode 100644 frontend/graphql/fragments/RegularError.graphql create mode 100644 frontend/graphql/fragments/RegularPost.graphql create mode 100644 frontend/graphql/fragments/RegularPostResponse.graphql create mode 100644 frontend/graphql/fragments/RegularUser.graphql create mode 100644 frontend/graphql/fragments/RegularUserResponse.graphql create mode 100644 frontend/graphql/mutations/createPost.graphql create mode 100644 frontend/graphql/mutations/deletePost.graphql create mode 100644 frontend/graphql/mutations/downvote.graphql create mode 100644 frontend/graphql/mutations/forgotPassword.graphql create mode 100644 frontend/graphql/mutations/login.graphql create mode 100644 frontend/graphql/mutations/logout.graphql create mode 100644 frontend/graphql/mutations/register.graphql create mode 100644 frontend/graphql/mutations/removeDownvote.graphql create mode 100644 frontend/graphql/mutations/removeUpvote.graphql create mode 100644 frontend/graphql/mutations/resetPassword.graphql create mode 100644 frontend/graphql/mutations/updatePost.graphql create mode 100644 frontend/graphql/mutations/upvote.graphql create mode 100644 frontend/graphql/queries/checkResetPasswordToken.graphql create mode 100644 frontend/graphql/queries/me.graphql create mode 100644 frontend/graphql/queries/post.graphql create mode 100644 frontend/graphql/queries/posts.graphql create mode 100644 frontend/hooks/index.ts create mode 100644 frontend/hooks/useAuthenticate.ts create mode 100644 frontend/lib/apollo/client.ts create mode 100644 frontend/lib/apollo/index.ts create mode 100644 frontend/lib/apollo/server.ts create mode 100644 frontend/lib/index.ts create mode 100644 frontend/next.config.mjs create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/next.svg create mode 100644 frontend/public/vercel.svg create mode 100644 frontend/tsconfig.json create mode 100644 frontend/utils/errorMapper.ts create mode 100644 frontend/utils/index.ts diff --git a/README.md b/README.md new file mode 100644 index 0000000..3144701 --- /dev/null +++ b/README.md @@ -0,0 +1,456 @@ +### Repository: + +https://gitea.elliot-at-zuri.ch/admin/TKT20009-Course-Project-I + +### Installation: + +The application can be directly accessed via a web browser at the following addresses, without requiring any installation: +\- Frontend: https://wreckit-frontend.elliot-at-zuri.ch +\- Backend: https://wreckit-backend.elliot-at-zuri.ch/graphql + +### Idea: + +I had actually built this app prior to this course, according to this tutorial: https://youtube.com/watch?v=I6ypD7qv3Z8/. The app took inspiration from the tutorial, but was built using my own custom tech stack ([Prisma ORM](https://www.prisma.io/orm) instead of [TypeORM](https://typeorm.io/), and [Apollo Client](https://www.apollographql.com/docs/react/) instead of [URQL](https://commerce.nearform.com/open-source/urql/)). I then added 5 OWASP flaws to the app to satisfy the course's requirements. + +The application is a simple web app that allows users to sign up and create/edit/delete/upvote/downvote posts. + +The frontend of the application was built with [Next.js](https://nextjs.org/), while the backend is essentially a [GraphQL](https://graphql.org/) API server built using [Apollo](https://www.apollographql.com/docs/apollo-server/). Both the frontend and backend are written in TypeScript. Don't worry if you are not familiar with these technologies; we are only going to focus on specific parts of the application that contain OWASP flaws. The flaws of the application all reside in the backend, i.e., in the `backend` folder, so you can safely ignore the `frontend` folder. Feel free to look inside the frontend if you are interested, but our focus is on the `backend` folder. + +I'm using the [2021 OWASP Top 10 list](https://owasp.org/Top10/). + +### Flaws: + +#### FLAW 1: [A01:2021-Broken Access Control](https://owasp.org/Top10/A01_2021-Broken_Access_Control/) + +The specific CWE of this flaw is **[CWE-200 Exposure of Sensitive Information to an Unauthorized Actor](https://cwe.mitre.org/data/definitions/200.html)**, and the information being exposed is users' emails and passwords. + +1\. Demonstrating the flaw: +\- Visit the frontend of the application in your web browser. You will see that there are quite a few posts created by different users, each with their own username. Copy any username to your clipboard. +\- Then, visit [Apollo Sandbox](https://studio.apollographql.com/sandbox/explorer/) to make GraphQL requests to our backend. Change the sandbox address from http://localhost:4000 to https://wreckit-backend.elliot-at-zuri.ch/graphql. Also, click on the settings button next to the url and set `include cookies` to `true`. +\- In the `Operation` tab, paste in the following query: + +```graphql +query GetUser($username: String!) { + getUser(username: $username) { + id + createdAt + updatedAt + username + email + password + } +} +``` + +\- In the `Variables` tab, paste in the following JSON: + +```json +{ + "username": "" +} +``` + +Replace `` with the username you previously copied. +\- In GraphQL, a [Query](https://graphql.org/learn/queries/) is simply a request for data from the server, with some inputs from the client. Here, we are giving the server the `username` of a user and requesting that the server return the `id`, `createdAt`, `updatedAt`, `username`, `email`, and `password` fields corresponding to that username. Click on the `GetUser` button to run this query. +\- You will see that the server returns some data back that might look like the following: + +```json +{ + "data": { + "getUser": [ + { + "id": "4c84d5e6-312b-473a-b046-7c8ee2b133f3", + "createdAt": "2022-11-25T00:00:00.000Z", + "updatedAt": "1990-07-13T00:00:00.000Z", + "username": "adigg0", + "email": "acathesyed0@adobe.com", + "password": "tT5(dgR8+`" + } + ] + } +} +``` + +\- Here, lots of personal information about that user is returned to us, even though we are not logged in! The `password` field shouldn't have been returned at all, while the `email` field should only be returned if we are logged in as that user. + +2\. Identifying the flaw: +This issue is happening because we are using the [TypeGraphQL](https://prisma.typegraphql.com/) library to directly generate the `server schema` using the [`Prisma schema`](./backend/prisma/schema.prisma). The `server schema` determines which fields are returned by our GraphQL API server, while the `Prisma schema` reflects the structure of our database. In other words, we are returning whichever fields are present in the backend's database to any client, which is a very bad security practice. The problematic code is at [`L32-L40`](./backend/prisma/schema.prisma#L32-L40). + +3\. Fixing the flaw: +\- Open [`schema.prisma`](./backend/prisma/schema.prisma) and add a few `/// @TypeGraphQL.omit(output: true)` lines to the `User` model: + +```prisma +model User { + id String @id @default(uuid()) + /// @TypeGraphQL.omit(output: true) + createdAt DateTime @default(now()) + /// @TypeGraphQL.omit(output: true) + updatedAt DateTime @updatedAt + username String @unique + /// @TypeGraphQL.omit(output: true) + password String + email String? @unique + Posts Post[] +} +``` + +We added `/// @TypeGraphQL.omit(output: true)` above `createdAt`, `updatedAt`, and `password`, so these fields will no longer be returned by the server. +\- Next, we are going to configure our server to only return the `email` of the requested user if we are logged in as that user. Open [`user.ts`](./backend/src/resolvers/user.ts) and add the following to the `UserResolver` class: + +```ts + @FieldResolver(() => String) + async email( + @Root() user: User, + @Ctx() { req }: Context + ) { + if (req.session.userID != user.id) { + return '' + } + else { + return user.email || '' + } + } +``` + +This function determines what gets returned by the server when the `email` field of a user is requested. `req.session.userID` is the `id` of the user that is currently logged in and making the request, while `user.id` is the id of the user whose information is being requested. If these two IDs are not the same, it means the user making the request is requesting the email of another user, in which case we return an empty string. If the current user is not logged in, `req.session.userID` would be undefined, which would also cause an emptry string to be returned. On the other hand, if the IDs are the same, we can safely return the requested `email`, or an emptry string in the case it is undefined. + +#### FLAW 2: [A03:2021 – Injection](https://owasp.org/Top10/A03_2021-Injection/) + +1\. Demonstrating the flaw: +This one is a classic **[SQL Injection](https://cwe.mitre.org/data/definitions/89.html)** flaw. Again, open [Apollo Sandbox](https://studio.apollographql.com/sandbox/explorer/) and run the `getUser` query, but this time with the following variable: + +```json +{ + "username": "' UNION SELECT * FROM \"User\" UNION SELECT * FROM \"User\" WHERE username='" +} +``` + +Again, replace `` with the username you copied in the previous part. In fact, you can replace `username` with whatever you want, and this query is going to return every single user in the database. + +2\. Identifying the flaw: +The issue is with the `getUser` function inside the `UserResolver` class in the [`user.ts`](./backend/src/resolvers/user.ts) file: + +```ts + @Query(() => [User]) + async getUser( + @Ctx() { prisma }: Context, + @Arg('username', () => String) username: string + ): Promise { + return (await prisma.$queryRawUnsafe(`SELECT * FROM "User" WHERE username = '${username}'`)) as User[] + } +``` + +You can find the code here: ./backend/src/resolvers/user.ts#L13-L19 + +Notice that the server is constructing a query directly using user input. Therefore, when we pass `' UNION SELECT * FROM "User" UNION SELECT * FROM "User" WHERE username='` as `username`, the following query is constructed: + +```sql +SELECT * FROM "User" WHERE username = '' UNION SELECT * FROM "User" UNION SELECT * FROM "User" WHERE username='' +``` + +This maliciously constructed query unions the results of three `SELECT` statements. The first statement, `SELECT * FROM "User" WHERE username = ''`, might return one user if `` matches an existing username. The second statement, `SELECT * FROM "User"`, returns every single row in the `"User"` table, i.e., every single user. The third statement, `SELECT * FROM "User" WHERE username=''`, doesn't return anything, since no user has an empty username. The union of these three statements returns every single user in the database. + +3\. Fixing the flaw: +Modify the `getUser` function as follows: + +```ts + @Query(() => User, { nullable: true }) + async getUser( + @Ctx() { prisma }: Context, + @Arg('username', () => String) username: string + ): Promise { + return await prisma.user.findUnique({ where: { username } }) + } +``` + +This time, we are using [Prisma ORM](https://www.prisma.io/orm)'s `findUnique` TypeScript API to find exactly one user whose `username` matches the provided input. Prisma automatically constructs the SQL statement under the hood and sanitises the input for us. This mean that whatever we inputs for `username` is treated as an input string and not used to construct the underlying SQL query, so now running the same `GetUser` query would return null. + +#### FLAW 3: [A04:2021 – Insecure Design](https://owasp.org/Top10/A04_2021-Insecure_Design/) +The specific CWE of this flaw is **[CWE-256: Plaintext Storage of a Password](https://cwe.mitre.org/data/definitions/256.html)**. +1\. Demonstrating the flaw: +Back in Flaw 1, we already saw that the `getUser` query returned the plain text password of the user. Even though we have stopped our `GraphQL` server from returning user's passwords by adding `/// @TypeGraphQL.omit(output: true)` to our Prisma schema, under the hood we are still saving the password in plain text to the database. + +2\. Identifying the flaw: +The cause of the error is the `register` mutation inside the `UserResolver` class in the [`user.ts`](./backend/src/resolvers/user.ts) file: + +```ts + @Mutation(() => UserResponse) + async register( + @Ctx() { req, prisma }: Context, + @Arg('input', () => UsernamePasswordInput) { email, username, password }: UsernamePasswordInput + ): Promise { + + const errors = [] + + if (username.length < 8) { + errors.push({ + field: 'username', + message: 'Length must be at least 8.' + }) + } + else if (await prisma.user.findUnique({ where: { username } }) ? true : false) { + errors.push({ + field: 'username', + message: 'Username already exists!' + }) + } + + if (email) { + if (!validateEmail(email)) { + errors.push({ + field: 'email', + message: 'Invalid email!' + }) + } + else if (await prisma.user.findUnique({ where: { email } }) ? true : false) { + errors.push({ + field: 'email', + message: 'Email already in use!' + }) + } + } + + if (password.length < 8) { + errors.push({ + field: 'password', + message: 'Length must be at least 8.' + }) + } + + if (errors.length > 0) { + return { errors } + } + + const user = await prisma.user.create({ data: { username, password } }) + + // Logs in after successfully registering + req.session.userID = user.id + return { user } + } +``` + +You can find the code here: ./backend/src/resolvers/user.ts#L22-L74 + +In GraphQL, a [Mutation](https://graphql.com/learn/mutations/) is a request, similar to a Query. However, instead of just asking that the server returns some data, it also asks the server to create/modify/delete data in the backend. Here, the `register` mutation takes in `username`, `email`, and `password` as inputs, performs some validation of those inputs, and creates a new user in the database. The line that is causing trouble is the `const user = await prisma.user.create({ data: { username, password } })` line, where we are storing the user's password in plain text to the database. + +3\. Fixing the flaw: +To address this issue, we are going to hash the password using the [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm before saving the password to the database. Replace the `const user = await prisma.user.create({ data: { username, password } })` line with the following: + +```ts +const hashedPassword = await argon2.hash(password) +const user = await prisma.user.create({ + data: { username, password: hashedPassword }, +}) +``` + +Under the hood, the `argon2` function from the [`node-argon2`](https://www.npmjs.com/package//argon2) library automatically uses `Argon2id` with settings that satisfy [OWASP Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) by default. + +Then, in the `login` mutation in the same file as the `register` mutation: + +```ts + @Mutation(() => UserResponse) + async login( + @Ctx() { req, prisma }: Context, + @Arg('input', () => UsernamePasswordInput) { username, password }: UsernamePasswordInput + ): Promise { + const user = await prisma.user.findUnique({ where: { username } }) + if (!user) { + return { + errors: [{ + field: 'username', + message: 'That username doesn\'t exist.' + }] + } + } + if (user.password == password) { + req.session.userID = user.id + return { user } + } + else { + return { + errors: [{ + field: 'password', + message: 'That password is incorrect!' + }] + } + } + } +``` + +We are going to modify the login mutation to make sure that it checks whether the user inputted password matches the hash in the database. Change the `user.password == password` line to `await argon2.verify(user.password, password)`. + +#### FLAW 4: [A07:2021 – Identification and Authentication Failures](https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/) +The specific CWE of this flaw is **[CWE-306 Missing Authentication for Critical Function](https://cwe.mitre.org/data/definitions/306.html)**. +1\. Demonstrating the flaw: +\- Go to [frontend](https://wreckit-frontend.elliot-at-zuri.ch/) again. Click on the title of any post. You are going to be redirected to the url of that post, e.g., https://wreckit-frontend.elliot-at-zuri.ch/post/81b089dc-6924-4e0b-97b1-18ed74f2ab28. Here, `81b089dc-6924-4e0b-97b1-18ed74f2ab28` is the `id` of the post. Copy that `id` to the clipboard. +\- Visit [Apollo Sandbox](https://studio.apollographql.com/sandbox/explorer/) again. Paste in the following mutation in the `Operation` tab: + +```graphql +mutation UpdatePost($id: String!, $title: String!, $content: String!) { + updatePost(id: $id, title: $title, content: $content) { + errors { + field + message + } + post { + id + title + content + } + } +} +``` + +Then, paste in the following in the `Variables` tab: + +```json +{ + "id": "", + "title": "", + "content": "" +} +``` + +Replace `` with the id you previously copied. Note that it should be a number and so shouldn't be surrounded by quotation marks. Replace `` with, well, whatever you want. Click on the `Update Post` button to run the mutation. Notice that we have successfully updated the title and content of the post, even when we are not logged in as its author (or logged in at all). Now, go back to the frontend and reload the `https://wreckit-frontend.elliot-at-zuri.ch/post/` page, and you should see that the changes have been reflected. + +2\. Identifying the flaw: +This is the `updatePost` mutation in the `PostResolver` class in [`post.ts`](./backend/src/resolvers/post.ts): + +```ts + @Mutation(() => PostResponse) + async updatePost( + @Ctx() { req, prisma }: Context, + @Arg('id', () => Int) id: number, + @Arg('title', () => String) title: string, + @Arg('content', () => String) content: string, + ): Promise { + + const post = await prisma.post.findUnique({ where: { id } }) + if (!post) { + return { + errors: [{ + field: 'id', + message: 'Post doesn\'t exist!' + }] + } + } + + if (!title) { + return { + errors: [{ + field: 'title', + message: 'Title cannot be empty!' + }] + } + } + + if (!content) { + return { + errors: [{ + field: 'content', + message: 'Content cannot be empty!' + }] + } + } + + return { post: await prisma.post.update({ where: { id }, data: { title, content } }) } + } +``` + +You can find the code here: ./backend/src/resolvers/post.ts#L119-L156 + +We can see that the mutation doesn't do anything to verify that a request actually comes from the post's author before updating the post in the database. + +3\. Fixing the flaw: +Modify the `updatePost` function as follows: +```ts + @UseMiddleware(isAuth) + @Mutation(() => PostResponse) + async updatePost( + @Ctx() { req, prisma }: Context, + @Arg('id', () => Int) id: number, + @Arg('title', () => String) title: string, + @Arg('content', () => String) content: string, + ): Promise { + + const post = await prisma.post.findUnique({ where: { id } }) + if (!post) { + return { + errors: [{ + field: 'id', + message: 'Post doesn\'t exist!' + }] + } + } + + if (post.authorID != req.session.userID!) { + throw new Error('Unauthorised!') + } + + if (!title) { + return { + errors: [{ + field: 'title', + message: 'Title cannot be empty!' + }] + } + } + + if (!content) { + return { + errors: [{ + field: 'content', + message: 'Content cannot be empty!' + }] + } + } + + return { post: await prisma.post.update({ where: { id }, data: { title, content } }) } + } +``` +`@UseMiddleware(isAuth)` would ensure that only logged in users can call the `updatePost` mutation, and the following part ensures that only the post's author can update it: +```ts + if (post.authorID != req.session.userID!) { + throw new Error('Unauthorised!') + } +``` + + +### FLAW 5: [A05:2021 – Security Misconfiguration](https://owasp.org/Top10/A05_2021-Security_Misconfiguration/) +The specific CWE of this flaw is **[CWE-1004 Sensitive Cookie Without 'HttpOnly' Flag](https://cwe.mitre.org/data/definitions/1004.html)**. +1\. Demonstrating the flaw: +Go to https://wreckit-frontend.elliot-at-zuri.ch/login using Chrome and login with the following credentials: +``` +username: adigg0 +password: tT5(dgR8+` +``` +Press `Ctrl+Shift+I` to open `Chrome DevTools`. Open the `Application` tab. In the bar on the left, go to `Storage > Cookies > https://wreckit-frontend.elliot-at-zuri.ch`. You should see a cookie named `qid`. If you don't see it, refresh the page while keeping the `Chrome DevTools` open and you should see the cookie. This is the session cookie that's used to identify the user, and you can see that the `HttpOnly` attribute is not set. + +2\. Identifying the flaw: +The following code inside [`index.ts`](./backend/src/index.ts) is responsible: +```ts + app.use( + session({ + name: SESSION_COOKIE_NAME, // This is the name of the cookie that will be stored on the client (usually a browser) when a new session is created, i.e., when the user logs in. + store: new RedisStore({ // This is the key-value database where active user sessions will be stored. + client: redis, + disableTouch: true // This ensures that the session cookies have no TTL, i.e., they will not automatically expire. + }), + cookie: { + httpOnly: false, + sameSite: 'none', + secure: true + }, + secret: process.env.SESSION_SECRET, + saveUninitialized: false, // Officially recommended setting + resave: false // Officially recommended setting + }) + ) +``` + +You can find the code here: ./backend/src/index.ts#L32-L48 + +One can see that we're setting `httpOnly` to `false`. + +3\. Fixing the flaw: +Simply changing `httpOnly` to true should fix the problem. diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..ba3a106 --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,3 @@ +node_modules +Dockerfile +.env diff --git a/backend/.editorconfig b/backend/.editorconfig new file mode 100644 index 0000000..1ed453a --- /dev/null +++ b/backend/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true + +[*.{js,json,yml}] +charset = utf-8 +indent_style = space +indent_size = 2 diff --git a/backend/.env.example b/backend/.env.example new file mode 100644 index 0000000..c5e0ba9 --- /dev/null +++ b/backend/.env.example @@ -0,0 +1,11 @@ +DATABASE_URL= +REDIS_URL= +SESSION_SECRET= +API_PORT= +FRONTEND_ORIGIN= +BACKEND_ORIGIN= +SMTP_HOST= +SMTP_PORT= +SMTP_SECURE= +SMTP_USER= +SMTP_PASS= diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..6ed48a9 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,2 @@ +.env +node_modules diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..1eb566c --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,5 @@ +FROM node:24.7.0-trixie-slim +WORKDIR /usr/src/app +COPY . . +RUN npm install +CMD npm run prisma:deploy && npm run start diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 0000000..6256414 --- /dev/null +++ b/backend/README.md @@ -0,0 +1 @@ +# Backend for WreckIt ⚒️ diff --git a/backend/env.d.ts b/backend/env.d.ts new file mode 100644 index 0000000..5fc4023 --- /dev/null +++ b/backend/env.d.ts @@ -0,0 +1,19 @@ +declare global { + namespace NodeJS { + interface ProcessEnv { + DATABASE_URL: string; + REDIS_URL: string; + SESSION_SECRET: string; + API_PORT: string; + FRONTEND_ORIGIN: string; + BACKEND_ORIGIN: string; + SMTP_HOST: string; + SMTP_PORT: string; + SMTP_SECURE: string; + SMTP_USER: string; + SMTP_PASS: string; + } + } +} + +export {} diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 0000000..506f83b --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,5603 @@ +{ + "name": "wreckit-backend", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wreckit-backend", + "dependencies": { + "@apollo/server": "^4.10.4", + "@prisma/client": "5.22.0", + "argon2": "^0.40.3", + "class-validator": "^0.14.2", + "connect-redis": "^7.1.1", + "cors": "^2.8.5", + "dataloader": "^2.2.2", + "dotenv-safe": "^9.1.0", + "express-session": "^1.18.0", + "graphql": "^16.9.0", + "nodemailer": "^6.9.14", + "redis": "^4.6.15", + "reflect-metadata": "^0.2.2", + "regenerator-runtime": "^0.14.1", + "tsconfig-paths": "^4.2.0", + "type-graphql": "^2.0.0-rc.1", + "uuid": "^10.0.0" + }, + "devDependencies": { + "@prisma/generator-helper": "5.22.0", + "@prisma/internals": "5.22.0", + "@swc/core": "^1.12.4", + "@swc/helpers": "^0.5.17", + "@types/cors": "^2.8.17", + "@types/dotenv-safe": "^8.1.6", + "@types/express": "^4.17.21", + "@types/express-session": "^1.18.0", + "@types/node": "^20.14.10", + "@types/nodemailer": "^6.4.15", + "@types/regenerator-runtime": "^0.13.8", + "@types/uuid": "^10.0.0", + "esbuild": "0.25.9", + "gen-env-types": "^1.3.4", + "nodemon": "^3.1.4", + "prisma": "5.22.0", + "ts-node": "^10.9.2", + "typegraphql-prisma": "^0.28.0", + "typescript": "^5.9.2" + } + }, + "node_modules/@apollo/cache-control-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@apollo/cache-control-types/-/cache-control-types-1.0.3.tgz", + "integrity": "sha512-F17/vCp7QVwom9eG7ToauIKdAxpSoadsJnqIfyryLFSkLSOEqu+eC5Z3N8OXcUVStuOMcNHlyraRsA6rRICu4g==", + "license": "MIT", + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/protobufjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", + "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "long": "^4.0.0" + }, + "bin": { + "apollo-pbjs": "bin/pbjs", + "apollo-pbts": "bin/pbts" + } + }, + "node_modules/@apollo/server": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@apollo/server/-/server-4.12.2.tgz", + "integrity": "sha512-jKRlf+sBMMdKYrjMoiWKne42Eb6paBfDOr08KJnUaeaiyWFj+/040FjVPQI7YGLfdwnYIsl1NUUqS2UdgezJDg==", + "deprecated": "Apollo Server v4 is deprecated and will transition to end-of-life on January 26, 2026. As long as you are already using a non-EOL version of Node.js, upgrading to v5 should take only a few minutes. See https://www.apollographql.com/docs/apollo-server/previous-versions for details.", + "license": "MIT", + "dependencies": { + "@apollo/cache-control-types": "^1.0.3", + "@apollo/server-gateway-interface": "^1.1.1", + "@apollo/usage-reporting-protobuf": "^4.1.1", + "@apollo/utils.createhash": "^2.0.2", + "@apollo/utils.fetcher": "^2.0.0", + "@apollo/utils.isnodelike": "^2.0.0", + "@apollo/utils.keyvaluecache": "^2.1.0", + "@apollo/utils.logger": "^2.0.0", + "@apollo/utils.usagereporting": "^2.1.0", + "@apollo/utils.withrequired": "^2.0.0", + "@graphql-tools/schema": "^9.0.0", + "@types/express": "^4.17.13", + "@types/express-serve-static-core": "^4.17.30", + "@types/node-fetch": "^2.6.1", + "async-retry": "^1.2.1", + "cors": "^2.8.5", + "express": "^4.21.1", + "loglevel": "^1.6.8", + "lru-cache": "^7.10.1", + "negotiator": "^0.6.3", + "node-abort-controller": "^3.1.1", + "node-fetch": "^2.6.7", + "uuid": "^9.0.0", + "whatwg-mimetype": "^3.0.0" + }, + "engines": { + "node": ">=14.16.0" + }, + "peerDependencies": { + "graphql": "^16.6.0" + } + }, + "node_modules/@apollo/server-gateway-interface": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@apollo/server-gateway-interface/-/server-gateway-interface-1.1.1.tgz", + "integrity": "sha512-pGwCl/po6+rxRmDMFgozKQo2pbsSwE91TpsDBAOgf74CRDPXHHtM88wbwjab0wMMZh95QfR45GGyDIdhY24bkQ==", + "deprecated": "@apollo/server-gateway-interface v1 is part of Apollo Server v4, which is deprecated and will transition to end-of-life on January 26, 2026. As long as you are already using a non-EOL version of Node.js, upgrading to v2 should take only a few minutes. See https://www.apollographql.com/docs/apollo-server/previous-versions for details.", + "license": "MIT", + "dependencies": { + "@apollo/usage-reporting-protobuf": "^4.1.1", + "@apollo/utils.fetcher": "^2.0.0", + "@apollo/utils.keyvaluecache": "^2.1.0", + "@apollo/utils.logger": "^2.0.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/server/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@apollo/usage-reporting-protobuf": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", + "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", + "license": "MIT", + "dependencies": { + "@apollo/protobufjs": "1.2.7" + } + }, + "node_modules/@apollo/utils.createhash": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@apollo/utils.createhash/-/utils.createhash-2.0.2.tgz", + "integrity": "sha512-UkS3xqnVFLZ3JFpEmU/2cM2iKJotQXMoSTgxXsfQgXLC5gR1WaepoXagmYnPSA7Q/2cmnyTYK5OgAgoC4RULPg==", + "license": "MIT", + "dependencies": { + "@apollo/utils.isnodelike": "^2.0.1", + "sha.js": "^2.4.11" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@apollo/utils.dropunuseddefinitions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-2.0.1.tgz", + "integrity": "sha512-EsPIBqsSt2BwDsv8Wu76LK5R1KtsVkNoO4b0M5aK0hx+dGg9xJXuqlr7Fo34Dl+y83jmzn+UvEW+t1/GP2melA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.fetcher": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.fetcher/-/utils.fetcher-2.0.1.tgz", + "integrity": "sha512-jvvon885hEyWXd4H6zpWeN3tl88QcWnHp5gWF5OPF34uhvoR+DFqcNxs9vrRaBBSY3qda3Qe0bdud7tz2zGx1A==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@apollo/utils.isnodelike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.isnodelike/-/utils.isnodelike-2.0.1.tgz", + "integrity": "sha512-w41XyepR+jBEuVpoRM715N2ZD0xMD413UiJx8w5xnAZD2ZkSJnMJBoIzauK83kJpSgNuR6ywbV29jG9NmxjK0Q==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@apollo/utils.keyvaluecache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-2.1.1.tgz", + "integrity": "sha512-qVo5PvUUMD8oB9oYvq4ViCjYAMWnZ5zZwEjNF37L2m1u528x5mueMlU+Cr1UinupCgdB78g+egA1G98rbJ03Vw==", + "license": "MIT", + "dependencies": { + "@apollo/utils.logger": "^2.0.1", + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@apollo/utils.logger": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-2.0.1.tgz", + "integrity": "sha512-YuplwLHaHf1oviidB7MxnCXAdHp3IqYV8n0momZ3JfLniae92eYqMIx+j5qJFX6WKJPs6q7bczmV4lXIsTu5Pg==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@apollo/utils.printwithreducedwhitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-2.0.1.tgz", + "integrity": "sha512-9M4LUXV/fQBh8vZWlLvb/HyyhjJ77/I5ZKu+NBWV/BmYGyRmoEP9EVAy7LCVoY3t8BDcyCAGfxJaLFCSuQkPUg==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.removealiases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-2.0.1.tgz", + "integrity": "sha512-0joRc2HBO4u594Op1nev+mUF6yRnxoUH64xw8x3bX7n8QBDYdeYgY4tF0vJReTy+zdn2xv6fMsquATSgC722FA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.sortast": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-2.0.1.tgz", + "integrity": "sha512-eciIavsWpJ09za1pn37wpsCGrQNXUhM0TktnZmHwO+Zy9O4fu/WdB4+5BvVhFiZYOXvfjzJUcc+hsIV8RUOtMw==", + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.stripsensitiveliterals": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-2.0.1.tgz", + "integrity": "sha512-QJs7HtzXS/JIPMKWimFnUMK7VjkGQTzqD9bKD1h3iuPAqLsxd0mUNVbkYOPTsDhUKgcvUOfOqOJWYohAKMvcSA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.usagereporting": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-2.1.0.tgz", + "integrity": "sha512-LPSlBrn+S17oBy5eWkrRSGb98sWmnEzo3DPTZgp8IQc8sJe0prDgDuppGq4NeQlpoqEHz0hQeYHAOA0Z3aQsxQ==", + "license": "MIT", + "dependencies": { + "@apollo/usage-reporting-protobuf": "^4.1.0", + "@apollo/utils.dropunuseddefinitions": "^2.0.1", + "@apollo/utils.printwithreducedwhitespace": "^2.0.1", + "@apollo/utils.removealiases": "2.0.1", + "@apollo/utils.sortast": "^2.0.1", + "@apollo/utils.stripsensitiveliterals": "^2.0.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.withrequired": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.withrequired/-/utils.withrequired-2.0.1.tgz", + "integrity": "sha512-YBDiuAX9i1lLc6GeTy1m7DGLFn/gMnvXqlalOIMjM7DeOgIacEjjfwPqb0M1CQ2v11HhR15d1NmxJoRCfrNqcA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-ses": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.887.0.tgz", + "integrity": "sha512-AKFv0t5C4b0G0nqxuqlmcflXlq4pd3D6iNvr76F5TD48p1GGxCx70iO8BOti6RA4Kb0cArKAtUMAmTQ1mqXkFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.887.0", + "@aws-sdk/credential-provider-node": "3.887.0", + "@aws-sdk/middleware-host-header": "3.887.0", + "@aws-sdk/middleware-logger": "3.887.0", + "@aws-sdk/middleware-recursion-detection": "3.887.0", + "@aws-sdk/middleware-user-agent": "3.887.0", + "@aws-sdk/region-config-resolver": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@aws-sdk/util-endpoints": "3.887.0", + "@aws-sdk/util-user-agent-browser": "3.887.0", + "@aws-sdk/util-user-agent-node": "3.887.0", + "@smithy/config-resolver": "^4.2.1", + "@smithy/core": "^3.11.0", + "@smithy/fetch-http-handler": "^5.2.1", + "@smithy/hash-node": "^4.1.1", + "@smithy/invalid-dependency": "^4.1.1", + "@smithy/middleware-content-length": "^4.1.1", + "@smithy/middleware-endpoint": "^4.2.1", + "@smithy/middleware-retry": "^4.2.1", + "@smithy/middleware-serde": "^4.1.1", + "@smithy/middleware-stack": "^4.1.1", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/node-http-handler": "^4.2.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "@smithy/url-parser": "^4.1.1", + "@smithy/util-base64": "^4.1.0", + "@smithy/util-body-length-browser": "^4.1.0", + "@smithy/util-body-length-node": "^4.1.0", + "@smithy/util-defaults-mode-browser": "^4.1.1", + "@smithy/util-defaults-mode-node": "^4.1.1", + "@smithy/util-endpoints": "^3.1.1", + "@smithy/util-middleware": "^4.1.1", + "@smithy/util-retry": "^4.1.1", + "@smithy/util-utf8": "^4.1.0", + "@smithy/util-waiter": "^4.1.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.887.0.tgz", + "integrity": "sha512-ZKN8BxkRdC6vK6wlnuLSYBhj7uufg14GP5bxqiRaDEooN1y2WcuY95GP13I3brLvM0uboFGbObIVpVrbeHifng==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.887.0", + "@aws-sdk/middleware-host-header": "3.887.0", + "@aws-sdk/middleware-logger": "3.887.0", + "@aws-sdk/middleware-recursion-detection": "3.887.0", + "@aws-sdk/middleware-user-agent": "3.887.0", + "@aws-sdk/region-config-resolver": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@aws-sdk/util-endpoints": "3.887.0", + "@aws-sdk/util-user-agent-browser": "3.887.0", + "@aws-sdk/util-user-agent-node": "3.887.0", + "@smithy/config-resolver": "^4.2.1", + "@smithy/core": "^3.11.0", + "@smithy/fetch-http-handler": "^5.2.1", + "@smithy/hash-node": "^4.1.1", + "@smithy/invalid-dependency": "^4.1.1", + "@smithy/middleware-content-length": "^4.1.1", + "@smithy/middleware-endpoint": "^4.2.1", + "@smithy/middleware-retry": "^4.2.1", + "@smithy/middleware-serde": "^4.1.1", + "@smithy/middleware-stack": "^4.1.1", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/node-http-handler": "^4.2.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "@smithy/url-parser": "^4.1.1", + "@smithy/util-base64": "^4.1.0", + "@smithy/util-body-length-browser": "^4.1.0", + "@smithy/util-body-length-node": "^4.1.0", + "@smithy/util-defaults-mode-browser": "^4.1.1", + "@smithy/util-defaults-mode-node": "^4.1.1", + "@smithy/util-endpoints": "^3.1.1", + "@smithy/util-middleware": "^4.1.1", + "@smithy/util-retry": "^4.1.1", + "@smithy/util-utf8": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.887.0.tgz", + "integrity": "sha512-oiBsWhuuj1Lzh+FHY+gE0PyYuiDxqFf98F9Pd2WruY5Gu/+/xvDFEPEkIEOae8gWRaLZ5Eh8u+OY9LS4DXZhuQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.887.0", + "@aws-sdk/xml-builder": "3.887.0", + "@smithy/core": "^3.11.0", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/property-provider": "^4.0.5", + "@smithy/protocol-http": "^5.2.1", + "@smithy/signature-v4": "^5.1.3", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "@smithy/util-base64": "^4.1.0", + "@smithy/util-body-length-browser": "^4.1.0", + "@smithy/util-middleware": "^4.1.1", + "@smithy/util-utf8": "^4.1.0", + "fast-xml-parser": "5.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.887.0.tgz", + "integrity": "sha512-kv7L5E8mxlWTMhCK639wrQnFEmwUDfKvKzTMDo2OboXZ0iSbD+hBPoT0gkb49qHNetYnsl63BVOxc0VNiOA04w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/property-provider": "^4.0.5", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.887.0.tgz", + "integrity": "sha512-siLttHxSFgJ5caDgS+BHYs9GBDX7J3pgge4OmJvIQeGO+KaJC12TerBNPJOp+qRaRC3yuVw3T9RpSZa8mmaiyA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/fetch-http-handler": "^5.2.1", + "@smithy/node-http-handler": "^4.2.1", + "@smithy/property-provider": "^4.0.5", + "@smithy/protocol-http": "^5.2.1", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "@smithy/util-stream": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.887.0.tgz", + "integrity": "sha512-Na9IjKdPuSNU/mBcCQ49HiIgomq/O7kZAuRyGwAXiRPbf86AacKv4dsUyPZY6lCgVIvVniRWgYlVaPgq22EIig==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.887.0", + "@aws-sdk/credential-provider-env": "3.887.0", + "@aws-sdk/credential-provider-http": "3.887.0", + "@aws-sdk/credential-provider-process": "3.887.0", + "@aws-sdk/credential-provider-sso": "3.887.0", + "@aws-sdk/credential-provider-web-identity": "3.887.0", + "@aws-sdk/nested-clients": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/credential-provider-imds": "^4.0.7", + "@smithy/property-provider": "^4.0.5", + "@smithy/shared-ini-file-loader": "^4.0.5", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.887.0.tgz", + "integrity": "sha512-iJdCq/brBWYpJzJcXY2UhEoW7aA28ixIpvLKjxh5QUBfjCj19cImpj1gGwTIs6/fVcjVUw1tNveTBfn1ziTzVg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.887.0", + "@aws-sdk/credential-provider-http": "3.887.0", + "@aws-sdk/credential-provider-ini": "3.887.0", + "@aws-sdk/credential-provider-process": "3.887.0", + "@aws-sdk/credential-provider-sso": "3.887.0", + "@aws-sdk/credential-provider-web-identity": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/credential-provider-imds": "^4.0.7", + "@smithy/property-provider": "^4.0.5", + "@smithy/shared-ini-file-loader": "^4.0.5", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.887.0.tgz", + "integrity": "sha512-J5TIrQ/DUiyR65gXt1j3TEbLUwMcgYVB/G68/AVgBptPvb9kj+6zFG67bJJHwxtqJxRLVLTtTi9u/YDXTqGBpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/property-provider": "^4.0.5", + "@smithy/shared-ini-file-loader": "^4.0.5", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.887.0.tgz", + "integrity": "sha512-Bv9wUActLu6Kn0MK2s72bgbbNxSLPVop/If4MVbCyJ3n+prJnm5RsTF3isoWQVyyXA5g4tIrS8mE5FpejSbyPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.887.0", + "@aws-sdk/core": "3.887.0", + "@aws-sdk/token-providers": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/property-provider": "^4.0.5", + "@smithy/shared-ini-file-loader": "^4.0.5", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.887.0.tgz", + "integrity": "sha512-PRh0KRukY2euN9xvvQ3cqhCAlEkMDJIWDLIfxQ1hTbv7JA3hrcLVrV+Jg5FRWsStDhweHIvD/VzruSkhJQS80g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.887.0", + "@aws-sdk/nested-clients": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/property-provider": "^4.0.5", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.887.0.tgz", + "integrity": "sha512-ulzqXv6NNqdu/kr0sgBYupWmahISHY+azpJidtK6ZwQIC+vBUk9NdZeqQpy7KVhIk2xd4+5Oq9rxapPwPI21CA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.887.0", + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.887.0.tgz", + "integrity": "sha512-YbbgLI6jKp2qSoAcHnXrQ5jcuc5EYAmGLVFgMVdk8dfCfJLfGGSaOLxF4CXC7QYhO50s+mPPkhBYejCik02Kug==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.887.0", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.887.0.tgz", + "integrity": "sha512-tjrUXFtQnFLo+qwMveq5faxP5MQakoLArXtqieHphSqZTXm21wDJM73hgT4/PQQGTwgYjDKqnqsE1hvk0hcfDw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.887.0", + "@aws/lambda-invoke-store": "^0.0.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.887.0.tgz", + "integrity": "sha512-YjBz2J4l3uCeMv2g1natat5YSMRZYdEpEg60g3d7q6hoHUD10SmWy8M+Ca8djF0is70vPmF3Icm2cArK3mtoNA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@aws-sdk/util-endpoints": "3.887.0", + "@smithy/core": "^3.11.0", + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.887.0.tgz", + "integrity": "sha512-h6/dHuAJhJnhSDihcQd0wfJBZoPmPajASVqGk8qDxYDBWxIU9/mYcKvM+kTrKw3f9Wf3S/eR5B/rYHHuxFheSw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.887.0", + "@aws-sdk/middleware-host-header": "3.887.0", + "@aws-sdk/middleware-logger": "3.887.0", + "@aws-sdk/middleware-recursion-detection": "3.887.0", + "@aws-sdk/middleware-user-agent": "3.887.0", + "@aws-sdk/region-config-resolver": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@aws-sdk/util-endpoints": "3.887.0", + "@aws-sdk/util-user-agent-browser": "3.887.0", + "@aws-sdk/util-user-agent-node": "3.887.0", + "@smithy/config-resolver": "^4.2.1", + "@smithy/core": "^3.11.0", + "@smithy/fetch-http-handler": "^5.2.1", + "@smithy/hash-node": "^4.1.1", + "@smithy/invalid-dependency": "^4.1.1", + "@smithy/middleware-content-length": "^4.1.1", + "@smithy/middleware-endpoint": "^4.2.1", + "@smithy/middleware-retry": "^4.2.1", + "@smithy/middleware-serde": "^4.1.1", + "@smithy/middleware-stack": "^4.1.1", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/node-http-handler": "^4.2.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "@smithy/url-parser": "^4.1.1", + "@smithy/util-base64": "^4.1.0", + "@smithy/util-body-length-browser": "^4.1.0", + "@smithy/util-body-length-node": "^4.1.0", + "@smithy/util-defaults-mode-browser": "^4.1.1", + "@smithy/util-defaults-mode-node": "^4.1.1", + "@smithy/util-endpoints": "^3.1.1", + "@smithy/util-middleware": "^4.1.1", + "@smithy/util-retry": "^4.1.1", + "@smithy/util-utf8": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.887.0.tgz", + "integrity": "sha512-VdSMrIqJ3yjJb/fY+YAxrH/lCVv0iL8uA+lbMNfQGtO5tB3Zx6SU9LEpUwBNX8fPK1tUpI65CNE4w42+MY/7Mg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.887.0", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/types": "^4.5.0", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.1.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.887.0.tgz", + "integrity": "sha512-3e5fTPMPeJ5DphZ+OSqzw4ymCgDf8SQVBgrlKVo4Bch9ZwmmAoOHbuQrXVa9xQHklEHJg1Gz2pkjxNaIgx7quA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.887.0", + "@aws-sdk/nested-clients": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/property-provider": "^4.0.5", + "@smithy/shared-ini-file-loader": "^4.0.5", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.887.0.tgz", + "integrity": "sha512-fmTEJpUhsPsovQ12vZSpVTEP/IaRoJAMBGQXlQNjtCpkBp6Iq3KQDa/HDaPINE+3xxo6XvTdtibsNOd5zJLV9A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.887.0.tgz", + "integrity": "sha512-kpegvT53KT33BMeIcGLPA65CQVxLUL/C3gTz9AzlU/SDmeusBHX4nRApAicNzI/ltQ5lxZXbQn18UczzBuwF1w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.887.0", + "@smithy/types": "^4.5.0", + "@smithy/url-parser": "^4.1.1", + "@smithy/util-endpoints": "^3.1.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.873.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.873.0.tgz", + "integrity": "sha512-xcVhZF6svjM5Rj89T1WzkjQmrTF6dpR2UvIHPMTnSZoNe6CixejPZ6f0JJ2kAhO8H+dUHwNBlsUgOTIKiK/Syg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.887.0.tgz", + "integrity": "sha512-X71UmVsYc6ZTH4KU6hA5urOzYowSXc3qvroagJNLJYU1ilgZ529lP4J9XOYfEvTXkLR1hPFSRxa43SrwgelMjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.887.0", + "@smithy/types": "^4.5.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.887.0.tgz", + "integrity": "sha512-eqnx2FWAf40Nw6EyhXWjVT5WYYMz0rLrKEhZR3GdRQyOFzgnnEfq74TtG2Xji9k/ODqkcKqkiI52RYDEcdh8Jg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-user-agent": "3.887.0", + "@aws-sdk/types": "3.887.0", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.887.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.887.0.tgz", + "integrity": "sha512-lMwgWK1kNgUhHGfBvO/5uLe7TKhycwOn3eRCqsKPT9aPCx/HWuTlpcQp8oW2pCRGLS7qzcxqpQulcD+bbUL7XQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws/lambda-invoke-store": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz", + "integrity": "sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", + "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", + "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", + "license": "MIT", + "dependencies": { + "@graphql-tools/merge": "^8.4.1", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-yoga/subscription": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@graphql-yoga/subscription/-/subscription-5.0.5.tgz", + "integrity": "sha512-oCMWOqFs6QV96/NZRt/ZhTQvzjkGB4YohBOpKM4jH/lDT4qb7Lex/aGCxpi/JD9njw3zBBtMqxbaC22+tFHVvw==", + "license": "MIT", + "dependencies": { + "@graphql-yoga/typed-event-target": "^3.0.2", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/events": "^0.1.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@graphql-yoga/typed-event-target": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@graphql-yoga/typed-event-target/-/typed-event-target-3.0.2.tgz", + "integrity": "sha512-ZpJxMqB+Qfe3rp6uszCQoag4nSw42icURnBRfFYSOmTgEeOe4rD0vYlbA8spvCu2TlCesNTlEN9BLWtQqLxabA==", + "license": "MIT", + "dependencies": { + "@repeaterjs/repeater": "^3.0.4", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@phc/format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@prisma/client": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.22.0.tgz", + "integrity": "sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==", + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } + } + }, + "node_modules/@prisma/debug": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.22.0.tgz", + "integrity": "sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.22.0.tgz", + "integrity": "sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.22.0", + "@prisma/engines-version": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", + "@prisma/fetch-engine": "5.22.0", + "@prisma/get-platform": "5.22.0" + } + }, + "node_modules/@prisma/engines-version": { + "version": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2.tgz", + "integrity": "sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.22.0.tgz", + "integrity": "sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.22.0", + "@prisma/engines-version": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", + "@prisma/get-platform": "5.22.0" + } + }, + "node_modules/@prisma/generator-helper": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/generator-helper/-/generator-helper-5.22.0.tgz", + "integrity": "sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.22.0" + } + }, + "node_modules/@prisma/get-platform": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.22.0.tgz", + "integrity": "sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.22.0" + } + }, + "node_modules/@prisma/internals": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/internals/-/internals-5.22.0.tgz", + "integrity": "sha512-Rsjw2ARB9VQzDczzEimUriSBdXmYG/Z5tNRer2IEwof/O8Q6A9cqV3oNVUpJ52TgWfQqMAq5K/KEf8LvvYLLOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.22.0", + "@prisma/engines": "5.22.0", + "@prisma/fetch-engine": "5.22.0", + "@prisma/generator-helper": "5.22.0", + "@prisma/get-platform": "5.22.0", + "@prisma/prisma-schema-wasm": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", + "@prisma/schema-files-loader": "5.22.0", + "arg": "5.0.2", + "prompts": "2.4.2" + } + }, + "node_modules/@prisma/prisma-schema-wasm": { + "version": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", + "resolved": "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2.tgz", + "integrity": "sha512-WPNB7SgTxF/rSHMa5o5/9AIINy4oVnRhvUkRzqR4Nfp8Hu9Q2IyUptxuiDuzRVJdjJBRi/U82sHTxyiD3oBBhQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/schema-files-loader": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/schema-files-loader/-/schema-files-loader-5.22.0.tgz", + "integrity": "sha512-/TNAJXvMSk6mCgZa+gIBM6sp5OUQBnb7rbjiSQm88gvcSibxEuKkVV/2pT3RmQpEAn1yiabvS4+dOvIotYe3ww==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/prisma-schema-wasm": "5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2", + "fs-extra": "11.1.1" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/client": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.1.tgz", + "integrity": "sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==", + "license": "MIT", + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/graph": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz", + "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz", + "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz", + "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz", + "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@repeaterjs/repeater": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.6.tgz", + "integrity": "sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==", + "license": "MIT" + }, + "node_modules/@smithy/abort-controller": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.1.1.tgz", + "integrity": "sha512-vkzula+IwRvPR6oKQhMYioM3A/oX/lFCZiwuxkQbRhqJS2S4YRY2k7k/SyR2jMf3607HLtbEwlRxi0ndXHMjRg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.2.1.tgz", + "integrity": "sha512-FXil8q4QN7mgKwU2hCLm0ltab8NyY/1RiqEf25Jnf6WLS3wmb11zGAoLETqg1nur2Aoibun4w4MjeN9CMJ4G6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.2.1", + "@smithy/types": "^4.5.0", + "@smithy/util-config-provider": "^4.1.0", + "@smithy/util-middleware": "^4.1.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.11.0.tgz", + "integrity": "sha512-Abs5rdP1o8/OINtE49wwNeWuynCu0kme1r4RI3VXVrHr4odVDG7h7mTnw1WXXfN5Il+c25QOnrdL2y56USfxkA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^4.1.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "@smithy/util-base64": "^4.1.0", + "@smithy/util-body-length-browser": "^4.1.0", + "@smithy/util-middleware": "^4.1.1", + "@smithy/util-stream": "^4.3.1", + "@smithy/util-utf8": "^4.1.0", + "@types/uuid": "^9.0.1", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/core/node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@smithy/core/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.1.1.tgz", + "integrity": "sha512-1WdBfM9DwA59pnpIizxnUvBf/de18p4GP+6zP2AqrlFzoW3ERpZaT4QueBR0nS9deDMaQRkBlngpVlnkuuTisQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.2.1", + "@smithy/property-provider": "^4.1.1", + "@smithy/types": "^4.5.0", + "@smithy/url-parser": "^4.1.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.2.1.tgz", + "integrity": "sha512-5/3wxKNtV3wO/hk1is+CZUhL8a1yy/U+9u9LKQ9kZTkMsHaQjJhc3stFfiujtMnkITjzWfndGA2f7g9Uh9vKng==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.2.1", + "@smithy/querystring-builder": "^4.1.1", + "@smithy/types": "^4.5.0", + "@smithy/util-base64": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/hash-node": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.1.1.tgz", + "integrity": "sha512-H9DIU9WBLhYrvPs9v4sYvnZ1PiAI0oc8CgNQUJ1rpN3pP7QADbTOUjchI2FB764Ub0DstH5xbTqcMJu1pnVqxA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "@smithy/util-buffer-from": "^4.1.0", + "@smithy/util-utf8": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.1.1.tgz", + "integrity": "sha512-1AqLyFlfrrDkyES8uhINRlJXmHA2FkG+3DY8X+rmLSqmFwk3DJnvhyGzyByPyewh2jbmV+TYQBEfngQax8IFGg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.1.0.tgz", + "integrity": "sha512-ePTYUOV54wMogio+he4pBybe8fwg4sDvEVDBU8ZlHOZXbXK3/C0XfJgUCu6qAZcawv05ZhZzODGUerFBPsPUDQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.1.1.tgz", + "integrity": "sha512-9wlfBBgTsRvC2JxLJxv4xDGNBrZuio3AgSl0lSFX7fneW2cGskXTYpFxCdRYD2+5yzmsiTuaAJD1Wp7gWt9y9w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.2.1.tgz", + "integrity": "sha512-fUTMmQvQQZakXOuKizfu7fBLDpwvWZjfH6zUK2OLsoNZRZGbNUdNSdLJHpwk1vS208jtDjpUIskh+JoA8zMzZg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.11.0", + "@smithy/middleware-serde": "^4.1.1", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/shared-ini-file-loader": "^4.1.1", + "@smithy/types": "^4.5.0", + "@smithy/url-parser": "^4.1.1", + "@smithy/util-middleware": "^4.1.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.2.1.tgz", + "integrity": "sha512-JzfvjwSJXWRl7LkLgIRTUTd2Wj639yr3sQGpViGNEOjtb0AkAuYqRAHs+jSOI/LPC0ZTjmFVVtfrCICMuebexw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.2.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/service-error-classification": "^4.1.1", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "@smithy/util-middleware": "^4.1.1", + "@smithy/util-retry": "^4.1.1", + "@types/uuid": "^9.0.1", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@smithy/middleware-retry/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.1.1.tgz", + "integrity": "sha512-lh48uQdbCoj619kRouev5XbWhCwRKLmphAif16c4J6JgJ4uXjub1PI6RL38d3BLliUvSso6klyB/LTNpWSNIyg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.1.1.tgz", + "integrity": "sha512-ygRnniqNcDhHzs6QAPIdia26M7e7z9gpkIMUe/pK0RsrQ7i5MblwxY8078/QCnGq6AmlUUWgljK2HlelsKIb/A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.2.1.tgz", + "integrity": "sha512-AIA0BJZq2h295J5NeCTKhg1WwtdTA/GqBCaVjk30bDgMHwniUETyh5cP9IiE9VrId7Kt8hS7zvREVMTv1VfA6g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^4.1.1", + "@smithy/shared-ini-file-loader": "^4.1.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.2.1.tgz", + "integrity": "sha512-REyybygHlxo3TJICPF89N2pMQSf+p+tBJqpVe1+77Cfi9HBPReNjTgtZ1Vg73exq24vkqJskKDpfF74reXjxfw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^4.1.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/querystring-builder": "^4.1.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.1.1.tgz", + "integrity": "sha512-gm3ZS7DHxUbzC2wr8MUCsAabyiXY0gaj3ROWnhSx/9sPMc6eYLMM4rX81w1zsMaObj2Lq3PZtNCC1J6lpEY7zg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.2.1.tgz", + "integrity": "sha512-T8SlkLYCwfT/6m33SIU/JOVGNwoelkrvGjFKDSDtVvAXj/9gOT78JVJEas5a+ETjOu4SVvpCstKgd0PxSu/aHw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.1.1.tgz", + "integrity": "sha512-J9b55bfimP4z/Jg1gNo+AT84hr90p716/nvxDkPGCD4W70MPms0h8KF50RDRgBGZeL83/u59DWNqJv6tEP/DHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "@smithy/util-uri-escape": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.1.1.tgz", + "integrity": "sha512-63TEp92YFz0oQ7Pj9IuI3IgnprP92LrZtRAkE3c6wLWJxfy/yOPRt39IOKerVr0JS770olzl0kGafXlAXZ1vng==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.1.1.tgz", + "integrity": "sha512-Iam75b/JNXyDE41UvrlM6n8DNOa/r1ylFyvgruTUx7h2Uk7vDNV9AAwP1vfL1fOL8ls0xArwEGVcGZVd7IO/Cw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.1.1.tgz", + "integrity": "sha512-YkpikhIqGc4sfXeIbzSj10t2bJI/sSoP5qxLue6zG+tEE3ngOBSm8sO3+djacYvS/R5DfpxN/L9CyZsvwjWOAQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.2.1.tgz", + "integrity": "sha512-M9rZhWQLjlQVCCR37cSjHfhriGRN+FQ8UfgrYNufv66TJgk+acaggShl3KS5U/ssxivvZLlnj7QH2CUOKlxPyA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^4.1.0", + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "@smithy/util-hex-encoding": "^4.1.0", + "@smithy/util-middleware": "^4.1.1", + "@smithy/util-uri-escape": "^4.1.0", + "@smithy/util-utf8": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.6.1.tgz", + "integrity": "sha512-WolVLDb9UTPMEPPOncrCt6JmAMCSC/V2y5gst2STWJ5r7+8iNac+EFYQnmvDCYMfOLcilOSEpm5yXZXwbLak1Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.11.0", + "@smithy/middleware-endpoint": "^4.2.1", + "@smithy/middleware-stack": "^4.1.1", + "@smithy/protocol-http": "^5.2.1", + "@smithy/types": "^4.5.0", + "@smithy/util-stream": "^4.3.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.5.0.tgz", + "integrity": "sha512-RkUpIOsVlAwUIZXO1dsz8Zm+N72LClFfsNqf173catVlvRZiwPy0x2u0JLEA4byreOPKDZPGjmPDylMoP8ZJRg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.1.1.tgz", + "integrity": "sha512-bx32FUpkhcaKlEoOMbScvc93isaSiRM75pQ5IgIBaMkT7qMlIibpPRONyx/0CvrXHzJLpOn/u6YiDX2hcvs7Dg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^4.1.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-base64": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.1.0.tgz", + "integrity": "sha512-RUGd4wNb8GeW7xk+AY5ghGnIwM96V0l2uzvs/uVHf+tIuVX2WSvynk5CxNoBCsM2rQRSZElAo9rt3G5mJ/gktQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^4.1.0", + "@smithy/util-utf8": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.1.0.tgz", + "integrity": "sha512-V2E2Iez+bo6bUMOTENPr6eEmepdY8Hbs+Uc1vkDKgKNA/brTJqOW/ai3JO1BGj9GbCeLqw90pbbH7HFQyFotGQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.1.0.tgz", + "integrity": "sha512-BOI5dYjheZdgR9XiEM3HJcEMCXSoqbzu7CzIgYrx0UtmvtC3tC2iDGpJLsSRFffUpy8ymsg2ARMP5fR8mtuUQQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.1.0.tgz", + "integrity": "sha512-N6yXcjfe/E+xKEccWEKzK6M+crMrlwaCepKja0pNnlSkm6SjAeLKKA++er5Ba0I17gvKfN/ThV+ZOx/CntKTVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.1.0.tgz", + "integrity": "sha512-swXz2vMjrP1ZusZWVTB/ai5gK+J8U0BWvP10v9fpcFvg+Xi/87LHvHfst2IgCs1i0v4qFZfGwCmeD/KNCdJZbQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.1.1.tgz", + "integrity": "sha512-hA1AKIHFUMa9Tl6q6y8p0pJ9aWHCCG8s57flmIyLE0W7HcJeYrYtnqXDcGnftvXEhdQnSexyegXnzzTGk8bKLA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^4.1.1", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.1.1.tgz", + "integrity": "sha512-RGSpmoBrA+5D2WjwtK7tto6Pc2wO9KSXKLpLONhFZ8VyuCbqlLdiDAfuDTNY9AJe4JoE+Cx806cpTQQoQ71zPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^4.2.1", + "@smithy/credential-provider-imds": "^4.1.1", + "@smithy/node-config-provider": "^4.2.1", + "@smithy/property-provider": "^4.1.1", + "@smithy/smithy-client": "^4.6.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.1.1.tgz", + "integrity": "sha512-qB4R9kO0SetA11Rzu6MVGFIaGYX3p6SGGGfWwsKnC6nXIf0n/0AKVwRTsYsz9ToN8CeNNtNgQRwKFBndGJZdyw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.2.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.1.0.tgz", + "integrity": "sha512-1LcueNN5GYC4tr8mo14yVYbh/Ur8jHhWOxniZXii+1+ePiIbsLZ5fEI0QQGtbRRP5mOhmooos+rLmVASGGoq5w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.1.1.tgz", + "integrity": "sha512-CGmZ72mL29VMfESz7S6dekqzCh8ZISj3B+w0g1hZFXaOjGTVaSqfAEFAq8EGp8fUL+Q2l8aqNmt8U1tglTikeg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.1.1.tgz", + "integrity": "sha512-jGeybqEZ/LIordPLMh5bnmnoIgsqnp4IEimmUp5c5voZ8yx+5kAlN5+juyr7p+f7AtZTgvhmInQk4Q0UVbrZ0Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^4.1.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.3.1.tgz", + "integrity": "sha512-khKkW/Jqkgh6caxMWbMuox9+YfGlsk9OnHOYCGVEdYQb/XVzcORXHLYUubHmmda0pubEDncofUrPNniS9d+uAA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^5.2.1", + "@smithy/node-http-handler": "^4.2.1", + "@smithy/types": "^4.5.0", + "@smithy/util-base64": "^4.1.0", + "@smithy/util-buffer-from": "^4.1.0", + "@smithy/util-hex-encoding": "^4.1.0", + "@smithy/util-utf8": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.1.0.tgz", + "integrity": "sha512-b0EFQkq35K5NHUYxU72JuoheM6+pytEVUGlTwiFxWFpmddA+Bpz3LgsPRIpBk8lnPE47yT7AF2Egc3jVnKLuPg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.1.0.tgz", + "integrity": "sha512-mEu1/UIXAdNYuBcyEPbjScKi/+MQVXNIuY/7Cm5XLIWe319kDrT5SizBE95jqtmEXoDbGoZxKLCMttdZdqTZKQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^4.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/util-waiter": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.1.1.tgz", + "integrity": "sha512-PJBmyayrlfxM7nbqjomF4YcT1sApQwZio0NHSsT0EzhJqljRmvhzqZua43TyEs80nJk2Cn2FGPg/N8phH6KeCQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^4.1.1", + "@smithy/types": "^4.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@swc/core": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz", + "integrity": "sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.24" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.13.5", + "@swc/core-darwin-x64": "1.13.5", + "@swc/core-linux-arm-gnueabihf": "1.13.5", + "@swc/core-linux-arm64-gnu": "1.13.5", + "@swc/core-linux-arm64-musl": "1.13.5", + "@swc/core-linux-x64-gnu": "1.13.5", + "@swc/core-linux-x64-musl": "1.13.5", + "@swc/core-win32-arm64-msvc": "1.13.5", + "@swc/core-win32-ia32-msvc": "1.13.5", + "@swc/core-win32-x64-msvc": "1.13.5" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz", + "integrity": "sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.5.tgz", + "integrity": "sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.5.tgz", + "integrity": "sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.5.tgz", + "integrity": "sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.5.tgz", + "integrity": "sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.5.tgz", + "integrity": "sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.5.tgz", + "integrity": "sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.5.tgz", + "integrity": "sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.5.tgz", + "integrity": "sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.5.tgz", + "integrity": "sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.25", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", + "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.24.0.tgz", + "integrity": "sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.4", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/dotenv-safe": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/@types/dotenv-safe/-/dotenv-safe-8.1.6.tgz", + "integrity": "sha512-ftZXu3WGT6ALq+f98IX2gWriGMPds+0ku5h8kZewNpY47ua+Z+XNcin9apZ2kVd4B9LV1vMfUOyDf1/hhreR0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "dotenv": "^8.2.0" + } + }, + "node_modules/@types/dotenv-safe/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/express": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express-session": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.18.2.tgz", + "integrity": "sha512-k+I0BxwVXsnEU2hV77cCobC08kIsn4y44C3gC0b46uxZVMaXA04lSPgRLR/bSL2w0t0ShJiG8o4jPzRG/nscFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/graphql-fields": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@types/graphql-fields/-/graphql-fields-1.3.9.tgz", + "integrity": "sha512-HynTnp1HrE58uYcFcAK5UOfdrHSOIHDLCjvMU4yCmQLMj21uo7ZiZqnDGrD27pgCgHH5a1e8GYNK98Ndmma7ig==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graphql": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.13.tgz", + "integrity": "sha512-yCAeZl7a0DxgNVteXFHt9+uyFbqXGy/ShC4BlcHkoE0AfGXYv/BUiplV72DjMYXHDBXFjhvr6DD1NiRVfB4j8g==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz", + "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.4" + } + }, + "node_modules/@types/nodemailer": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.19.tgz", + "integrity": "sha512-Fi8DwmuAduTk1/1MpkR9EwS0SsDvYXx5RxivAVII1InDCIxmhj/iQm3W8S3EVb/0arnblr6PK0FK4wYa7bwdLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@aws-sdk/client-ses": "^3.731.1", + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/regenerator-runtime": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/@types/regenerator-runtime/-/regenerator-runtime-0.13.8.tgz", + "integrity": "sha512-jjKoBekfYDH331060tZhosdJVDnXIXx+T8Iw2h2T4HEds6Ddb2lr0JxD15+XPKlXwRHRNgZoY+4Fb2ykoqzHBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.15.3", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.3.tgz", + "integrity": "sha512-7bcUmDyS6PN3EuD9SlGGOxM77F8WLVsrwkxyWxKnxzmXoequ6c7741QBrANq6htVRGOITJ7z72mTP6Z4XyuG+Q==", + "license": "MIT" + }, + "node_modules/@whatwg-node/events": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.2.tgz", + "integrity": "sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argon2": { + "version": "0.40.3", + "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.40.3.tgz", + "integrity": "sha512-FrSmz4VeM91jwFvvjsQv9GYp6o/kARWoYKjbjDB2U5io1H3e5X67PYGclFDeQff6UXIhUd4aHR3mxCdBbMMuQw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@phc/format": "^1.0.0", + "node-addon-api": "^8.0.0", + "node-gyp-build": "^4.8.0" + }, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bowser": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", + "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/class-validator": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.2.tgz", + "integrity": "sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw==", + "license": "MIT", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.11.1", + "validator": "^13.9.0" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/connect-redis": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-7.1.1.tgz", + "integrity": "sha512-M+z7alnCJiuzKa8/1qAYdGUXHYfDnLolOGAUjOioB07pP39qxjG+X9ibsud7qUBc4jMV5Mcy3ugGv8eFcgamJQ==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "express-session": ">=1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dataloader": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.3.tgz", + "integrity": "sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dotenv": { + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.2.tgz", + "integrity": "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-safe": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/dotenv-safe/-/dotenv-safe-9.1.0.tgz", + "integrity": "sha512-2qwVAnUN+EDpu41pIK1XiJpHXKHV9Dnti3cE1EnUXT1/BV5+B7xuSZtgZ/4LExkCpp5F6BGikraezQL+8hKCOA==", + "license": "MIT", + "peerDependencies": { + "dotenv": ">= 8.2.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-session": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.2.tgz", + "integrity": "sha512-SZjssGQC7TzTs9rpPDuUrR23GNZ9+2+IkA/+IJWmvQilTr5OSliEHGF+D9scbIpdC6yGtTI0/VhaHoVes2AN/A==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.7", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.1.0", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-xml-parser": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz", + "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^2.1.0" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gen-env-types": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/gen-env-types/-/gen-env-types-1.3.4.tgz", + "integrity": "sha512-pG3SEiF2WwK9INywDHLouAVOZPTc+XeDEhr/FW+y2P2i5zEbs4uTU+xhfekCayuaSMfV/hUFXczFsTSC7lVOEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0" + }, + "bin": { + "gen-env-types": "gen-env-types.js" + } + }, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphql": { + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz", + "integrity": "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-fields": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graphql-fields/-/graphql-fields-2.0.3.tgz", + "integrity": "sha512-x3VE5lUcR4XCOxPIqaO4CE+bTK8u6gVouOdpQX9+EKHr+scqtK5Pp/l8nIGqIpN1TUlkKE6jDCCycm/WtLRAwA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/graphql-query-complexity": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.12.0.tgz", + "integrity": "sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw==", + "license": "MIT", + "dependencies": { + "lodash.get": "^4.4.2" + }, + "peerDependencies": { + "graphql": "^14.6.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/graphql-scalars": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.24.2.tgz", + "integrity": "sha512-FoZ11yxIauEnH0E5rCUkhDXHVn/A6BBfovJdimRZCQlFCl+h7aVvarKmI15zG4VtQunmCDdqdtNs6ixThy3uAg==", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.12.15", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.15.tgz", + "integrity": "sha512-TMDCtIhWUDHh91wRC+wFuGlIzKdPzaTUHHVrIZ3vPUEoNaXFLrsIQ1ZpAeZeXApIF6rvDksMTvjrIQlLKaYxqQ==", + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "license": "Apache-2.0" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nodemailer": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz", + "integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nodemon": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", + "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prisma": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.22.0.tgz", + "integrity": "sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/engines": "5.22.0" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=16.13" + }, + "optionalDependencies": { + "fsevents": "2.3.3" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redis": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.7.1.tgz", + "integrity": "sha512-S1bJDnqLftzHXHP8JsT5II/CtHWQrASX5K96REjWjlmWKrviSOLWmM7QnRLstAWsu1VBBV1ffV6DzCvxNP0UJQ==", + "license": "MIT", + "workspaces": [ + "./packages/*" + ], + "dependencies": { + "@redis/bloom": "1.2.0", + "@redis/client": "1.6.1", + "@redis/graph": "1.1.1", + "@redis/json": "1.0.7", + "@redis/search": "1.2.0", + "@redis/time-series": "1.1.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strnum": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz", + "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-buffer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.1.tgz", + "integrity": "sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/ts-morph": { + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-23.0.0.tgz", + "integrity": "sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.24.0", + "code-block-writer": "^13.0.1" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-graphql": { + "version": "2.0.0-rc.2", + "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-2.0.0-rc.2.tgz", + "integrity": "sha512-DJ8erG1cmjteMrOhFIkBHOqRM+L+wCJxvNjbbj1Y+q2r4HZkB1qOSS4ZD4AaoAfRPAp1yU23gMtmzf0jen/FFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/TypeGraphQL" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/typegraphql" + } + ], + "license": "MIT", + "dependencies": { + "@graphql-yoga/subscription": "^5.0.0", + "@types/node": "*", + "@types/semver": "^7.5.6", + "graphql-query-complexity": "^0.12.0", + "semver": "^7.5.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "peerDependencies": { + "class-validator": ">=0.14.0", + "graphql": "^16.8.1", + "graphql-scalars": "^1.23.0" + }, + "peerDependenciesMeta": { + "class-validator": { + "optional": true + } + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typegraphql-prisma": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/typegraphql-prisma/-/typegraphql-prisma-0.28.0.tgz", + "integrity": "sha512-LMTsYEAteeXhnJRmH2sBWarR8Jc9Um13mtSpi8Vh6G8QUTlp5tRfqMjd+Fw06HS6SBshU6NilZJlsPaz26SQCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@prisma/generator-helper": "^5.18.0", + "@prisma/internals": "^5.18.0", + "pluralize": "^8.0.0", + "semver": "^7.6.3", + "ts-morph": "^23.0.0", + "tslib": "^2.6.3" + }, + "bin": { + "typegraphql-prisma": "lib/generator.js" + }, + "engines": { + "node": ">=20.11.1" + }, + "peerDependencies": { + "@prisma/client": "^5.18.0", + "@types/graphql-fields": "^1.3.9", + "@types/node": "*", + "graphql-fields": "^2.0.3", + "graphql-scalars": "^1.23.0", + "prisma": "^5.18.0", + "tslib": "^2.6.3", + "type-graphql": "^1.1.1 || >=1.2.0-rc || >=2.0.0-beta || >=2.0.0-rc" + } + }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "license": "MIT", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/validator": { + "version": "13.15.15", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.15.tgz", + "integrity": "sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + } + } +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..c888568 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,54 @@ +{ + "name": "wreckit-backend", + "scripts": { + "dev:nodemon": "nodemon --watch . src/index.ts", + "dev:postgres": "docker run --name postgres-dev -p 5432:5432 -e POSTGRES_PASSWORD=YWpBaqN3QvQhRHxYfhuxfv4CYzY5nKg4MjtyVKWzxFfcAtW86SPX5CUQ0sKtqa6B -d postgres:17.5-alpine3.22", + "dev:redis": "docker run --name redis-dev -p 6379:6379 -d redis:8.2.1-alpine3.22", + "start": "ts-node src/index.ts", + "env:generate": "gen-env-types .env -o env.d.ts -e .", + "prisma:generate": "prisma generate", + "prisma:create-migration": "prisma migrate dev --create-only --migrations-path", + "prisma:migrate": "prisma migrate dev", + "prisma:deploy": "prisma migrate deploy" + }, + "dependencies": { + "@apollo/server": "^4.10.4", + "@prisma/client": "5.22.0", + "argon2": "^0.40.3", + "class-validator": "^0.14.2", + "connect-redis": "^7.1.1", + "cors": "^2.8.5", + "dataloader": "^2.2.2", + "dotenv-safe": "^9.1.0", + "express-session": "^1.18.0", + "graphql": "^16.9.0", + "nodemailer": "^6.9.14", + "redis": "^4.6.15", + "reflect-metadata": "^0.2.2", + "regenerator-runtime": "^0.14.1", + "tsconfig-paths": "^4.2.0", + "type-graphql": "^2.0.0-rc.1", + "uuid": "^10.0.0" + }, + "devDependencies": { + "@prisma/generator-helper": "5.22.0", + "@prisma/internals": "5.22.0", + "@swc/core": "^1.12.4", + "@swc/helpers": "^0.5.17", + "@types/cors": "^2.8.17", + "@types/dotenv-safe": "^8.1.6", + "@types/express": "^4.17.21", + "@types/express-session": "^1.18.0", + "@types/node": "^20.14.10", + "@types/nodemailer": "^6.4.15", + "@types/regenerator-runtime": "^0.13.8", + "@types/uuid": "^10.0.0", + "esbuild": "0.25.9", + "gen-env-types": "^1.3.4", + "nodemon": "^3.1.4", + "prisma": "5.22.0", + "ts-node": "^10.9.2", + "typegraphql-prisma": "^0.28.0", + "typescript": "^5.9.2" + } +} diff --git a/backend/prisma/generated/type-graphql/enhance.ts b/backend/prisma/generated/type-graphql/enhance.ts new file mode 100644 index 0000000..a1b034f --- /dev/null +++ b/backend/prisma/generated/type-graphql/enhance.ts @@ -0,0 +1,638 @@ +import { ClassType } from "type-graphql"; +import * as tslib from "tslib"; +import * as crudResolvers from "./resolvers/crud/resolvers-crud.index"; +import * as argsTypes from "./resolvers/crud/args.index"; +import * as actionResolvers from "./resolvers/crud/resolvers-actions.index"; +import * as relationResolvers from "./resolvers/relations/resolvers.index"; +import * as models from "./models"; +import * as outputTypes from "./resolvers/outputs"; +import * as inputTypes from "./resolvers/inputs"; + +export type MethodDecoratorOverrideFn = (decorators: MethodDecorator[]) => MethodDecorator[]; + +const crudResolversMap = { + Post: crudResolvers.PostCrudResolver, + User: crudResolvers.UserCrudResolver, + Upvote: crudResolvers.UpvoteCrudResolver, + Downvote: crudResolvers.DownvoteCrudResolver, + ResetPasswordToken: crudResolvers.ResetPasswordTokenCrudResolver +}; +const actionResolversMap = { + Post: { + aggregatePost: actionResolvers.AggregatePostResolver, + createManyPost: actionResolvers.CreateManyPostResolver, + createManyAndReturnPost: actionResolvers.CreateManyAndReturnPostResolver, + createOnePost: actionResolvers.CreateOnePostResolver, + deleteManyPost: actionResolvers.DeleteManyPostResolver, + deleteOnePost: actionResolvers.DeleteOnePostResolver, + findFirstPost: actionResolvers.FindFirstPostResolver, + findFirstPostOrThrow: actionResolvers.FindFirstPostOrThrowResolver, + posts: actionResolvers.FindManyPostResolver, + post: actionResolvers.FindUniquePostResolver, + getPost: actionResolvers.FindUniquePostOrThrowResolver, + groupByPost: actionResolvers.GroupByPostResolver, + updateManyPost: actionResolvers.UpdateManyPostResolver, + updateOnePost: actionResolvers.UpdateOnePostResolver, + upsertOnePost: actionResolvers.UpsertOnePostResolver + }, + User: { + aggregateUser: actionResolvers.AggregateUserResolver, + createManyUser: actionResolvers.CreateManyUserResolver, + createManyAndReturnUser: actionResolvers.CreateManyAndReturnUserResolver, + createOneUser: actionResolvers.CreateOneUserResolver, + deleteManyUser: actionResolvers.DeleteManyUserResolver, + deleteOneUser: actionResolvers.DeleteOneUserResolver, + findFirstUser: actionResolvers.FindFirstUserResolver, + findFirstUserOrThrow: actionResolvers.FindFirstUserOrThrowResolver, + users: actionResolvers.FindManyUserResolver, + user: actionResolvers.FindUniqueUserResolver, + getUser: actionResolvers.FindUniqueUserOrThrowResolver, + groupByUser: actionResolvers.GroupByUserResolver, + updateManyUser: actionResolvers.UpdateManyUserResolver, + updateOneUser: actionResolvers.UpdateOneUserResolver, + upsertOneUser: actionResolvers.UpsertOneUserResolver + }, + Upvote: { + aggregateUpvote: actionResolvers.AggregateUpvoteResolver, + createManyUpvote: actionResolvers.CreateManyUpvoteResolver, + createManyAndReturnUpvote: actionResolvers.CreateManyAndReturnUpvoteResolver, + createOneUpvote: actionResolvers.CreateOneUpvoteResolver, + deleteManyUpvote: actionResolvers.DeleteManyUpvoteResolver, + deleteOneUpvote: actionResolvers.DeleteOneUpvoteResolver, + findFirstUpvote: actionResolvers.FindFirstUpvoteResolver, + findFirstUpvoteOrThrow: actionResolvers.FindFirstUpvoteOrThrowResolver, + upvotes: actionResolvers.FindManyUpvoteResolver, + upvote: actionResolvers.FindUniqueUpvoteResolver, + getUpvote: actionResolvers.FindUniqueUpvoteOrThrowResolver, + groupByUpvote: actionResolvers.GroupByUpvoteResolver, + updateManyUpvote: actionResolvers.UpdateManyUpvoteResolver, + updateOneUpvote: actionResolvers.UpdateOneUpvoteResolver, + upsertOneUpvote: actionResolvers.UpsertOneUpvoteResolver + }, + Downvote: { + aggregateDownvote: actionResolvers.AggregateDownvoteResolver, + createManyDownvote: actionResolvers.CreateManyDownvoteResolver, + createManyAndReturnDownvote: actionResolvers.CreateManyAndReturnDownvoteResolver, + createOneDownvote: actionResolvers.CreateOneDownvoteResolver, + deleteManyDownvote: actionResolvers.DeleteManyDownvoteResolver, + deleteOneDownvote: actionResolvers.DeleteOneDownvoteResolver, + findFirstDownvote: actionResolvers.FindFirstDownvoteResolver, + findFirstDownvoteOrThrow: actionResolvers.FindFirstDownvoteOrThrowResolver, + downvotes: actionResolvers.FindManyDownvoteResolver, + downvote: actionResolvers.FindUniqueDownvoteResolver, + getDownvote: actionResolvers.FindUniqueDownvoteOrThrowResolver, + groupByDownvote: actionResolvers.GroupByDownvoteResolver, + updateManyDownvote: actionResolvers.UpdateManyDownvoteResolver, + updateOneDownvote: actionResolvers.UpdateOneDownvoteResolver, + upsertOneDownvote: actionResolvers.UpsertOneDownvoteResolver + }, + ResetPasswordToken: { + aggregateResetPasswordToken: actionResolvers.AggregateResetPasswordTokenResolver, + createManyResetPasswordToken: actionResolvers.CreateManyResetPasswordTokenResolver, + createManyAndReturnResetPasswordToken: actionResolvers.CreateManyAndReturnResetPasswordTokenResolver, + createOneResetPasswordToken: actionResolvers.CreateOneResetPasswordTokenResolver, + deleteManyResetPasswordToken: actionResolvers.DeleteManyResetPasswordTokenResolver, + deleteOneResetPasswordToken: actionResolvers.DeleteOneResetPasswordTokenResolver, + findFirstResetPasswordToken: actionResolvers.FindFirstResetPasswordTokenResolver, + findFirstResetPasswordTokenOrThrow: actionResolvers.FindFirstResetPasswordTokenOrThrowResolver, + resetPasswordTokens: actionResolvers.FindManyResetPasswordTokenResolver, + resetPasswordToken: actionResolvers.FindUniqueResetPasswordTokenResolver, + getResetPasswordToken: actionResolvers.FindUniqueResetPasswordTokenOrThrowResolver, + groupByResetPasswordToken: actionResolvers.GroupByResetPasswordTokenResolver, + updateManyResetPasswordToken: actionResolvers.UpdateManyResetPasswordTokenResolver, + updateOneResetPasswordToken: actionResolvers.UpdateOneResetPasswordTokenResolver, + upsertOneResetPasswordToken: actionResolvers.UpsertOneResetPasswordTokenResolver + } +}; +const crudResolversInfo = { + Post: ["aggregatePost", "createManyPost", "createManyAndReturnPost", "createOnePost", "deleteManyPost", "deleteOnePost", "findFirstPost", "findFirstPostOrThrow", "posts", "post", "getPost", "groupByPost", "updateManyPost", "updateOnePost", "upsertOnePost"], + User: ["aggregateUser", "createManyUser", "createManyAndReturnUser", "createOneUser", "deleteManyUser", "deleteOneUser", "findFirstUser", "findFirstUserOrThrow", "users", "user", "getUser", "groupByUser", "updateManyUser", "updateOneUser", "upsertOneUser"], + Upvote: ["aggregateUpvote", "createManyUpvote", "createManyAndReturnUpvote", "createOneUpvote", "deleteManyUpvote", "deleteOneUpvote", "findFirstUpvote", "findFirstUpvoteOrThrow", "upvotes", "upvote", "getUpvote", "groupByUpvote", "updateManyUpvote", "updateOneUpvote", "upsertOneUpvote"], + Downvote: ["aggregateDownvote", "createManyDownvote", "createManyAndReturnDownvote", "createOneDownvote", "deleteManyDownvote", "deleteOneDownvote", "findFirstDownvote", "findFirstDownvoteOrThrow", "downvotes", "downvote", "getDownvote", "groupByDownvote", "updateManyDownvote", "updateOneDownvote", "upsertOneDownvote"], + ResetPasswordToken: ["aggregateResetPasswordToken", "createManyResetPasswordToken", "createManyAndReturnResetPasswordToken", "createOneResetPasswordToken", "deleteManyResetPasswordToken", "deleteOneResetPasswordToken", "findFirstResetPasswordToken", "findFirstResetPasswordTokenOrThrow", "resetPasswordTokens", "resetPasswordToken", "getResetPasswordToken", "groupByResetPasswordToken", "updateManyResetPasswordToken", "updateOneResetPasswordToken", "upsertOneResetPasswordToken"] +}; +const argsInfo = { + AggregatePostArgs: ["where", "orderBy", "cursor", "take", "skip"], + CreateManyPostArgs: ["data", "skipDuplicates"], + CreateManyAndReturnPostArgs: ["data", "skipDuplicates"], + CreateOnePostArgs: ["data"], + DeleteManyPostArgs: ["where"], + DeleteOnePostArgs: ["where"], + FindFirstPostArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindFirstPostOrThrowArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindManyPostArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindUniquePostArgs: ["where"], + FindUniquePostOrThrowArgs: ["where"], + GroupByPostArgs: ["where", "orderBy", "by", "having", "take", "skip"], + UpdateManyPostArgs: ["data", "where"], + UpdateOnePostArgs: ["data", "where"], + UpsertOnePostArgs: ["where", "create", "update"], + AggregateUserArgs: ["where", "orderBy", "cursor", "take", "skip"], + CreateManyUserArgs: ["data", "skipDuplicates"], + CreateManyAndReturnUserArgs: ["data", "skipDuplicates"], + CreateOneUserArgs: ["data"], + DeleteManyUserArgs: ["where"], + DeleteOneUserArgs: ["where"], + FindFirstUserArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindFirstUserOrThrowArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindManyUserArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindUniqueUserArgs: ["where"], + FindUniqueUserOrThrowArgs: ["where"], + GroupByUserArgs: ["where", "orderBy", "by", "having", "take", "skip"], + UpdateManyUserArgs: ["data", "where"], + UpdateOneUserArgs: ["data", "where"], + UpsertOneUserArgs: ["where", "create", "update"], + AggregateUpvoteArgs: ["where", "orderBy", "cursor", "take", "skip"], + CreateManyUpvoteArgs: ["data", "skipDuplicates"], + CreateManyAndReturnUpvoteArgs: ["data", "skipDuplicates"], + CreateOneUpvoteArgs: ["data"], + DeleteManyUpvoteArgs: ["where"], + DeleteOneUpvoteArgs: ["where"], + FindFirstUpvoteArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindFirstUpvoteOrThrowArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindManyUpvoteArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindUniqueUpvoteArgs: ["where"], + FindUniqueUpvoteOrThrowArgs: ["where"], + GroupByUpvoteArgs: ["where", "orderBy", "by", "having", "take", "skip"], + UpdateManyUpvoteArgs: ["data", "where"], + UpdateOneUpvoteArgs: ["data", "where"], + UpsertOneUpvoteArgs: ["where", "create", "update"], + AggregateDownvoteArgs: ["where", "orderBy", "cursor", "take", "skip"], + CreateManyDownvoteArgs: ["data", "skipDuplicates"], + CreateManyAndReturnDownvoteArgs: ["data", "skipDuplicates"], + CreateOneDownvoteArgs: ["data"], + DeleteManyDownvoteArgs: ["where"], + DeleteOneDownvoteArgs: ["where"], + FindFirstDownvoteArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindFirstDownvoteOrThrowArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindManyDownvoteArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindUniqueDownvoteArgs: ["where"], + FindUniqueDownvoteOrThrowArgs: ["where"], + GroupByDownvoteArgs: ["where", "orderBy", "by", "having", "take", "skip"], + UpdateManyDownvoteArgs: ["data", "where"], + UpdateOneDownvoteArgs: ["data", "where"], + UpsertOneDownvoteArgs: ["where", "create", "update"], + AggregateResetPasswordTokenArgs: ["where", "orderBy", "cursor", "take", "skip"], + CreateManyResetPasswordTokenArgs: ["data", "skipDuplicates"], + CreateManyAndReturnResetPasswordTokenArgs: ["data", "skipDuplicates"], + CreateOneResetPasswordTokenArgs: ["data"], + DeleteManyResetPasswordTokenArgs: ["where"], + DeleteOneResetPasswordTokenArgs: ["where"], + FindFirstResetPasswordTokenArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindFirstResetPasswordTokenOrThrowArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindManyResetPasswordTokenArgs: ["where", "orderBy", "cursor", "take", "skip", "distinct"], + FindUniqueResetPasswordTokenArgs: ["where"], + FindUniqueResetPasswordTokenOrThrowArgs: ["where"], + GroupByResetPasswordTokenArgs: ["where", "orderBy", "by", "having", "take", "skip"], + UpdateManyResetPasswordTokenArgs: ["data", "where"], + UpdateOneResetPasswordTokenArgs: ["data", "where"], + UpsertOneResetPasswordTokenArgs: ["where", "create", "update"] +}; + +type ResolverModelNames = keyof typeof crudResolversMap; + +type ModelResolverActionNames< + TModel extends ResolverModelNames +> = keyof typeof crudResolversMap[TModel]["prototype"]; + +export type ResolverActionsConfig< + TModel extends ResolverModelNames +> = Partial, MethodDecorator[] | MethodDecoratorOverrideFn>> + & { + _all?: MethodDecorator[]; + _query?: MethodDecorator[]; + _mutation?: MethodDecorator[]; + }; + +export type ResolversEnhanceMap = { + [TModel in ResolverModelNames]?: ResolverActionsConfig; +}; + +export function applyResolversEnhanceMap( + resolversEnhanceMap: ResolversEnhanceMap, +) { + const mutationOperationPrefixes = [ + "createOne", "createMany", "createManyAndReturn", "deleteOne", "updateOne", "deleteMany", "updateMany", "upsertOne" + ]; + for (const resolversEnhanceMapKey of Object.keys(resolversEnhanceMap)) { + const modelName = resolversEnhanceMapKey as keyof typeof resolversEnhanceMap; + const crudTarget = crudResolversMap[modelName].prototype; + const resolverActionsConfig = resolversEnhanceMap[modelName]!; + const actionResolversConfig = actionResolversMap[modelName]; + const allActionsDecorators = resolverActionsConfig._all; + const resolverActionNames = crudResolversInfo[modelName as keyof typeof crudResolversInfo]; + for (const resolverActionName of resolverActionNames) { + const maybeDecoratorsOrFn = resolverActionsConfig[ + resolverActionName as keyof typeof resolverActionsConfig + ] as MethodDecorator[] | MethodDecoratorOverrideFn | undefined; + const isWriteOperation = mutationOperationPrefixes.some(prefix => resolverActionName.startsWith(prefix)); + const operationKindDecorators = isWriteOperation ? resolverActionsConfig._mutation : resolverActionsConfig._query; + const mainDecorators = [ + ...allActionsDecorators ?? [], + ...operationKindDecorators ?? [], + ] + let decorators: MethodDecorator[]; + if (typeof maybeDecoratorsOrFn === "function") { + decorators = maybeDecoratorsOrFn(mainDecorators); + } else { + decorators = [...mainDecorators, ...maybeDecoratorsOrFn ?? []]; + } + const actionTarget = (actionResolversConfig[ + resolverActionName as keyof typeof actionResolversConfig + ] as Function).prototype; + tslib.__decorate(decorators, crudTarget, resolverActionName, null); + tslib.__decorate(decorators, actionTarget, resolverActionName, null); + } + } +} + +type ArgsTypesNames = keyof typeof argsTypes; + +type ArgFieldNames = Exclude< + keyof typeof argsTypes[TArgsType]["prototype"], + number | symbol +>; + +type ArgFieldsConfig< + TArgsType extends ArgsTypesNames +> = FieldsConfig>; + +export type ArgConfig = { + class?: ClassDecorator[]; + fields?: ArgFieldsConfig; +}; + +export type ArgsTypesEnhanceMap = { + [TArgsType in ArgsTypesNames]?: ArgConfig; +}; + +export function applyArgsTypesEnhanceMap( + argsTypesEnhanceMap: ArgsTypesEnhanceMap, +) { + for (const argsTypesEnhanceMapKey of Object.keys(argsTypesEnhanceMap)) { + const argsTypeName = argsTypesEnhanceMapKey as keyof typeof argsTypesEnhanceMap; + const typeConfig = argsTypesEnhanceMap[argsTypeName]!; + const typeClass = argsTypes[argsTypeName]; + const typeTarget = typeClass.prototype; + applyTypeClassEnhanceConfig( + typeConfig, + typeClass, + typeTarget, + argsInfo[argsTypeName as keyof typeof argsInfo], + ); + } +} + +const relationResolversMap = { + Post: relationResolvers.PostRelationsResolver, + User: relationResolvers.UserRelationsResolver +}; +const relationResolversInfo = { + Post: ["author"], + User: ["Posts"] +}; + +type RelationResolverModelNames = keyof typeof relationResolversMap; + +type RelationResolverActionNames< + TModel extends RelationResolverModelNames +> = keyof typeof relationResolversMap[TModel]["prototype"]; + +export type RelationResolverActionsConfig + = Partial, MethodDecorator[] | MethodDecoratorOverrideFn>> + & { _all?: MethodDecorator[] }; + +export type RelationResolversEnhanceMap = { + [TModel in RelationResolverModelNames]?: RelationResolverActionsConfig; +}; + +export function applyRelationResolversEnhanceMap( + relationResolversEnhanceMap: RelationResolversEnhanceMap, +) { + for (const relationResolversEnhanceMapKey of Object.keys(relationResolversEnhanceMap)) { + const modelName = relationResolversEnhanceMapKey as keyof typeof relationResolversEnhanceMap; + const relationResolverTarget = relationResolversMap[modelName].prototype; + const relationResolverActionsConfig = relationResolversEnhanceMap[modelName]!; + const allActionsDecorators = relationResolverActionsConfig._all ?? []; + const relationResolverActionNames = relationResolversInfo[modelName as keyof typeof relationResolversInfo]; + for (const relationResolverActionName of relationResolverActionNames) { + const maybeDecoratorsOrFn = relationResolverActionsConfig[ + relationResolverActionName as keyof typeof relationResolverActionsConfig + ] as MethodDecorator[] | MethodDecoratorOverrideFn | undefined; + let decorators: MethodDecorator[]; + if (typeof maybeDecoratorsOrFn === "function") { + decorators = maybeDecoratorsOrFn(allActionsDecorators); + } else { + decorators = [...allActionsDecorators, ...maybeDecoratorsOrFn ?? []]; + } + tslib.__decorate(decorators, relationResolverTarget, relationResolverActionName, null); + } + } +} + +type TypeConfig = { + class?: ClassDecorator[]; + fields?: FieldsConfig; +}; + +export type PropertyDecoratorOverrideFn = (decorators: PropertyDecorator[]) => PropertyDecorator[]; + +type FieldsConfig = Partial< + Record +> & { _all?: PropertyDecorator[] }; + +function applyTypeClassEnhanceConfig< + TEnhanceConfig extends TypeConfig, + TType extends object +>( + enhanceConfig: TEnhanceConfig, + typeClass: ClassType, + typePrototype: TType, + typeFieldNames: string[] +) { + if (enhanceConfig.class) { + tslib.__decorate(enhanceConfig.class, typeClass); + } + if (enhanceConfig.fields) { + const allFieldsDecorators = enhanceConfig.fields._all ?? []; + for (const typeFieldName of typeFieldNames) { + const maybeDecoratorsOrFn = enhanceConfig.fields[ + typeFieldName + ] as PropertyDecorator[] | PropertyDecoratorOverrideFn | undefined; + let decorators: PropertyDecorator[]; + if (typeof maybeDecoratorsOrFn === "function") { + decorators = maybeDecoratorsOrFn(allFieldsDecorators); + } else { + decorators = [...allFieldsDecorators, ...maybeDecoratorsOrFn ?? []]; + } + tslib.__decorate(decorators, typePrototype, typeFieldName, void 0); + } + } +} + +const modelsInfo = { + Post: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + User: ["id", "createdAt", "updatedAt", "username", "password", "email"], + Upvote: ["userID", "postID"], + Downvote: ["userID", "postID"], + ResetPasswordToken: ["id", "userID", "value"] +}; + +type ModelNames = keyof typeof models; + +type ModelFieldNames = Exclude< + keyof typeof models[TModel]["prototype"], + number | symbol +>; + +type ModelFieldsConfig = FieldsConfig< + ModelFieldNames +>; + +export type ModelConfig = { + class?: ClassDecorator[]; + fields?: ModelFieldsConfig; +}; + +export type ModelsEnhanceMap = { + [TModel in ModelNames]?: ModelConfig; +}; + +export function applyModelsEnhanceMap(modelsEnhanceMap: ModelsEnhanceMap) { + for (const modelsEnhanceMapKey of Object.keys(modelsEnhanceMap)) { + const modelName = modelsEnhanceMapKey as keyof typeof modelsEnhanceMap; + const modelConfig = modelsEnhanceMap[modelName]!; + const modelClass = models[modelName]; + const modelTarget = modelClass.prototype; + applyTypeClassEnhanceConfig( + modelConfig, + modelClass, + modelTarget, + modelsInfo[modelName as keyof typeof modelsInfo], + ); + } +} + +const outputsInfo = { + AggregatePost: ["_count", "_avg", "_sum", "_min", "_max"], + PostGroupBy: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points", "_count", "_avg", "_sum", "_min", "_max"], + AggregateUser: ["_count", "_min", "_max"], + UserGroupBy: ["id", "createdAt", "updatedAt", "username", "password", "email", "_count", "_min", "_max"], + AggregateUpvote: ["_count", "_min", "_max"], + UpvoteGroupBy: ["userID", "postID", "_count", "_min", "_max"], + AggregateDownvote: ["_count", "_min", "_max"], + DownvoteGroupBy: ["userID", "postID", "_count", "_min", "_max"], + AggregateResetPasswordToken: ["_count", "_min", "_max"], + ResetPasswordTokenGroupBy: ["id", "userID", "value", "_count", "_min", "_max"], + AffectedRowsOutput: ["count"], + PostCountAggregate: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points", "_all"], + PostAvgAggregate: ["points"], + PostSumAggregate: ["points"], + PostMinAggregate: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + PostMaxAggregate: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + UserCount: ["Posts"], + UserCountAggregate: ["id", "createdAt", "updatedAt", "username", "password", "email", "_all"], + UserMinAggregate: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UserMaxAggregate: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UpvoteCountAggregate: ["userID", "postID", "_all"], + UpvoteMinAggregate: ["userID", "postID"], + UpvoteMaxAggregate: ["userID", "postID"], + DownvoteCountAggregate: ["userID", "postID", "_all"], + DownvoteMinAggregate: ["userID", "postID"], + DownvoteMaxAggregate: ["userID", "postID"], + ResetPasswordTokenCountAggregate: ["id", "userID", "value", "_all"], + ResetPasswordTokenMinAggregate: ["id", "userID", "value"], + ResetPasswordTokenMaxAggregate: ["id", "userID", "value"], + CreateManyAndReturnPost: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points", "author"], + CreateManyAndReturnUser: ["id", "createdAt", "updatedAt", "username", "password", "email"], + CreateManyAndReturnUpvote: ["userID", "postID"], + CreateManyAndReturnDownvote: ["userID", "postID"], + CreateManyAndReturnResetPasswordToken: ["id", "userID", "value"] +}; + +type OutputTypesNames = keyof typeof outputTypes; + +type OutputTypeFieldNames = Exclude< + keyof typeof outputTypes[TOutput]["prototype"], + number | symbol +>; + +type OutputTypeFieldsConfig< + TOutput extends OutputTypesNames +> = FieldsConfig>; + +export type OutputTypeConfig = { + class?: ClassDecorator[]; + fields?: OutputTypeFieldsConfig; +}; + +export type OutputTypesEnhanceMap = { + [TOutput in OutputTypesNames]?: OutputTypeConfig; +}; + +export function applyOutputTypesEnhanceMap( + outputTypesEnhanceMap: OutputTypesEnhanceMap, +) { + for (const outputTypeEnhanceMapKey of Object.keys(outputTypesEnhanceMap)) { + const outputTypeName = outputTypeEnhanceMapKey as keyof typeof outputTypesEnhanceMap; + const typeConfig = outputTypesEnhanceMap[outputTypeName]!; + const typeClass = outputTypes[outputTypeName]; + const typeTarget = typeClass.prototype; + applyTypeClassEnhanceConfig( + typeConfig, + typeClass, + typeTarget, + outputsInfo[outputTypeName as keyof typeof outputsInfo], + ); + } +} + +const inputsInfo = { + PostWhereInput: ["AND", "OR", "NOT", "id", "createdAt", "updatedAt", "title", "content", "authorID", "points", "author"], + PostOrderByWithRelationInput: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points", "author"], + PostWhereUniqueInput: ["id", "createdAt", "updatedAt", "AND", "OR", "NOT", "title", "content", "authorID", "points", "author"], + PostOrderByWithAggregationInput: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points", "_count", "_avg", "_max", "_min", "_sum"], + PostScalarWhereWithAggregatesInput: ["AND", "OR", "NOT", "id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + UserWhereInput: ["AND", "OR", "NOT", "id", "createdAt", "updatedAt", "username", "password", "email", "Posts"], + UserOrderByWithRelationInput: ["id", "createdAt", "updatedAt", "username", "password", "email", "Posts"], + UserWhereUniqueInput: ["id", "username", "email", "AND", "OR", "NOT", "createdAt", "updatedAt", "password", "Posts"], + UserOrderByWithAggregationInput: ["id", "createdAt", "updatedAt", "username", "password", "email", "_count", "_max", "_min"], + UserScalarWhereWithAggregatesInput: ["AND", "OR", "NOT", "id", "createdAt", "updatedAt", "username", "password", "email"], + UpvoteWhereInput: ["AND", "OR", "NOT", "userID", "postID"], + UpvoteOrderByWithRelationInput: ["userID", "postID"], + UpvoteWhereUniqueInput: ["userID_postID", "AND", "OR", "NOT", "userID", "postID"], + UpvoteOrderByWithAggregationInput: ["userID", "postID", "_count", "_max", "_min"], + UpvoteScalarWhereWithAggregatesInput: ["AND", "OR", "NOT", "userID", "postID"], + DownvoteWhereInput: ["AND", "OR", "NOT", "userID", "postID"], + DownvoteOrderByWithRelationInput: ["userID", "postID"], + DownvoteWhereUniqueInput: ["userID_postID", "AND", "OR", "NOT", "userID", "postID"], + DownvoteOrderByWithAggregationInput: ["userID", "postID", "_count", "_max", "_min"], + DownvoteScalarWhereWithAggregatesInput: ["AND", "OR", "NOT", "userID", "postID"], + ResetPasswordTokenWhereInput: ["AND", "OR", "NOT", "id", "userID", "value"], + ResetPasswordTokenOrderByWithRelationInput: ["id", "userID", "value"], + ResetPasswordTokenWhereUniqueInput: ["id", "value", "userID_value", "AND", "OR", "NOT", "userID"], + ResetPasswordTokenOrderByWithAggregationInput: ["id", "userID", "value", "_count", "_max", "_min"], + ResetPasswordTokenScalarWhereWithAggregatesInput: ["AND", "OR", "NOT", "id", "userID", "value"], + PostCreateInput: ["id", "createdAt", "updatedAt", "title", "content", "points", "author"], + PostUpdateInput: ["id", "createdAt", "updatedAt", "title", "content", "points", "author"], + PostCreateManyInput: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + PostUpdateManyMutationInput: ["id", "createdAt", "updatedAt", "title", "content", "points"], + UserCreateInput: ["id", "createdAt", "updatedAt", "username", "password", "email", "Posts"], + UserUpdateInput: ["id", "createdAt", "updatedAt", "username", "password", "email", "Posts"], + UserCreateManyInput: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UserUpdateManyMutationInput: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UpvoteCreateInput: ["userID", "postID"], + UpvoteUpdateInput: ["userID", "postID"], + UpvoteCreateManyInput: ["userID", "postID"], + UpvoteUpdateManyMutationInput: ["userID", "postID"], + DownvoteCreateInput: ["userID", "postID"], + DownvoteUpdateInput: ["userID", "postID"], + DownvoteCreateManyInput: ["userID", "postID"], + DownvoteUpdateManyMutationInput: ["userID", "postID"], + ResetPasswordTokenCreateInput: ["id", "userID", "value"], + ResetPasswordTokenUpdateInput: ["id", "userID", "value"], + ResetPasswordTokenCreateManyInput: ["id", "userID", "value"], + ResetPasswordTokenUpdateManyMutationInput: ["id", "userID", "value"], + StringFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "mode", "not"], + DateTimeFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not"], + StringNullableFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "mode", "not"], + IntFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not"], + UserRelationFilter: ["is", "isNot"], + SortOrderInput: ["sort", "nulls"], + PostCountOrderByAggregateInput: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + PostAvgOrderByAggregateInput: ["points"], + PostMaxOrderByAggregateInput: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + PostMinOrderByAggregateInput: ["id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + PostSumOrderByAggregateInput: ["points"], + StringWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "mode", "not", "_count", "_min", "_max"], + DateTimeWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not", "_count", "_min", "_max"], + StringNullableWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "mode", "not", "_count", "_min", "_max"], + IntWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not", "_count", "_avg", "_sum", "_min", "_max"], + PostListRelationFilter: ["every", "some", "none"], + PostOrderByRelationAggregateInput: ["_count"], + UserCountOrderByAggregateInput: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UserMaxOrderByAggregateInput: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UserMinOrderByAggregateInput: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UpvoteUserIDPostIDCompoundUniqueInput: ["userID", "postID"], + UpvoteCountOrderByAggregateInput: ["userID", "postID"], + UpvoteMaxOrderByAggregateInput: ["userID", "postID"], + UpvoteMinOrderByAggregateInput: ["userID", "postID"], + DownvoteUserIDPostIDCompoundUniqueInput: ["userID", "postID"], + DownvoteCountOrderByAggregateInput: ["userID", "postID"], + DownvoteMaxOrderByAggregateInput: ["userID", "postID"], + DownvoteMinOrderByAggregateInput: ["userID", "postID"], + ResetPasswordTokenUserIDValueCompoundUniqueInput: ["userID", "value"], + ResetPasswordTokenCountOrderByAggregateInput: ["id", "userID", "value"], + ResetPasswordTokenMaxOrderByAggregateInput: ["id", "userID", "value"], + ResetPasswordTokenMinOrderByAggregateInput: ["id", "userID", "value"], + UserCreateNestedOneWithoutPostsInput: ["create", "connectOrCreate", "connect"], + StringFieldUpdateOperationsInput: ["set"], + DateTimeFieldUpdateOperationsInput: ["set"], + NullableStringFieldUpdateOperationsInput: ["set"], + IntFieldUpdateOperationsInput: ["set", "increment", "decrement", "multiply", "divide"], + UserUpdateOneRequiredWithoutPostsNestedInput: ["create", "connectOrCreate", "upsert", "connect", "update"], + PostCreateNestedManyWithoutAuthorInput: ["create", "connectOrCreate", "createMany", "connect"], + PostUpdateManyWithoutAuthorNestedInput: ["create", "connectOrCreate", "upsert", "createMany", "set", "disconnect", "delete", "connect", "update", "updateMany", "deleteMany"], + NestedStringFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "not"], + NestedDateTimeFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not"], + NestedStringNullableFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "not"], + NestedIntFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not"], + NestedStringWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "not", "_count", "_min", "_max"], + NestedDateTimeWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not", "_count", "_min", "_max"], + NestedStringNullableWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "contains", "startsWith", "endsWith", "not", "_count", "_min", "_max"], + NestedIntNullableFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not"], + NestedIntWithAggregatesFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not", "_count", "_avg", "_sum", "_min", "_max"], + NestedFloatFilter: ["equals", "in", "notIn", "lt", "lte", "gt", "gte", "not"], + UserCreateWithoutPostsInput: ["id", "createdAt", "updatedAt", "username", "password", "email"], + UserCreateOrConnectWithoutPostsInput: ["where", "create"], + UserUpsertWithoutPostsInput: ["update", "create", "where"], + UserUpdateToOneWithWhereWithoutPostsInput: ["where", "data"], + UserUpdateWithoutPostsInput: ["id", "createdAt", "updatedAt", "username", "password", "email"], + PostCreateWithoutAuthorInput: ["id", "createdAt", "updatedAt", "title", "content", "points"], + PostCreateOrConnectWithoutAuthorInput: ["where", "create"], + PostCreateManyAuthorInputEnvelope: ["data", "skipDuplicates"], + PostUpsertWithWhereUniqueWithoutAuthorInput: ["where", "update", "create"], + PostUpdateWithWhereUniqueWithoutAuthorInput: ["where", "data"], + PostUpdateManyWithWhereWithoutAuthorInput: ["where", "data"], + PostScalarWhereInput: ["AND", "OR", "NOT", "id", "createdAt", "updatedAt", "title", "content", "authorID", "points"], + PostCreateManyAuthorInput: ["id", "createdAt", "updatedAt", "title", "content", "points"], + PostUpdateWithoutAuthorInput: ["id", "createdAt", "updatedAt", "title", "content", "points"] +}; + +type InputTypesNames = keyof typeof inputTypes; + +type InputTypeFieldNames = Exclude< + keyof typeof inputTypes[TInput]["prototype"], + number | symbol +>; + +type InputTypeFieldsConfig< + TInput extends InputTypesNames +> = FieldsConfig>; + +export type InputTypeConfig = { + class?: ClassDecorator[]; + fields?: InputTypeFieldsConfig; +}; + +export type InputTypesEnhanceMap = { + [TInput in InputTypesNames]?: InputTypeConfig; +}; + +export function applyInputTypesEnhanceMap( + inputTypesEnhanceMap: InputTypesEnhanceMap, +) { + for (const inputTypeEnhanceMapKey of Object.keys(inputTypesEnhanceMap)) { + const inputTypeName = inputTypeEnhanceMapKey as keyof typeof inputTypesEnhanceMap; + const typeConfig = inputTypesEnhanceMap[inputTypeName]!; + const typeClass = inputTypes[inputTypeName]; + const typeTarget = typeClass.prototype; + applyTypeClassEnhanceConfig( + typeConfig, + typeClass, + typeTarget, + inputsInfo[inputTypeName as keyof typeof inputsInfo], + ); + } +} + diff --git a/backend/prisma/generated/type-graphql/enums/DownvoteScalarFieldEnum.ts b/backend/prisma/generated/type-graphql/enums/DownvoteScalarFieldEnum.ts new file mode 100644 index 0000000..4ad6154 --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/DownvoteScalarFieldEnum.ts @@ -0,0 +1,10 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum DownvoteScalarFieldEnum { + userID = "userID", + postID = "postID" +} +TypeGraphQL.registerEnumType(DownvoteScalarFieldEnum, { + name: "DownvoteScalarFieldEnum", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/NullsOrder.ts b/backend/prisma/generated/type-graphql/enums/NullsOrder.ts new file mode 100644 index 0000000..e532185 --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/NullsOrder.ts @@ -0,0 +1,10 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum NullsOrder { + first = "first", + last = "last" +} +TypeGraphQL.registerEnumType(NullsOrder, { + name: "NullsOrder", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/PostScalarFieldEnum.ts b/backend/prisma/generated/type-graphql/enums/PostScalarFieldEnum.ts new file mode 100644 index 0000000..68b308b --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/PostScalarFieldEnum.ts @@ -0,0 +1,15 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum PostScalarFieldEnum { + id = "id", + createdAt = "createdAt", + updatedAt = "updatedAt", + title = "title", + content = "content", + authorID = "authorID", + points = "points" +} +TypeGraphQL.registerEnumType(PostScalarFieldEnum, { + name: "PostScalarFieldEnum", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/QueryMode.ts b/backend/prisma/generated/type-graphql/enums/QueryMode.ts new file mode 100644 index 0000000..17abeea --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/QueryMode.ts @@ -0,0 +1,10 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum QueryMode { + "default" = "default", + insensitive = "insensitive" +} +TypeGraphQL.registerEnumType(QueryMode, { + name: "QueryMode", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/ResetPasswordTokenScalarFieldEnum.ts b/backend/prisma/generated/type-graphql/enums/ResetPasswordTokenScalarFieldEnum.ts new file mode 100644 index 0000000..1d382d7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/ResetPasswordTokenScalarFieldEnum.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum ResetPasswordTokenScalarFieldEnum { + id = "id", + userID = "userID", + value = "value" +} +TypeGraphQL.registerEnumType(ResetPasswordTokenScalarFieldEnum, { + name: "ResetPasswordTokenScalarFieldEnum", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/SortOrder.ts b/backend/prisma/generated/type-graphql/enums/SortOrder.ts new file mode 100644 index 0000000..88d05ed --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/SortOrder.ts @@ -0,0 +1,10 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum SortOrder { + asc = "asc", + desc = "desc" +} +TypeGraphQL.registerEnumType(SortOrder, { + name: "SortOrder", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/TransactionIsolationLevel.ts b/backend/prisma/generated/type-graphql/enums/TransactionIsolationLevel.ts new file mode 100644 index 0000000..5ba35a4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/TransactionIsolationLevel.ts @@ -0,0 +1,12 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum TransactionIsolationLevel { + ReadUncommitted = "ReadUncommitted", + ReadCommitted = "ReadCommitted", + RepeatableRead = "RepeatableRead", + Serializable = "Serializable" +} +TypeGraphQL.registerEnumType(TransactionIsolationLevel, { + name: "TransactionIsolationLevel", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/UpvoteScalarFieldEnum.ts b/backend/prisma/generated/type-graphql/enums/UpvoteScalarFieldEnum.ts new file mode 100644 index 0000000..3e6b89a --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/UpvoteScalarFieldEnum.ts @@ -0,0 +1,10 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum UpvoteScalarFieldEnum { + userID = "userID", + postID = "postID" +} +TypeGraphQL.registerEnumType(UpvoteScalarFieldEnum, { + name: "UpvoteScalarFieldEnum", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/UserScalarFieldEnum.ts b/backend/prisma/generated/type-graphql/enums/UserScalarFieldEnum.ts new file mode 100644 index 0000000..0bf9249 --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/UserScalarFieldEnum.ts @@ -0,0 +1,14 @@ +import * as TypeGraphQL from "type-graphql"; + +export enum UserScalarFieldEnum { + id = "id", + createdAt = "createdAt", + updatedAt = "updatedAt", + username = "username", + password = "password", + email = "email" +} +TypeGraphQL.registerEnumType(UserScalarFieldEnum, { + name: "UserScalarFieldEnum", + description: undefined, +}); diff --git a/backend/prisma/generated/type-graphql/enums/index.ts b/backend/prisma/generated/type-graphql/enums/index.ts new file mode 100644 index 0000000..7f7871d --- /dev/null +++ b/backend/prisma/generated/type-graphql/enums/index.ts @@ -0,0 +1,9 @@ +export { DownvoteScalarFieldEnum } from "./DownvoteScalarFieldEnum"; +export { NullsOrder } from "./NullsOrder"; +export { PostScalarFieldEnum } from "./PostScalarFieldEnum"; +export { QueryMode } from "./QueryMode"; +export { ResetPasswordTokenScalarFieldEnum } from "./ResetPasswordTokenScalarFieldEnum"; +export { SortOrder } from "./SortOrder"; +export { TransactionIsolationLevel } from "./TransactionIsolationLevel"; +export { UpvoteScalarFieldEnum } from "./UpvoteScalarFieldEnum"; +export { UserScalarFieldEnum } from "./UserScalarFieldEnum"; diff --git a/backend/prisma/generated/type-graphql/helpers.ts b/backend/prisma/generated/type-graphql/helpers.ts new file mode 100644 index 0000000..3682ce0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/helpers.ts @@ -0,0 +1,61 @@ +import type { GraphQLResolveInfo } from "graphql"; +import graphqlFields from "graphql-fields"; + +export function transformInfoIntoPrismaArgs(info: GraphQLResolveInfo): Record { + const fields: Record = graphqlFields( + // suppress GraphQLResolveInfo types issue + info as any, + {}, + { + excludedFields: ['__typename'], + processArguments: true, + } + ); + return transformFields(fields); +} + +function transformFields(fields: Record): Record { + return Object.fromEntries( + Object.entries(fields) + .map<[string, any]>(([key, value]) => { + if (Object.keys(value).length === 0) { + return [key, true]; + } + if ("__arguments" in value) { + return [key, Object.fromEntries( + value.__arguments.map((argument: object) => { + const [[key, { value }]] = Object.entries(argument); + return [key, value]; + }) + )]; + } + return [key, transformFields(value)]; + }), + ); +} + +export function getPrismaFromContext(context: any) { + const prismaClient = context["prisma"]; + if (!prismaClient) { + throw new Error("Unable to find Prisma Client in GraphQL context. Please provide it under the `context[\"prisma\"]` key."); + } + return prismaClient; +} + +export function transformCountFieldIntoSelectRelationsCount(_count: object) { + return { + include: { + _count: { + select: { + ...Object.fromEntries( + Object.entries(_count).filter(([_, v]) => v != null) + ), + } + }, + }, + } +} + + + + diff --git a/backend/prisma/generated/type-graphql/index.ts b/backend/prisma/generated/type-graphql/index.ts new file mode 100644 index 0000000..748d464 --- /dev/null +++ b/backend/prisma/generated/type-graphql/index.ts @@ -0,0 +1,23 @@ +import * as crudResolversImport from "./resolvers/crud/resolvers-crud.index"; +import * as relationResolversImport from "./resolvers/relations/resolvers.index"; +import { NonEmptyArray } from "type-graphql"; + +export * from "./enums"; +export * from "./models"; +export * from "./resolvers/crud"; + +export const crudResolvers = Object.values(crudResolversImport) as unknown as NonEmptyArray; + +export * from "./resolvers/relations"; + +export const relationResolvers = Object.values(relationResolversImport) as unknown as NonEmptyArray; + +export * from "./resolvers/inputs"; +export * from "./resolvers/outputs"; +export * from "./enhance"; +export * from "./scalars"; + +export const resolvers = [ + ...crudResolvers, + ...relationResolvers, +] as unknown as NonEmptyArray; diff --git a/backend/prisma/generated/type-graphql/models/Downvote.ts b/backend/prisma/generated/type-graphql/models/Downvote.ts new file mode 100644 index 0000000..120f5cc --- /dev/null +++ b/backend/prisma/generated/type-graphql/models/Downvote.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../scalars"; + +@TypeGraphQL.ObjectType("Downvote", {}) +export class Downvote { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/models/Post.ts b/backend/prisma/generated/type-graphql/models/Post.ts new file mode 100644 index 0000000..05d3b8d --- /dev/null +++ b/backend/prisma/generated/type-graphql/models/Post.ts @@ -0,0 +1,45 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../scalars"; +import { User } from "../models/User"; + +@TypeGraphQL.ObjectType("Post", {}) +export class Post { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + createdAt!: Date; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + updatedAt!: Date; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title?: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + content!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + authorID!: string; + + author?: User; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + points!: number; +} diff --git a/backend/prisma/generated/type-graphql/models/ResetPasswordToken.ts b/backend/prisma/generated/type-graphql/models/ResetPasswordToken.ts new file mode 100644 index 0000000..1a748e8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/models/ResetPasswordToken.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../scalars"; + +@TypeGraphQL.ObjectType("ResetPasswordToken", {}) +export class ResetPasswordToken { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + value!: string; +} diff --git a/backend/prisma/generated/type-graphql/models/Upvote.ts b/backend/prisma/generated/type-graphql/models/Upvote.ts new file mode 100644 index 0000000..888d0b2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/models/Upvote.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../scalars"; + +@TypeGraphQL.ObjectType("Upvote", {}) +export class Upvote { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/models/User.ts b/backend/prisma/generated/type-graphql/models/User.ts new file mode 100644 index 0000000..9950d07 --- /dev/null +++ b/backend/prisma/generated/type-graphql/models/User.ts @@ -0,0 +1,46 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../scalars"; +import { Post } from "../models/Post"; +import { UserCount } from "../resolvers/outputs/UserCount"; + +@TypeGraphQL.ObjectType("User", {}) +export class User { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + createdAt!: Date; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + updatedAt!: Date; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + username!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + password!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email?: string | null; + + Posts?: Post[]; + + @TypeGraphQL.Field(_type => UserCount, { + nullable: true + }) + _count?: UserCount | null; +} diff --git a/backend/prisma/generated/type-graphql/models/index.ts b/backend/prisma/generated/type-graphql/models/index.ts new file mode 100644 index 0000000..8fd3207 --- /dev/null +++ b/backend/prisma/generated/type-graphql/models/index.ts @@ -0,0 +1,5 @@ +export { Downvote } from "./Downvote"; +export { Post } from "./Post"; +export { ResetPasswordToken } from "./ResetPasswordToken"; +export { Upvote } from "./Upvote"; +export { User } from "./User"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/AggregateDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/AggregateDownvoteResolver.ts new file mode 100644 index 0000000..783a9dd --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/AggregateDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateDownvoteArgs } from "./args/AggregateDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { AggregateDownvote } from "../../outputs/AggregateDownvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class AggregateDownvoteResolver { + @TypeGraphQL.Query(_returns => AggregateDownvote, { + nullable: false + }) + async aggregateDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateDownvoteArgs): Promise { + return getPrismaFromContext(ctx).downvote.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyAndReturnDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyAndReturnDownvoteResolver.ts new file mode 100644 index 0000000..08d23ac --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyAndReturnDownvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyAndReturnDownvoteArgs } from "./args/CreateManyAndReturnDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { CreateManyAndReturnDownvote } from "../../outputs/CreateManyAndReturnDownvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class CreateManyAndReturnDownvoteResolver { + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnDownvote], { + nullable: false + }) + async createManyAndReturnDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyDownvoteResolver.ts new file mode 100644 index 0000000..c9d9140 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateManyDownvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyDownvoteArgs } from "./args/CreateManyDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class CreateManyDownvoteResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateOneDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateOneDownvoteResolver.ts new file mode 100644 index 0000000..d28ef9d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/CreateOneDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateOneDownvoteArgs } from "./args/CreateOneDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class CreateOneDownvoteResolver { + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: false + }) + async createOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteManyDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteManyDownvoteResolver.ts new file mode 100644 index 0000000..973ce18 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteManyDownvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteManyDownvoteArgs } from "./args/DeleteManyDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class DeleteManyDownvoteResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteOneDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteOneDownvoteResolver.ts new file mode 100644 index 0000000..073701c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DeleteOneDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteOneDownvoteArgs } from "./args/DeleteOneDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class DeleteOneDownvoteResolver { + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: true + }) + async deleteOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DownvoteCrudResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DownvoteCrudResolver.ts new file mode 100644 index 0000000..a8f4dd9 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/DownvoteCrudResolver.ts @@ -0,0 +1,192 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateDownvoteArgs } from "./args/AggregateDownvoteArgs"; +import { CreateManyAndReturnDownvoteArgs } from "./args/CreateManyAndReturnDownvoteArgs"; +import { CreateManyDownvoteArgs } from "./args/CreateManyDownvoteArgs"; +import { CreateOneDownvoteArgs } from "./args/CreateOneDownvoteArgs"; +import { DeleteManyDownvoteArgs } from "./args/DeleteManyDownvoteArgs"; +import { DeleteOneDownvoteArgs } from "./args/DeleteOneDownvoteArgs"; +import { FindFirstDownvoteArgs } from "./args/FindFirstDownvoteArgs"; +import { FindFirstDownvoteOrThrowArgs } from "./args/FindFirstDownvoteOrThrowArgs"; +import { FindManyDownvoteArgs } from "./args/FindManyDownvoteArgs"; +import { FindUniqueDownvoteArgs } from "./args/FindUniqueDownvoteArgs"; +import { FindUniqueDownvoteOrThrowArgs } from "./args/FindUniqueDownvoteOrThrowArgs"; +import { GroupByDownvoteArgs } from "./args/GroupByDownvoteArgs"; +import { UpdateManyDownvoteArgs } from "./args/UpdateManyDownvoteArgs"; +import { UpdateOneDownvoteArgs } from "./args/UpdateOneDownvoteArgs"; +import { UpsertOneDownvoteArgs } from "./args/UpsertOneDownvoteArgs"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; +import { Downvote } from "../../../models/Downvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { AggregateDownvote } from "../../outputs/AggregateDownvote"; +import { CreateManyAndReturnDownvote } from "../../outputs/CreateManyAndReturnDownvote"; +import { DownvoteGroupBy } from "../../outputs/DownvoteGroupBy"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class DownvoteCrudResolver { + @TypeGraphQL.Query(_returns => AggregateDownvote, { + nullable: false + }) + async aggregateDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateDownvoteArgs): Promise { + return getPrismaFromContext(ctx).downvote.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnDownvote], { + nullable: false + }) + async createManyAndReturnDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: false + }) + async createOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: true + }) + async deleteOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async findFirstDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async findFirstDownvoteOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstDownvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [Downvote], { + nullable: false + }) + async downvotes(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async downvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async getDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueDownvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [DownvoteGroupBy], { + nullable: false + }) + async groupByDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByDownvoteArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: true + }) + async updateOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: false + }) + async upsertOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteOrThrowResolver.ts new file mode 100644 index 0000000..663c220 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstDownvoteOrThrowArgs } from "./args/FindFirstDownvoteOrThrowArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class FindFirstDownvoteOrThrowResolver { + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async findFirstDownvoteOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstDownvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteResolver.ts new file mode 100644 index 0000000..6e8a2a6 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindFirstDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstDownvoteArgs } from "./args/FindFirstDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class FindFirstDownvoteResolver { + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async findFirstDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindManyDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindManyDownvoteResolver.ts new file mode 100644 index 0000000..b989a2d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindManyDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindManyDownvoteArgs } from "./args/FindManyDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class FindManyDownvoteResolver { + @TypeGraphQL.Query(_returns => [Downvote], { + nullable: false + }) + async downvotes(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteOrThrowResolver.ts new file mode 100644 index 0000000..203e4bd --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueDownvoteOrThrowArgs } from "./args/FindUniqueDownvoteOrThrowArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class FindUniqueDownvoteOrThrowResolver { + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async getDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueDownvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteResolver.ts new file mode 100644 index 0000000..e038f71 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/FindUniqueDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueDownvoteArgs } from "./args/FindUniqueDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class FindUniqueDownvoteResolver { + @TypeGraphQL.Query(_returns => Downvote, { + nullable: true + }) + async downvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/GroupByDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/GroupByDownvoteResolver.ts new file mode 100644 index 0000000..bee42bb --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/GroupByDownvoteResolver.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { GroupByDownvoteArgs } from "./args/GroupByDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { DownvoteGroupBy } from "../../outputs/DownvoteGroupBy"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class GroupByDownvoteResolver { + @TypeGraphQL.Query(_returns => [DownvoteGroupBy], { + nullable: false + }) + async groupByDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByDownvoteArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateManyDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateManyDownvoteResolver.ts new file mode 100644 index 0000000..b75a7f5 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateManyDownvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateManyDownvoteArgs } from "./args/UpdateManyDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class UpdateManyDownvoteResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateOneDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateOneDownvoteResolver.ts new file mode 100644 index 0000000..18e8450 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpdateOneDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateOneDownvoteArgs } from "./args/UpdateOneDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class UpdateOneDownvoteResolver { + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: true + }) + async updateOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpsertOneDownvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpsertOneDownvoteResolver.ts new file mode 100644 index 0000000..3da1496 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/UpsertOneDownvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpsertOneDownvoteArgs } from "./args/UpsertOneDownvoteArgs"; +import { Downvote } from "../../../models/Downvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Downvote) +export class UpsertOneDownvoteResolver { + @TypeGraphQL.Mutation(_returns => Downvote, { + nullable: false + }) + async upsertOneDownvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneDownvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).downvote.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/AggregateDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/AggregateDownvoteArgs.ts new file mode 100644 index 0000000..dc61c7b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/AggregateDownvoteArgs.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteOrderByWithRelationInput } from "../../../inputs/DownvoteOrderByWithRelationInput"; +import { DownvoteWhereInput } from "../../../inputs/DownvoteWhereInput"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class AggregateDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereInput, { + nullable: true + }) + where?: DownvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [DownvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: DownvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: true + }) + cursor?: DownvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyAndReturnDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyAndReturnDownvoteArgs.ts new file mode 100644 index 0000000..1b5cdd3 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyAndReturnDownvoteArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteCreateManyInput } from "../../../inputs/DownvoteCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyAndReturnDownvoteArgs { + @TypeGraphQL.Field(_type => [DownvoteCreateManyInput], { + nullable: false + }) + data!: DownvoteCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyDownvoteArgs.ts new file mode 100644 index 0000000..ed5168a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateManyDownvoteArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteCreateManyInput } from "../../../inputs/DownvoteCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyDownvoteArgs { + @TypeGraphQL.Field(_type => [DownvoteCreateManyInput], { + nullable: false + }) + data!: DownvoteCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateOneDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateOneDownvoteArgs.ts new file mode 100644 index 0000000..cca3b5f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/CreateOneDownvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteCreateInput } from "../../../inputs/DownvoteCreateInput"; + +@TypeGraphQL.ArgsType() +export class CreateOneDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteCreateInput, { + nullable: false + }) + data!: DownvoteCreateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteManyDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteManyDownvoteArgs.ts new file mode 100644 index 0000000..e37ea26 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteManyDownvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteWhereInput } from "../../../inputs/DownvoteWhereInput"; + +@TypeGraphQL.ArgsType() +export class DeleteManyDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereInput, { + nullable: true + }) + where?: DownvoteWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteOneDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteOneDownvoteArgs.ts new file mode 100644 index 0000000..1242ac8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/DeleteOneDownvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class DeleteOneDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: false + }) + where!: DownvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteArgs.ts new file mode 100644 index 0000000..4e58707 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteOrderByWithRelationInput } from "../../../inputs/DownvoteOrderByWithRelationInput"; +import { DownvoteWhereInput } from "../../../inputs/DownvoteWhereInput"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; +import { DownvoteScalarFieldEnum } from "../../../../enums/DownvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereInput, { + nullable: true + }) + where?: DownvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [DownvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: DownvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: true + }) + cursor?: DownvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [DownvoteScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"userID" | "postID"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteOrThrowArgs.ts new file mode 100644 index 0000000..44593ff --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindFirstDownvoteOrThrowArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteOrderByWithRelationInput } from "../../../inputs/DownvoteOrderByWithRelationInput"; +import { DownvoteWhereInput } from "../../../inputs/DownvoteWhereInput"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; +import { DownvoteScalarFieldEnum } from "../../../../enums/DownvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstDownvoteOrThrowArgs { + @TypeGraphQL.Field(_type => DownvoteWhereInput, { + nullable: true + }) + where?: DownvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [DownvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: DownvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: true + }) + cursor?: DownvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [DownvoteScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"userID" | "postID"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindManyDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindManyDownvoteArgs.ts new file mode 100644 index 0000000..16c447e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindManyDownvoteArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteOrderByWithRelationInput } from "../../../inputs/DownvoteOrderByWithRelationInput"; +import { DownvoteWhereInput } from "../../../inputs/DownvoteWhereInput"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; +import { DownvoteScalarFieldEnum } from "../../../../enums/DownvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindManyDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereInput, { + nullable: true + }) + where?: DownvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [DownvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: DownvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: true + }) + cursor?: DownvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [DownvoteScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"userID" | "postID"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteArgs.ts new file mode 100644 index 0000000..17b190c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: false + }) + where!: DownvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteOrThrowArgs.ts new file mode 100644 index 0000000..3345ace --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/FindUniqueDownvoteOrThrowArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueDownvoteOrThrowArgs { + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: false + }) + where!: DownvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/GroupByDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/GroupByDownvoteArgs.ts new file mode 100644 index 0000000..1477ca9 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/GroupByDownvoteArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteOrderByWithAggregationInput } from "../../../inputs/DownvoteOrderByWithAggregationInput"; +import { DownvoteScalarWhereWithAggregatesInput } from "../../../inputs/DownvoteScalarWhereWithAggregatesInput"; +import { DownvoteWhereInput } from "../../../inputs/DownvoteWhereInput"; +import { DownvoteScalarFieldEnum } from "../../../../enums/DownvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class GroupByDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereInput, { + nullable: true + }) + where?: DownvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [DownvoteOrderByWithAggregationInput], { + nullable: true + }) + orderBy?: DownvoteOrderByWithAggregationInput[] | undefined; + + @TypeGraphQL.Field(_type => [DownvoteScalarFieldEnum], { + nullable: false + }) + by!: Array<"userID" | "postID">; + + @TypeGraphQL.Field(_type => DownvoteScalarWhereWithAggregatesInput, { + nullable: true + }) + having?: DownvoteScalarWhereWithAggregatesInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateManyDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateManyDownvoteArgs.ts new file mode 100644 index 0000000..23d55d1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateManyDownvoteArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteUpdateManyMutationInput } from "../../../inputs/DownvoteUpdateManyMutationInput"; +import { DownvoteWhereInput } from "../../../inputs/DownvoteWhereInput"; + +@TypeGraphQL.ArgsType() +export class UpdateManyDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteUpdateManyMutationInput, { + nullable: false + }) + data!: DownvoteUpdateManyMutationInput; + + @TypeGraphQL.Field(_type => DownvoteWhereInput, { + nullable: true + }) + where?: DownvoteWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateOneDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateOneDownvoteArgs.ts new file mode 100644 index 0000000..dce6c55 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpdateOneDownvoteArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteUpdateInput } from "../../../inputs/DownvoteUpdateInput"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpdateOneDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteUpdateInput, { + nullable: false + }) + data!: DownvoteUpdateInput; + + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: false + }) + where!: DownvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpsertOneDownvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpsertOneDownvoteArgs.ts new file mode 100644 index 0000000..33ccf2e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/UpsertOneDownvoteArgs.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { DownvoteCreateInput } from "../../../inputs/DownvoteCreateInput"; +import { DownvoteUpdateInput } from "../../../inputs/DownvoteUpdateInput"; +import { DownvoteWhereUniqueInput } from "../../../inputs/DownvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpsertOneDownvoteArgs { + @TypeGraphQL.Field(_type => DownvoteWhereUniqueInput, { + nullable: false + }) + where!: DownvoteWhereUniqueInput; + + @TypeGraphQL.Field(_type => DownvoteCreateInput, { + nullable: false + }) + create!: DownvoteCreateInput; + + @TypeGraphQL.Field(_type => DownvoteUpdateInput, { + nullable: false + }) + update!: DownvoteUpdateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/index.ts new file mode 100644 index 0000000..fbf8a88 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Downvote/args/index.ts @@ -0,0 +1,15 @@ +export { AggregateDownvoteArgs } from "./AggregateDownvoteArgs"; +export { CreateManyAndReturnDownvoteArgs } from "./CreateManyAndReturnDownvoteArgs"; +export { CreateManyDownvoteArgs } from "./CreateManyDownvoteArgs"; +export { CreateOneDownvoteArgs } from "./CreateOneDownvoteArgs"; +export { DeleteManyDownvoteArgs } from "./DeleteManyDownvoteArgs"; +export { DeleteOneDownvoteArgs } from "./DeleteOneDownvoteArgs"; +export { FindFirstDownvoteArgs } from "./FindFirstDownvoteArgs"; +export { FindFirstDownvoteOrThrowArgs } from "./FindFirstDownvoteOrThrowArgs"; +export { FindManyDownvoteArgs } from "./FindManyDownvoteArgs"; +export { FindUniqueDownvoteArgs } from "./FindUniqueDownvoteArgs"; +export { FindUniqueDownvoteOrThrowArgs } from "./FindUniqueDownvoteOrThrowArgs"; +export { GroupByDownvoteArgs } from "./GroupByDownvoteArgs"; +export { UpdateManyDownvoteArgs } from "./UpdateManyDownvoteArgs"; +export { UpdateOneDownvoteArgs } from "./UpdateOneDownvoteArgs"; +export { UpsertOneDownvoteArgs } from "./UpsertOneDownvoteArgs"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/AggregatePostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/AggregatePostResolver.ts new file mode 100644 index 0000000..f9ec3a4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/AggregatePostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregatePostArgs } from "./args/AggregatePostArgs"; +import { Post } from "../../../models/Post"; +import { AggregatePost } from "../../outputs/AggregatePost"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class AggregatePostResolver { + @TypeGraphQL.Query(_returns => AggregatePost, { + nullable: false + }) + async aggregatePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregatePostArgs): Promise { + return getPrismaFromContext(ctx).post.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyAndReturnPostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyAndReturnPostResolver.ts new file mode 100644 index 0000000..9e46239 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyAndReturnPostResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyAndReturnPostArgs } from "./args/CreateManyAndReturnPostArgs"; +import { Post } from "../../../models/Post"; +import { CreateManyAndReturnPost } from "../../outputs/CreateManyAndReturnPost"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class CreateManyAndReturnPostResolver { + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnPost], { + nullable: false + }) + async createManyAndReturnPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyPostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyPostResolver.ts new file mode 100644 index 0000000..121403a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateManyPostResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyPostArgs } from "./args/CreateManyPostArgs"; +import { Post } from "../../../models/Post"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class CreateManyPostResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateOnePostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateOnePostResolver.ts new file mode 100644 index 0000000..06281c0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/CreateOnePostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateOnePostArgs } from "./args/CreateOnePostArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class CreateOnePostResolver { + @TypeGraphQL.Mutation(_returns => Post, { + nullable: false + }) + async createOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteManyPostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteManyPostResolver.ts new file mode 100644 index 0000000..3529a1c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteManyPostResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteManyPostArgs } from "./args/DeleteManyPostArgs"; +import { Post } from "../../../models/Post"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class DeleteManyPostResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteOnePostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteOnePostResolver.ts new file mode 100644 index 0000000..2189a2f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/DeleteOnePostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteOnePostArgs } from "./args/DeleteOnePostArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class DeleteOnePostResolver { + @TypeGraphQL.Mutation(_returns => Post, { + nullable: true + }) + async deleteOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostOrThrowResolver.ts new file mode 100644 index 0000000..67c1583 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstPostOrThrowArgs } from "./args/FindFirstPostOrThrowArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class FindFirstPostOrThrowResolver { + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async findFirstPostOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstPostOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostResolver.ts new file mode 100644 index 0000000..78b6dad --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindFirstPostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstPostArgs } from "./args/FindFirstPostArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class FindFirstPostResolver { + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async findFirstPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindManyPostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindManyPostResolver.ts new file mode 100644 index 0000000..fd67b94 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindManyPostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindManyPostArgs } from "./args/FindManyPostArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class FindManyPostResolver { + @TypeGraphQL.Query(_returns => [Post], { + nullable: false + }) + async posts(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostOrThrowResolver.ts new file mode 100644 index 0000000..e9362bd --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniquePostOrThrowArgs } from "./args/FindUniquePostOrThrowArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class FindUniquePostOrThrowResolver { + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async getPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniquePostOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostResolver.ts new file mode 100644 index 0000000..dac48d5 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/FindUniquePostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniquePostArgs } from "./args/FindUniquePostArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class FindUniquePostResolver { + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async post(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniquePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/GroupByPostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/GroupByPostResolver.ts new file mode 100644 index 0000000..a1c7412 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/GroupByPostResolver.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { GroupByPostArgs } from "./args/GroupByPostArgs"; +import { Post } from "../../../models/Post"; +import { PostGroupBy } from "../../outputs/PostGroupBy"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class GroupByPostResolver { + @TypeGraphQL.Query(_returns => [PostGroupBy], { + nullable: false + }) + async groupByPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByPostArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/PostCrudResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/PostCrudResolver.ts new file mode 100644 index 0000000..a679f1e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/PostCrudResolver.ts @@ -0,0 +1,192 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregatePostArgs } from "./args/AggregatePostArgs"; +import { CreateManyAndReturnPostArgs } from "./args/CreateManyAndReturnPostArgs"; +import { CreateManyPostArgs } from "./args/CreateManyPostArgs"; +import { CreateOnePostArgs } from "./args/CreateOnePostArgs"; +import { DeleteManyPostArgs } from "./args/DeleteManyPostArgs"; +import { DeleteOnePostArgs } from "./args/DeleteOnePostArgs"; +import { FindFirstPostArgs } from "./args/FindFirstPostArgs"; +import { FindFirstPostOrThrowArgs } from "./args/FindFirstPostOrThrowArgs"; +import { FindManyPostArgs } from "./args/FindManyPostArgs"; +import { FindUniquePostArgs } from "./args/FindUniquePostArgs"; +import { FindUniquePostOrThrowArgs } from "./args/FindUniquePostOrThrowArgs"; +import { GroupByPostArgs } from "./args/GroupByPostArgs"; +import { UpdateManyPostArgs } from "./args/UpdateManyPostArgs"; +import { UpdateOnePostArgs } from "./args/UpdateOnePostArgs"; +import { UpsertOnePostArgs } from "./args/UpsertOnePostArgs"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; +import { Post } from "../../../models/Post"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { AggregatePost } from "../../outputs/AggregatePost"; +import { CreateManyAndReturnPost } from "../../outputs/CreateManyAndReturnPost"; +import { PostGroupBy } from "../../outputs/PostGroupBy"; + +@TypeGraphQL.Resolver(_of => Post) +export class PostCrudResolver { + @TypeGraphQL.Query(_returns => AggregatePost, { + nullable: false + }) + async aggregatePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregatePostArgs): Promise { + return getPrismaFromContext(ctx).post.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnPost], { + nullable: false + }) + async createManyAndReturnPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Post, { + nullable: false + }) + async createOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Post, { + nullable: true + }) + async deleteOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async findFirstPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async findFirstPostOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstPostOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [Post], { + nullable: false + }) + async posts(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async post(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniquePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Post, { + nullable: true + }) + async getPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniquePostOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [PostGroupBy], { + nullable: false + }) + async groupByPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByPostArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Post, { + nullable: true + }) + async updateOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Post, { + nullable: false + }) + async upsertOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateManyPostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateManyPostResolver.ts new file mode 100644 index 0000000..5287059 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateManyPostResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateManyPostArgs } from "./args/UpdateManyPostArgs"; +import { Post } from "../../../models/Post"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class UpdateManyPostResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyPost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyPostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateOnePostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateOnePostResolver.ts new file mode 100644 index 0000000..275dca3 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpdateOnePostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateOnePostArgs } from "./args/UpdateOnePostArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class UpdateOnePostResolver { + @TypeGraphQL.Mutation(_returns => Post, { + nullable: true + }) + async updateOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpsertOnePostResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpsertOnePostResolver.ts new file mode 100644 index 0000000..df780b1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/UpsertOnePostResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpsertOnePostArgs } from "./args/UpsertOnePostArgs"; +import { Post } from "../../../models/Post"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class UpsertOnePostResolver { + @TypeGraphQL.Mutation(_returns => Post, { + nullable: false + }) + async upsertOnePost(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOnePostArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/AggregatePostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/AggregatePostArgs.ts new file mode 100644 index 0000000..6f44256 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/AggregatePostArgs.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostOrderByWithRelationInput } from "../../../inputs/PostOrderByWithRelationInput"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class AggregatePostArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => [PostOrderByWithRelationInput], { + nullable: true + }) + orderBy?: PostOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: true + }) + cursor?: PostWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyAndReturnPostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyAndReturnPostArgs.ts new file mode 100644 index 0000000..c5729da --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyAndReturnPostArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostCreateManyInput } from "../../../inputs/PostCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyAndReturnPostArgs { + @TypeGraphQL.Field(_type => [PostCreateManyInput], { + nullable: false + }) + data!: PostCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyPostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyPostArgs.ts new file mode 100644 index 0000000..af387f7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateManyPostArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostCreateManyInput } from "../../../inputs/PostCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyPostArgs { + @TypeGraphQL.Field(_type => [PostCreateManyInput], { + nullable: false + }) + data!: PostCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateOnePostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateOnePostArgs.ts new file mode 100644 index 0000000..6f4d890 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/CreateOnePostArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostCreateInput } from "../../../inputs/PostCreateInput"; + +@TypeGraphQL.ArgsType() +export class CreateOnePostArgs { + @TypeGraphQL.Field(_type => PostCreateInput, { + nullable: false + }) + data!: PostCreateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteManyPostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteManyPostArgs.ts new file mode 100644 index 0000000..39a24fa --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteManyPostArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; + +@TypeGraphQL.ArgsType() +export class DeleteManyPostArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteOnePostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteOnePostArgs.ts new file mode 100644 index 0000000..653c817 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/DeleteOnePostArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class DeleteOnePostArgs { + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostArgs.ts new file mode 100644 index 0000000..661594d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostOrderByWithRelationInput } from "../../../inputs/PostOrderByWithRelationInput"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; +import { PostScalarFieldEnum } from "../../../../enums/PostScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstPostArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => [PostOrderByWithRelationInput], { + nullable: true + }) + orderBy?: PostOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: true + }) + cursor?: PostWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [PostScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "createdAt" | "updatedAt" | "title" | "content" | "authorID" | "points"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostOrThrowArgs.ts new file mode 100644 index 0000000..38452f2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindFirstPostOrThrowArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostOrderByWithRelationInput } from "../../../inputs/PostOrderByWithRelationInput"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; +import { PostScalarFieldEnum } from "../../../../enums/PostScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstPostOrThrowArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => [PostOrderByWithRelationInput], { + nullable: true + }) + orderBy?: PostOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: true + }) + cursor?: PostWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [PostScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "createdAt" | "updatedAt" | "title" | "content" | "authorID" | "points"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindManyPostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindManyPostArgs.ts new file mode 100644 index 0000000..abafa07 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindManyPostArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostOrderByWithRelationInput } from "../../../inputs/PostOrderByWithRelationInput"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; +import { PostScalarFieldEnum } from "../../../../enums/PostScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindManyPostArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => [PostOrderByWithRelationInput], { + nullable: true + }) + orderBy?: PostOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: true + }) + cursor?: PostWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [PostScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "createdAt" | "updatedAt" | "title" | "content" | "authorID" | "points"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostArgs.ts new file mode 100644 index 0000000..8f92f89 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniquePostArgs { + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostOrThrowArgs.ts new file mode 100644 index 0000000..d0a95bf --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/FindUniquePostOrThrowArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniquePostOrThrowArgs { + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/GroupByPostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/GroupByPostArgs.ts new file mode 100644 index 0000000..3be18e0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/GroupByPostArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostOrderByWithAggregationInput } from "../../../inputs/PostOrderByWithAggregationInput"; +import { PostScalarWhereWithAggregatesInput } from "../../../inputs/PostScalarWhereWithAggregatesInput"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; +import { PostScalarFieldEnum } from "../../../../enums/PostScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class GroupByPostArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => [PostOrderByWithAggregationInput], { + nullable: true + }) + orderBy?: PostOrderByWithAggregationInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostScalarFieldEnum], { + nullable: false + }) + by!: Array<"id" | "createdAt" | "updatedAt" | "title" | "content" | "authorID" | "points">; + + @TypeGraphQL.Field(_type => PostScalarWhereWithAggregatesInput, { + nullable: true + }) + having?: PostScalarWhereWithAggregatesInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateManyPostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateManyPostArgs.ts new file mode 100644 index 0000000..9b8da26 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateManyPostArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostUpdateManyMutationInput } from "../../../inputs/PostUpdateManyMutationInput"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; + +@TypeGraphQL.ArgsType() +export class UpdateManyPostArgs { + @TypeGraphQL.Field(_type => PostUpdateManyMutationInput, { + nullable: false + }) + data!: PostUpdateManyMutationInput; + + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateOnePostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateOnePostArgs.ts new file mode 100644 index 0000000..ad9c98e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpdateOnePostArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostUpdateInput } from "../../../inputs/PostUpdateInput"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpdateOnePostArgs { + @TypeGraphQL.Field(_type => PostUpdateInput, { + nullable: false + }) + data!: PostUpdateInput; + + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpsertOnePostArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpsertOnePostArgs.ts new file mode 100644 index 0000000..e0de197 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/UpsertOnePostArgs.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostCreateInput } from "../../../inputs/PostCreateInput"; +import { PostUpdateInput } from "../../../inputs/PostUpdateInput"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpsertOnePostArgs { + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; + + @TypeGraphQL.Field(_type => PostCreateInput, { + nullable: false + }) + create!: PostCreateInput; + + @TypeGraphQL.Field(_type => PostUpdateInput, { + nullable: false + }) + update!: PostUpdateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/index.ts new file mode 100644 index 0000000..3df3a6f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Post/args/index.ts @@ -0,0 +1,15 @@ +export { AggregatePostArgs } from "./AggregatePostArgs"; +export { CreateManyAndReturnPostArgs } from "./CreateManyAndReturnPostArgs"; +export { CreateManyPostArgs } from "./CreateManyPostArgs"; +export { CreateOnePostArgs } from "./CreateOnePostArgs"; +export { DeleteManyPostArgs } from "./DeleteManyPostArgs"; +export { DeleteOnePostArgs } from "./DeleteOnePostArgs"; +export { FindFirstPostArgs } from "./FindFirstPostArgs"; +export { FindFirstPostOrThrowArgs } from "./FindFirstPostOrThrowArgs"; +export { FindManyPostArgs } from "./FindManyPostArgs"; +export { FindUniquePostArgs } from "./FindUniquePostArgs"; +export { FindUniquePostOrThrowArgs } from "./FindUniquePostOrThrowArgs"; +export { GroupByPostArgs } from "./GroupByPostArgs"; +export { UpdateManyPostArgs } from "./UpdateManyPostArgs"; +export { UpdateOnePostArgs } from "./UpdateOnePostArgs"; +export { UpsertOnePostArgs } from "./UpsertOnePostArgs"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/AggregateResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/AggregateResetPasswordTokenResolver.ts new file mode 100644 index 0000000..cc12716 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/AggregateResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateResetPasswordTokenArgs } from "./args/AggregateResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { AggregateResetPasswordToken } from "../../outputs/AggregateResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class AggregateResetPasswordTokenResolver { + @TypeGraphQL.Query(_returns => AggregateResetPasswordToken, { + nullable: false + }) + async aggregateResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateResetPasswordTokenArgs): Promise { + return getPrismaFromContext(ctx).resetPasswordToken.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyAndReturnResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyAndReturnResetPasswordTokenResolver.ts new file mode 100644 index 0000000..716273b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyAndReturnResetPasswordTokenResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyAndReturnResetPasswordTokenArgs } from "./args/CreateManyAndReturnResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { CreateManyAndReturnResetPasswordToken } from "../../outputs/CreateManyAndReturnResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class CreateManyAndReturnResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnResetPasswordToken], { + nullable: false + }) + async createManyAndReturnResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyResetPasswordTokenResolver.ts new file mode 100644 index 0000000..2dd418b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateManyResetPasswordTokenResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyResetPasswordTokenArgs } from "./args/CreateManyResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class CreateManyResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateOneResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateOneResetPasswordTokenResolver.ts new file mode 100644 index 0000000..6355de1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/CreateOneResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateOneResetPasswordTokenArgs } from "./args/CreateOneResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class CreateOneResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: false + }) + async createOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteManyResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteManyResetPasswordTokenResolver.ts new file mode 100644 index 0000000..58dc37d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteManyResetPasswordTokenResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteManyResetPasswordTokenArgs } from "./args/DeleteManyResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class DeleteManyResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteOneResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteOneResetPasswordTokenResolver.ts new file mode 100644 index 0000000..8c47c3d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/DeleteOneResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteOneResetPasswordTokenArgs } from "./args/DeleteOneResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class DeleteOneResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: true + }) + async deleteOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenOrThrowResolver.ts new file mode 100644 index 0000000..9c61faf --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstResetPasswordTokenOrThrowArgs } from "./args/FindFirstResetPasswordTokenOrThrowArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class FindFirstResetPasswordTokenOrThrowResolver { + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async findFirstResetPasswordTokenOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstResetPasswordTokenOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenResolver.ts new file mode 100644 index 0000000..b023f96 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindFirstResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstResetPasswordTokenArgs } from "./args/FindFirstResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class FindFirstResetPasswordTokenResolver { + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async findFirstResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindManyResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindManyResetPasswordTokenResolver.ts new file mode 100644 index 0000000..feb9148 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindManyResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindManyResetPasswordTokenArgs } from "./args/FindManyResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class FindManyResetPasswordTokenResolver { + @TypeGraphQL.Query(_returns => [ResetPasswordToken], { + nullable: false + }) + async resetPasswordTokens(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenOrThrowResolver.ts new file mode 100644 index 0000000..d9762cb --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueResetPasswordTokenOrThrowArgs } from "./args/FindUniqueResetPasswordTokenOrThrowArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class FindUniqueResetPasswordTokenOrThrowResolver { + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async getResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueResetPasswordTokenOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenResolver.ts new file mode 100644 index 0000000..9be9c6e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/FindUniqueResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueResetPasswordTokenArgs } from "./args/FindUniqueResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class FindUniqueResetPasswordTokenResolver { + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async resetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/GroupByResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/GroupByResetPasswordTokenResolver.ts new file mode 100644 index 0000000..8ab4540 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/GroupByResetPasswordTokenResolver.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { GroupByResetPasswordTokenArgs } from "./args/GroupByResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { ResetPasswordTokenGroupBy } from "../../outputs/ResetPasswordTokenGroupBy"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class GroupByResetPasswordTokenResolver { + @TypeGraphQL.Query(_returns => [ResetPasswordTokenGroupBy], { + nullable: false + }) + async groupByResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByResetPasswordTokenArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/ResetPasswordTokenCrudResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/ResetPasswordTokenCrudResolver.ts new file mode 100644 index 0000000..4a0c843 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/ResetPasswordTokenCrudResolver.ts @@ -0,0 +1,192 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateResetPasswordTokenArgs } from "./args/AggregateResetPasswordTokenArgs"; +import { CreateManyAndReturnResetPasswordTokenArgs } from "./args/CreateManyAndReturnResetPasswordTokenArgs"; +import { CreateManyResetPasswordTokenArgs } from "./args/CreateManyResetPasswordTokenArgs"; +import { CreateOneResetPasswordTokenArgs } from "./args/CreateOneResetPasswordTokenArgs"; +import { DeleteManyResetPasswordTokenArgs } from "./args/DeleteManyResetPasswordTokenArgs"; +import { DeleteOneResetPasswordTokenArgs } from "./args/DeleteOneResetPasswordTokenArgs"; +import { FindFirstResetPasswordTokenArgs } from "./args/FindFirstResetPasswordTokenArgs"; +import { FindFirstResetPasswordTokenOrThrowArgs } from "./args/FindFirstResetPasswordTokenOrThrowArgs"; +import { FindManyResetPasswordTokenArgs } from "./args/FindManyResetPasswordTokenArgs"; +import { FindUniqueResetPasswordTokenArgs } from "./args/FindUniqueResetPasswordTokenArgs"; +import { FindUniqueResetPasswordTokenOrThrowArgs } from "./args/FindUniqueResetPasswordTokenOrThrowArgs"; +import { GroupByResetPasswordTokenArgs } from "./args/GroupByResetPasswordTokenArgs"; +import { UpdateManyResetPasswordTokenArgs } from "./args/UpdateManyResetPasswordTokenArgs"; +import { UpdateOneResetPasswordTokenArgs } from "./args/UpdateOneResetPasswordTokenArgs"; +import { UpsertOneResetPasswordTokenArgs } from "./args/UpsertOneResetPasswordTokenArgs"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { AggregateResetPasswordToken } from "../../outputs/AggregateResetPasswordToken"; +import { CreateManyAndReturnResetPasswordToken } from "../../outputs/CreateManyAndReturnResetPasswordToken"; +import { ResetPasswordTokenGroupBy } from "../../outputs/ResetPasswordTokenGroupBy"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class ResetPasswordTokenCrudResolver { + @TypeGraphQL.Query(_returns => AggregateResetPasswordToken, { + nullable: false + }) + async aggregateResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateResetPasswordTokenArgs): Promise { + return getPrismaFromContext(ctx).resetPasswordToken.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnResetPasswordToken], { + nullable: false + }) + async createManyAndReturnResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: false + }) + async createOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: true + }) + async deleteOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async findFirstResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async findFirstResetPasswordTokenOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstResetPasswordTokenOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [ResetPasswordToken], { + nullable: false + }) + async resetPasswordTokens(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async resetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => ResetPasswordToken, { + nullable: true + }) + async getResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueResetPasswordTokenOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [ResetPasswordTokenGroupBy], { + nullable: false + }) + async groupByResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByResetPasswordTokenArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: true + }) + async updateOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: false + }) + async upsertOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateManyResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateManyResetPasswordTokenResolver.ts new file mode 100644 index 0000000..7fbdbc0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateManyResetPasswordTokenResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateManyResetPasswordTokenArgs } from "./args/UpdateManyResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class UpdateManyResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateOneResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateOneResetPasswordTokenResolver.ts new file mode 100644 index 0000000..c396fd6 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpdateOneResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateOneResetPasswordTokenArgs } from "./args/UpdateOneResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class UpdateOneResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: true + }) + async updateOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpsertOneResetPasswordTokenResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpsertOneResetPasswordTokenResolver.ts new file mode 100644 index 0000000..fa030d8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/UpsertOneResetPasswordTokenResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpsertOneResetPasswordTokenArgs } from "./args/UpsertOneResetPasswordTokenArgs"; +import { ResetPasswordToken } from "../../../models/ResetPasswordToken"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => ResetPasswordToken) +export class UpsertOneResetPasswordTokenResolver { + @TypeGraphQL.Mutation(_returns => ResetPasswordToken, { + nullable: false + }) + async upsertOneResetPasswordToken(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneResetPasswordTokenArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).resetPasswordToken.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/AggregateResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/AggregateResetPasswordTokenArgs.ts new file mode 100644 index 0000000..ed7e0a1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/AggregateResetPasswordTokenArgs.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenOrderByWithRelationInput } from "../../../inputs/ResetPasswordTokenOrderByWithRelationInput"; +import { ResetPasswordTokenWhereInput } from "../../../inputs/ResetPasswordTokenWhereInput"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class AggregateResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereInput, { + nullable: true + }) + where?: ResetPasswordTokenWhereInput | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenOrderByWithRelationInput], { + nullable: true + }) + orderBy?: ResetPasswordTokenOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: true + }) + cursor?: ResetPasswordTokenWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyAndReturnResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyAndReturnResetPasswordTokenArgs.ts new file mode 100644 index 0000000..bf2ef35 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyAndReturnResetPasswordTokenArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenCreateManyInput } from "../../../inputs/ResetPasswordTokenCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyAndReturnResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => [ResetPasswordTokenCreateManyInput], { + nullable: false + }) + data!: ResetPasswordTokenCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyResetPasswordTokenArgs.ts new file mode 100644 index 0000000..b7078f8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateManyResetPasswordTokenArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenCreateManyInput } from "../../../inputs/ResetPasswordTokenCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => [ResetPasswordTokenCreateManyInput], { + nullable: false + }) + data!: ResetPasswordTokenCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateOneResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateOneResetPasswordTokenArgs.ts new file mode 100644 index 0000000..4eb0a90 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/CreateOneResetPasswordTokenArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenCreateInput } from "../../../inputs/ResetPasswordTokenCreateInput"; + +@TypeGraphQL.ArgsType() +export class CreateOneResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenCreateInput, { + nullable: false + }) + data!: ResetPasswordTokenCreateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteManyResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteManyResetPasswordTokenArgs.ts new file mode 100644 index 0000000..56fbaff --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteManyResetPasswordTokenArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenWhereInput } from "../../../inputs/ResetPasswordTokenWhereInput"; + +@TypeGraphQL.ArgsType() +export class DeleteManyResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereInput, { + nullable: true + }) + where?: ResetPasswordTokenWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteOneResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteOneResetPasswordTokenArgs.ts new file mode 100644 index 0000000..40ebb6b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/DeleteOneResetPasswordTokenArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class DeleteOneResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: false + }) + where!: ResetPasswordTokenWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenArgs.ts new file mode 100644 index 0000000..5801685 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenOrderByWithRelationInput } from "../../../inputs/ResetPasswordTokenOrderByWithRelationInput"; +import { ResetPasswordTokenWhereInput } from "../../../inputs/ResetPasswordTokenWhereInput"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; +import { ResetPasswordTokenScalarFieldEnum } from "../../../../enums/ResetPasswordTokenScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereInput, { + nullable: true + }) + where?: ResetPasswordTokenWhereInput | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenOrderByWithRelationInput], { + nullable: true + }) + orderBy?: ResetPasswordTokenOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: true + }) + cursor?: ResetPasswordTokenWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "userID" | "value"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenOrThrowArgs.ts new file mode 100644 index 0000000..903385d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindFirstResetPasswordTokenOrThrowArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenOrderByWithRelationInput } from "../../../inputs/ResetPasswordTokenOrderByWithRelationInput"; +import { ResetPasswordTokenWhereInput } from "../../../inputs/ResetPasswordTokenWhereInput"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; +import { ResetPasswordTokenScalarFieldEnum } from "../../../../enums/ResetPasswordTokenScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstResetPasswordTokenOrThrowArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereInput, { + nullable: true + }) + where?: ResetPasswordTokenWhereInput | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenOrderByWithRelationInput], { + nullable: true + }) + orderBy?: ResetPasswordTokenOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: true + }) + cursor?: ResetPasswordTokenWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "userID" | "value"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindManyResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindManyResetPasswordTokenArgs.ts new file mode 100644 index 0000000..c88ed7b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindManyResetPasswordTokenArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenOrderByWithRelationInput } from "../../../inputs/ResetPasswordTokenOrderByWithRelationInput"; +import { ResetPasswordTokenWhereInput } from "../../../inputs/ResetPasswordTokenWhereInput"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; +import { ResetPasswordTokenScalarFieldEnum } from "../../../../enums/ResetPasswordTokenScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindManyResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereInput, { + nullable: true + }) + where?: ResetPasswordTokenWhereInput | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenOrderByWithRelationInput], { + nullable: true + }) + orderBy?: ResetPasswordTokenOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: true + }) + cursor?: ResetPasswordTokenWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "userID" | "value"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenArgs.ts new file mode 100644 index 0000000..35a942e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: false + }) + where!: ResetPasswordTokenWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenOrThrowArgs.ts new file mode 100644 index 0000000..2b79b88 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/FindUniqueResetPasswordTokenOrThrowArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueResetPasswordTokenOrThrowArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: false + }) + where!: ResetPasswordTokenWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/GroupByResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/GroupByResetPasswordTokenArgs.ts new file mode 100644 index 0000000..9a6b9c8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/GroupByResetPasswordTokenArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenOrderByWithAggregationInput } from "../../../inputs/ResetPasswordTokenOrderByWithAggregationInput"; +import { ResetPasswordTokenScalarWhereWithAggregatesInput } from "../../../inputs/ResetPasswordTokenScalarWhereWithAggregatesInput"; +import { ResetPasswordTokenWhereInput } from "../../../inputs/ResetPasswordTokenWhereInput"; +import { ResetPasswordTokenScalarFieldEnum } from "../../../../enums/ResetPasswordTokenScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class GroupByResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereInput, { + nullable: true + }) + where?: ResetPasswordTokenWhereInput | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenOrderByWithAggregationInput], { + nullable: true + }) + orderBy?: ResetPasswordTokenOrderByWithAggregationInput[] | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenScalarFieldEnum], { + nullable: false + }) + by!: Array<"id" | "userID" | "value">; + + @TypeGraphQL.Field(_type => ResetPasswordTokenScalarWhereWithAggregatesInput, { + nullable: true + }) + having?: ResetPasswordTokenScalarWhereWithAggregatesInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateManyResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateManyResetPasswordTokenArgs.ts new file mode 100644 index 0000000..ce41c00 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateManyResetPasswordTokenArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenUpdateManyMutationInput } from "../../../inputs/ResetPasswordTokenUpdateManyMutationInput"; +import { ResetPasswordTokenWhereInput } from "../../../inputs/ResetPasswordTokenWhereInput"; + +@TypeGraphQL.ArgsType() +export class UpdateManyResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenUpdateManyMutationInput, { + nullable: false + }) + data!: ResetPasswordTokenUpdateManyMutationInput; + + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereInput, { + nullable: true + }) + where?: ResetPasswordTokenWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateOneResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateOneResetPasswordTokenArgs.ts new file mode 100644 index 0000000..374fb64 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpdateOneResetPasswordTokenArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenUpdateInput } from "../../../inputs/ResetPasswordTokenUpdateInput"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpdateOneResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenUpdateInput, { + nullable: false + }) + data!: ResetPasswordTokenUpdateInput; + + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: false + }) + where!: ResetPasswordTokenWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpsertOneResetPasswordTokenArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpsertOneResetPasswordTokenArgs.ts new file mode 100644 index 0000000..e1f4aa4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/UpsertOneResetPasswordTokenArgs.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { ResetPasswordTokenCreateInput } from "../../../inputs/ResetPasswordTokenCreateInput"; +import { ResetPasswordTokenUpdateInput } from "../../../inputs/ResetPasswordTokenUpdateInput"; +import { ResetPasswordTokenWhereUniqueInput } from "../../../inputs/ResetPasswordTokenWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpsertOneResetPasswordTokenArgs { + @TypeGraphQL.Field(_type => ResetPasswordTokenWhereUniqueInput, { + nullable: false + }) + where!: ResetPasswordTokenWhereUniqueInput; + + @TypeGraphQL.Field(_type => ResetPasswordTokenCreateInput, { + nullable: false + }) + create!: ResetPasswordTokenCreateInput; + + @TypeGraphQL.Field(_type => ResetPasswordTokenUpdateInput, { + nullable: false + }) + update!: ResetPasswordTokenUpdateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/index.ts new file mode 100644 index 0000000..f7f3bda --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/ResetPasswordToken/args/index.ts @@ -0,0 +1,15 @@ +export { AggregateResetPasswordTokenArgs } from "./AggregateResetPasswordTokenArgs"; +export { CreateManyAndReturnResetPasswordTokenArgs } from "./CreateManyAndReturnResetPasswordTokenArgs"; +export { CreateManyResetPasswordTokenArgs } from "./CreateManyResetPasswordTokenArgs"; +export { CreateOneResetPasswordTokenArgs } from "./CreateOneResetPasswordTokenArgs"; +export { DeleteManyResetPasswordTokenArgs } from "./DeleteManyResetPasswordTokenArgs"; +export { DeleteOneResetPasswordTokenArgs } from "./DeleteOneResetPasswordTokenArgs"; +export { FindFirstResetPasswordTokenArgs } from "./FindFirstResetPasswordTokenArgs"; +export { FindFirstResetPasswordTokenOrThrowArgs } from "./FindFirstResetPasswordTokenOrThrowArgs"; +export { FindManyResetPasswordTokenArgs } from "./FindManyResetPasswordTokenArgs"; +export { FindUniqueResetPasswordTokenArgs } from "./FindUniqueResetPasswordTokenArgs"; +export { FindUniqueResetPasswordTokenOrThrowArgs } from "./FindUniqueResetPasswordTokenOrThrowArgs"; +export { GroupByResetPasswordTokenArgs } from "./GroupByResetPasswordTokenArgs"; +export { UpdateManyResetPasswordTokenArgs } from "./UpdateManyResetPasswordTokenArgs"; +export { UpdateOneResetPasswordTokenArgs } from "./UpdateOneResetPasswordTokenArgs"; +export { UpsertOneResetPasswordTokenArgs } from "./UpsertOneResetPasswordTokenArgs"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/AggregateUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/AggregateUpvoteResolver.ts new file mode 100644 index 0000000..ae08989 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/AggregateUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateUpvoteArgs } from "./args/AggregateUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { AggregateUpvote } from "../../outputs/AggregateUpvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class AggregateUpvoteResolver { + @TypeGraphQL.Query(_returns => AggregateUpvote, { + nullable: false + }) + async aggregateUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateUpvoteArgs): Promise { + return getPrismaFromContext(ctx).upvote.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyAndReturnUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyAndReturnUpvoteResolver.ts new file mode 100644 index 0000000..e468232 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyAndReturnUpvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyAndReturnUpvoteArgs } from "./args/CreateManyAndReturnUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { CreateManyAndReturnUpvote } from "../../outputs/CreateManyAndReturnUpvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class CreateManyAndReturnUpvoteResolver { + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnUpvote], { + nullable: false + }) + async createManyAndReturnUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyUpvoteResolver.ts new file mode 100644 index 0000000..c31070d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateManyUpvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyUpvoteArgs } from "./args/CreateManyUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class CreateManyUpvoteResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateOneUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateOneUpvoteResolver.ts new file mode 100644 index 0000000..dfd174c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/CreateOneUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateOneUpvoteArgs } from "./args/CreateOneUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class CreateOneUpvoteResolver { + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: false + }) + async createOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteManyUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteManyUpvoteResolver.ts new file mode 100644 index 0000000..824ebd6 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteManyUpvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteManyUpvoteArgs } from "./args/DeleteManyUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class DeleteManyUpvoteResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteOneUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteOneUpvoteResolver.ts new file mode 100644 index 0000000..0edb981 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/DeleteOneUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteOneUpvoteArgs } from "./args/DeleteOneUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class DeleteOneUpvoteResolver { + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: true + }) + async deleteOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteOrThrowResolver.ts new file mode 100644 index 0000000..05c1f1b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstUpvoteOrThrowArgs } from "./args/FindFirstUpvoteOrThrowArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class FindFirstUpvoteOrThrowResolver { + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async findFirstUpvoteOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUpvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteResolver.ts new file mode 100644 index 0000000..ab4d565 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindFirstUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstUpvoteArgs } from "./args/FindFirstUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class FindFirstUpvoteResolver { + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async findFirstUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindManyUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindManyUpvoteResolver.ts new file mode 100644 index 0000000..bd8c556 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindManyUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindManyUpvoteArgs } from "./args/FindManyUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class FindManyUpvoteResolver { + @TypeGraphQL.Query(_returns => [Upvote], { + nullable: false + }) + async upvotes(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteOrThrowResolver.ts new file mode 100644 index 0000000..d6ca82d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueUpvoteOrThrowArgs } from "./args/FindUniqueUpvoteOrThrowArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class FindUniqueUpvoteOrThrowResolver { + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async getUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUpvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteResolver.ts new file mode 100644 index 0000000..64afbbd --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/FindUniqueUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueUpvoteArgs } from "./args/FindUniqueUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class FindUniqueUpvoteResolver { + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async upvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/GroupByUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/GroupByUpvoteResolver.ts new file mode 100644 index 0000000..a08a62a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/GroupByUpvoteResolver.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { GroupByUpvoteArgs } from "./args/GroupByUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { UpvoteGroupBy } from "../../outputs/UpvoteGroupBy"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class GroupByUpvoteResolver { + @TypeGraphQL.Query(_returns => [UpvoteGroupBy], { + nullable: false + }) + async groupByUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByUpvoteArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateManyUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateManyUpvoteResolver.ts new file mode 100644 index 0000000..e2a2ac6 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateManyUpvoteResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateManyUpvoteArgs } from "./args/UpdateManyUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class UpdateManyUpvoteResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateOneUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateOneUpvoteResolver.ts new file mode 100644 index 0000000..2aa85de --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpdateOneUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateOneUpvoteArgs } from "./args/UpdateOneUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class UpdateOneUpvoteResolver { + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: true + }) + async updateOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpsertOneUpvoteResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpsertOneUpvoteResolver.ts new file mode 100644 index 0000000..e8aa879 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpsertOneUpvoteResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpsertOneUpvoteArgs } from "./args/UpsertOneUpvoteArgs"; +import { Upvote } from "../../../models/Upvote"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class UpsertOneUpvoteResolver { + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: false + }) + async upsertOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpvoteCrudResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpvoteCrudResolver.ts new file mode 100644 index 0000000..789f21b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/UpvoteCrudResolver.ts @@ -0,0 +1,192 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateUpvoteArgs } from "./args/AggregateUpvoteArgs"; +import { CreateManyAndReturnUpvoteArgs } from "./args/CreateManyAndReturnUpvoteArgs"; +import { CreateManyUpvoteArgs } from "./args/CreateManyUpvoteArgs"; +import { CreateOneUpvoteArgs } from "./args/CreateOneUpvoteArgs"; +import { DeleteManyUpvoteArgs } from "./args/DeleteManyUpvoteArgs"; +import { DeleteOneUpvoteArgs } from "./args/DeleteOneUpvoteArgs"; +import { FindFirstUpvoteArgs } from "./args/FindFirstUpvoteArgs"; +import { FindFirstUpvoteOrThrowArgs } from "./args/FindFirstUpvoteOrThrowArgs"; +import { FindManyUpvoteArgs } from "./args/FindManyUpvoteArgs"; +import { FindUniqueUpvoteArgs } from "./args/FindUniqueUpvoteArgs"; +import { FindUniqueUpvoteOrThrowArgs } from "./args/FindUniqueUpvoteOrThrowArgs"; +import { GroupByUpvoteArgs } from "./args/GroupByUpvoteArgs"; +import { UpdateManyUpvoteArgs } from "./args/UpdateManyUpvoteArgs"; +import { UpdateOneUpvoteArgs } from "./args/UpdateOneUpvoteArgs"; +import { UpsertOneUpvoteArgs } from "./args/UpsertOneUpvoteArgs"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; +import { Upvote } from "../../../models/Upvote"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { AggregateUpvote } from "../../outputs/AggregateUpvote"; +import { CreateManyAndReturnUpvote } from "../../outputs/CreateManyAndReturnUpvote"; +import { UpvoteGroupBy } from "../../outputs/UpvoteGroupBy"; + +@TypeGraphQL.Resolver(_of => Upvote) +export class UpvoteCrudResolver { + @TypeGraphQL.Query(_returns => AggregateUpvote, { + nullable: false + }) + async aggregateUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateUpvoteArgs): Promise { + return getPrismaFromContext(ctx).upvote.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnUpvote], { + nullable: false + }) + async createManyAndReturnUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: false + }) + async createOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: true + }) + async deleteOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async findFirstUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async findFirstUpvoteOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUpvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [Upvote], { + nullable: false + }) + async upvotes(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async upvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => Upvote, { + nullable: true + }) + async getUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUpvoteOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [UpvoteGroupBy], { + nullable: false + }) + async groupByUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByUpvoteArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: true + }) + async updateOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => Upvote, { + nullable: false + }) + async upsertOneUpvote(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneUpvoteArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).upvote.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/AggregateUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/AggregateUpvoteArgs.ts new file mode 100644 index 0000000..419c0df --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/AggregateUpvoteArgs.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteOrderByWithRelationInput } from "../../../inputs/UpvoteOrderByWithRelationInput"; +import { UpvoteWhereInput } from "../../../inputs/UpvoteWhereInput"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class AggregateUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereInput, { + nullable: true + }) + where?: UpvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UpvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UpvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: true + }) + cursor?: UpvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyAndReturnUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyAndReturnUpvoteArgs.ts new file mode 100644 index 0000000..9443d7c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyAndReturnUpvoteArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteCreateManyInput } from "../../../inputs/UpvoteCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyAndReturnUpvoteArgs { + @TypeGraphQL.Field(_type => [UpvoteCreateManyInput], { + nullable: false + }) + data!: UpvoteCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyUpvoteArgs.ts new file mode 100644 index 0000000..c11c920 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateManyUpvoteArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteCreateManyInput } from "../../../inputs/UpvoteCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyUpvoteArgs { + @TypeGraphQL.Field(_type => [UpvoteCreateManyInput], { + nullable: false + }) + data!: UpvoteCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateOneUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateOneUpvoteArgs.ts new file mode 100644 index 0000000..c748ee1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/CreateOneUpvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteCreateInput } from "../../../inputs/UpvoteCreateInput"; + +@TypeGraphQL.ArgsType() +export class CreateOneUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteCreateInput, { + nullable: false + }) + data!: UpvoteCreateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteManyUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteManyUpvoteArgs.ts new file mode 100644 index 0000000..474bd12 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteManyUpvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteWhereInput } from "../../../inputs/UpvoteWhereInput"; + +@TypeGraphQL.ArgsType() +export class DeleteManyUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereInput, { + nullable: true + }) + where?: UpvoteWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteOneUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteOneUpvoteArgs.ts new file mode 100644 index 0000000..f2bdb38 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/DeleteOneUpvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class DeleteOneUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: false + }) + where!: UpvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteArgs.ts new file mode 100644 index 0000000..76b6d56 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteOrderByWithRelationInput } from "../../../inputs/UpvoteOrderByWithRelationInput"; +import { UpvoteWhereInput } from "../../../inputs/UpvoteWhereInput"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; +import { UpvoteScalarFieldEnum } from "../../../../enums/UpvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereInput, { + nullable: true + }) + where?: UpvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UpvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UpvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: true + }) + cursor?: UpvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [UpvoteScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"userID" | "postID"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteOrThrowArgs.ts new file mode 100644 index 0000000..8e5878d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindFirstUpvoteOrThrowArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteOrderByWithRelationInput } from "../../../inputs/UpvoteOrderByWithRelationInput"; +import { UpvoteWhereInput } from "../../../inputs/UpvoteWhereInput"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; +import { UpvoteScalarFieldEnum } from "../../../../enums/UpvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstUpvoteOrThrowArgs { + @TypeGraphQL.Field(_type => UpvoteWhereInput, { + nullable: true + }) + where?: UpvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UpvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UpvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: true + }) + cursor?: UpvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [UpvoteScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"userID" | "postID"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindManyUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindManyUpvoteArgs.ts new file mode 100644 index 0000000..a4cf197 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindManyUpvoteArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteOrderByWithRelationInput } from "../../../inputs/UpvoteOrderByWithRelationInput"; +import { UpvoteWhereInput } from "../../../inputs/UpvoteWhereInput"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; +import { UpvoteScalarFieldEnum } from "../../../../enums/UpvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindManyUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereInput, { + nullable: true + }) + where?: UpvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UpvoteOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UpvoteOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: true + }) + cursor?: UpvoteWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [UpvoteScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"userID" | "postID"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteArgs.ts new file mode 100644 index 0000000..c3bf394 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: false + }) + where!: UpvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteOrThrowArgs.ts new file mode 100644 index 0000000..8c381e2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/FindUniqueUpvoteOrThrowArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueUpvoteOrThrowArgs { + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: false + }) + where!: UpvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/GroupByUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/GroupByUpvoteArgs.ts new file mode 100644 index 0000000..fd057a3 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/GroupByUpvoteArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteOrderByWithAggregationInput } from "../../../inputs/UpvoteOrderByWithAggregationInput"; +import { UpvoteScalarWhereWithAggregatesInput } from "../../../inputs/UpvoteScalarWhereWithAggregatesInput"; +import { UpvoteWhereInput } from "../../../inputs/UpvoteWhereInput"; +import { UpvoteScalarFieldEnum } from "../../../../enums/UpvoteScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class GroupByUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereInput, { + nullable: true + }) + where?: UpvoteWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UpvoteOrderByWithAggregationInput], { + nullable: true + }) + orderBy?: UpvoteOrderByWithAggregationInput[] | undefined; + + @TypeGraphQL.Field(_type => [UpvoteScalarFieldEnum], { + nullable: false + }) + by!: Array<"userID" | "postID">; + + @TypeGraphQL.Field(_type => UpvoteScalarWhereWithAggregatesInput, { + nullable: true + }) + having?: UpvoteScalarWhereWithAggregatesInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateManyUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateManyUpvoteArgs.ts new file mode 100644 index 0000000..bd8db30 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateManyUpvoteArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteUpdateManyMutationInput } from "../../../inputs/UpvoteUpdateManyMutationInput"; +import { UpvoteWhereInput } from "../../../inputs/UpvoteWhereInput"; + +@TypeGraphQL.ArgsType() +export class UpdateManyUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteUpdateManyMutationInput, { + nullable: false + }) + data!: UpvoteUpdateManyMutationInput; + + @TypeGraphQL.Field(_type => UpvoteWhereInput, { + nullable: true + }) + where?: UpvoteWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateOneUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateOneUpvoteArgs.ts new file mode 100644 index 0000000..b8c9c1b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpdateOneUpvoteArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteUpdateInput } from "../../../inputs/UpvoteUpdateInput"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpdateOneUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteUpdateInput, { + nullable: false + }) + data!: UpvoteUpdateInput; + + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: false + }) + where!: UpvoteWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpsertOneUpvoteArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpsertOneUpvoteArgs.ts new file mode 100644 index 0000000..260f479 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/UpsertOneUpvoteArgs.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UpvoteCreateInput } from "../../../inputs/UpvoteCreateInput"; +import { UpvoteUpdateInput } from "../../../inputs/UpvoteUpdateInput"; +import { UpvoteWhereUniqueInput } from "../../../inputs/UpvoteWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpsertOneUpvoteArgs { + @TypeGraphQL.Field(_type => UpvoteWhereUniqueInput, { + nullable: false + }) + where!: UpvoteWhereUniqueInput; + + @TypeGraphQL.Field(_type => UpvoteCreateInput, { + nullable: false + }) + create!: UpvoteCreateInput; + + @TypeGraphQL.Field(_type => UpvoteUpdateInput, { + nullable: false + }) + update!: UpvoteUpdateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/index.ts new file mode 100644 index 0000000..555c583 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/Upvote/args/index.ts @@ -0,0 +1,15 @@ +export { AggregateUpvoteArgs } from "./AggregateUpvoteArgs"; +export { CreateManyAndReturnUpvoteArgs } from "./CreateManyAndReturnUpvoteArgs"; +export { CreateManyUpvoteArgs } from "./CreateManyUpvoteArgs"; +export { CreateOneUpvoteArgs } from "./CreateOneUpvoteArgs"; +export { DeleteManyUpvoteArgs } from "./DeleteManyUpvoteArgs"; +export { DeleteOneUpvoteArgs } from "./DeleteOneUpvoteArgs"; +export { FindFirstUpvoteArgs } from "./FindFirstUpvoteArgs"; +export { FindFirstUpvoteOrThrowArgs } from "./FindFirstUpvoteOrThrowArgs"; +export { FindManyUpvoteArgs } from "./FindManyUpvoteArgs"; +export { FindUniqueUpvoteArgs } from "./FindUniqueUpvoteArgs"; +export { FindUniqueUpvoteOrThrowArgs } from "./FindUniqueUpvoteOrThrowArgs"; +export { GroupByUpvoteArgs } from "./GroupByUpvoteArgs"; +export { UpdateManyUpvoteArgs } from "./UpdateManyUpvoteArgs"; +export { UpdateOneUpvoteArgs } from "./UpdateOneUpvoteArgs"; +export { UpsertOneUpvoteArgs } from "./UpsertOneUpvoteArgs"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/AggregateUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/AggregateUserResolver.ts new file mode 100644 index 0000000..c7affc0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/AggregateUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateUserArgs } from "./args/AggregateUserArgs"; +import { User } from "../../../models/User"; +import { AggregateUser } from "../../outputs/AggregateUser"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class AggregateUserResolver { + @TypeGraphQL.Query(_returns => AggregateUser, { + nullable: false + }) + async aggregateUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateUserArgs): Promise { + return getPrismaFromContext(ctx).user.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyAndReturnUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyAndReturnUserResolver.ts new file mode 100644 index 0000000..a87eac8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyAndReturnUserResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyAndReturnUserArgs } from "./args/CreateManyAndReturnUserArgs"; +import { User } from "../../../models/User"; +import { CreateManyAndReturnUser } from "../../outputs/CreateManyAndReturnUser"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class CreateManyAndReturnUserResolver { + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnUser], { + nullable: false + }) + async createManyAndReturnUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyUserResolver.ts new file mode 100644 index 0000000..afc05ae --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateManyUserResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateManyUserArgs } from "./args/CreateManyUserArgs"; +import { User } from "../../../models/User"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class CreateManyUserResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateOneUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateOneUserResolver.ts new file mode 100644 index 0000000..e240772 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/CreateOneUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { CreateOneUserArgs } from "./args/CreateOneUserArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class CreateOneUserResolver { + @TypeGraphQL.Mutation(_returns => User, { + nullable: false + }) + async createOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteManyUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteManyUserResolver.ts new file mode 100644 index 0000000..42b426f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteManyUserResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteManyUserArgs } from "./args/DeleteManyUserArgs"; +import { User } from "../../../models/User"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class DeleteManyUserResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteOneUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteOneUserResolver.ts new file mode 100644 index 0000000..5c772d2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/DeleteOneUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { DeleteOneUserArgs } from "./args/DeleteOneUserArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class DeleteOneUserResolver { + @TypeGraphQL.Mutation(_returns => User, { + nullable: true + }) + async deleteOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserOrThrowResolver.ts new file mode 100644 index 0000000..201c131 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstUserOrThrowArgs } from "./args/FindFirstUserOrThrowArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class FindFirstUserOrThrowResolver { + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async findFirstUserOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUserOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserResolver.ts new file mode 100644 index 0000000..cb1881b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindFirstUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindFirstUserArgs } from "./args/FindFirstUserArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class FindFirstUserResolver { + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async findFirstUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/FindManyUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindManyUserResolver.ts new file mode 100644 index 0000000..e7e95d7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindManyUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindManyUserArgs } from "./args/FindManyUserArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class FindManyUserResolver { + @TypeGraphQL.Query(_returns => [User], { + nullable: false + }) + async users(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserOrThrowResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserOrThrowResolver.ts new file mode 100644 index 0000000..7567e90 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserOrThrowResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueUserOrThrowArgs } from "./args/FindUniqueUserOrThrowArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class FindUniqueUserOrThrowResolver { + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async getUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUserOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserResolver.ts new file mode 100644 index 0000000..93d1e31 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/FindUniqueUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { FindUniqueUserArgs } from "./args/FindUniqueUserArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class FindUniqueUserResolver { + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async user(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/GroupByUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/GroupByUserResolver.ts new file mode 100644 index 0000000..244bfa7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/GroupByUserResolver.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { GroupByUserArgs } from "./args/GroupByUserArgs"; +import { User } from "../../../models/User"; +import { UserGroupBy } from "../../outputs/UserGroupBy"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class GroupByUserResolver { + @TypeGraphQL.Query(_returns => [UserGroupBy], { + nullable: false + }) + async groupByUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByUserArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateManyUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateManyUserResolver.ts new file mode 100644 index 0000000..54d45f2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateManyUserResolver.ts @@ -0,0 +1,20 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateManyUserArgs } from "./args/UpdateManyUserArgs"; +import { User } from "../../../models/User"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class UpdateManyUserResolver { + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateOneUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateOneUserResolver.ts new file mode 100644 index 0000000..f68129b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/UpdateOneUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpdateOneUserArgs } from "./args/UpdateOneUserArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class UpdateOneUserResolver { + @TypeGraphQL.Mutation(_returns => User, { + nullable: true + }) + async updateOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/UpsertOneUserResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/UpsertOneUserResolver.ts new file mode 100644 index 0000000..4cd21e8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/UpsertOneUserResolver.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { UpsertOneUserArgs } from "./args/UpsertOneUserArgs"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class UpsertOneUserResolver { + @TypeGraphQL.Mutation(_returns => User, { + nullable: false + }) + async upsertOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/UserCrudResolver.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/UserCrudResolver.ts new file mode 100644 index 0000000..ab82e6e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/UserCrudResolver.ts @@ -0,0 +1,192 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { AggregateUserArgs } from "./args/AggregateUserArgs"; +import { CreateManyAndReturnUserArgs } from "./args/CreateManyAndReturnUserArgs"; +import { CreateManyUserArgs } from "./args/CreateManyUserArgs"; +import { CreateOneUserArgs } from "./args/CreateOneUserArgs"; +import { DeleteManyUserArgs } from "./args/DeleteManyUserArgs"; +import { DeleteOneUserArgs } from "./args/DeleteOneUserArgs"; +import { FindFirstUserArgs } from "./args/FindFirstUserArgs"; +import { FindFirstUserOrThrowArgs } from "./args/FindFirstUserOrThrowArgs"; +import { FindManyUserArgs } from "./args/FindManyUserArgs"; +import { FindUniqueUserArgs } from "./args/FindUniqueUserArgs"; +import { FindUniqueUserOrThrowArgs } from "./args/FindUniqueUserOrThrowArgs"; +import { GroupByUserArgs } from "./args/GroupByUserArgs"; +import { UpdateManyUserArgs } from "./args/UpdateManyUserArgs"; +import { UpdateOneUserArgs } from "./args/UpdateOneUserArgs"; +import { UpsertOneUserArgs } from "./args/UpsertOneUserArgs"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; +import { User } from "../../../models/User"; +import { AffectedRowsOutput } from "../../outputs/AffectedRowsOutput"; +import { AggregateUser } from "../../outputs/AggregateUser"; +import { CreateManyAndReturnUser } from "../../outputs/CreateManyAndReturnUser"; +import { UserGroupBy } from "../../outputs/UserGroupBy"; + +@TypeGraphQL.Resolver(_of => User) +export class UserCrudResolver { + @TypeGraphQL.Query(_returns => AggregateUser, { + nullable: false + }) + async aggregateUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: AggregateUserArgs): Promise { + return getPrismaFromContext(ctx).user.aggregate({ + ...args, + ...transformInfoIntoPrismaArgs(info), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async createManyUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.createMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => [CreateManyAndReturnUser], { + nullable: false + }) + async createManyAndReturnUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateManyAndReturnUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.createManyAndReturn({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => User, { + nullable: false + }) + async createOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: CreateOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.create({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async deleteManyUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.deleteMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => User, { + nullable: true + }) + async deleteOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: DeleteOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.delete({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async findFirstUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findFirst({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async findFirstUserOrThrow(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindFirstUserOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findFirstOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [User], { + nullable: false + }) + async users(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async user(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findUnique({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => User, { + nullable: true + }) + async getUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: FindUniqueUserOrThrowArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findUniqueOrThrow({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Query(_returns => [UserGroupBy], { + nullable: false + }) + async groupByUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByUserArgs): Promise { + const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.groupBy({ + ...args, + ...Object.fromEntries( + Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) + ), + }); + } + + @TypeGraphQL.Mutation(_returns => AffectedRowsOutput, { + nullable: false + }) + async updateManyUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateManyUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.updateMany({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => User, { + nullable: true + }) + async updateOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpdateOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.update({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } + + @TypeGraphQL.Mutation(_returns => User, { + nullable: false + }) + async upsertOneUser(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UpsertOneUserArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.upsert({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/AggregateUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/AggregateUserArgs.ts new file mode 100644 index 0000000..bb6b673 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/AggregateUserArgs.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserOrderByWithRelationInput } from "../../../inputs/UserOrderByWithRelationInput"; +import { UserWhereInput } from "../../../inputs/UserWhereInput"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class AggregateUserArgs { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UserOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UserOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: true + }) + cursor?: UserWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyAndReturnUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyAndReturnUserArgs.ts new file mode 100644 index 0000000..77f7059 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyAndReturnUserArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserCreateManyInput } from "../../../inputs/UserCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyAndReturnUserArgs { + @TypeGraphQL.Field(_type => [UserCreateManyInput], { + nullable: false + }) + data!: UserCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyUserArgs.ts new file mode 100644 index 0000000..567883b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateManyUserArgs.ts @@ -0,0 +1,16 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserCreateManyInput } from "../../../inputs/UserCreateManyInput"; + +@TypeGraphQL.ArgsType() +export class CreateManyUserArgs { + @TypeGraphQL.Field(_type => [UserCreateManyInput], { + nullable: false + }) + data!: UserCreateManyInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateOneUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateOneUserArgs.ts new file mode 100644 index 0000000..c63b8c3 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/CreateOneUserArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserCreateInput } from "../../../inputs/UserCreateInput"; + +@TypeGraphQL.ArgsType() +export class CreateOneUserArgs { + @TypeGraphQL.Field(_type => UserCreateInput, { + nullable: false + }) + data!: UserCreateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteManyUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteManyUserArgs.ts new file mode 100644 index 0000000..bae4a1d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteManyUserArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserWhereInput } from "../../../inputs/UserWhereInput"; + +@TypeGraphQL.ArgsType() +export class DeleteManyUserArgs { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteOneUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteOneUserArgs.ts new file mode 100644 index 0000000..6bbc3cb --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/DeleteOneUserArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class DeleteOneUserArgs { + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: false + }) + where!: UserWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserArgs.ts new file mode 100644 index 0000000..f1c1e9a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserOrderByWithRelationInput } from "../../../inputs/UserOrderByWithRelationInput"; +import { UserWhereInput } from "../../../inputs/UserWhereInput"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; +import { UserScalarFieldEnum } from "../../../../enums/UserScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstUserArgs { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UserOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UserOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: true + }) + cursor?: UserWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [UserScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "createdAt" | "updatedAt" | "username" | "password" | "email"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserOrThrowArgs.ts new file mode 100644 index 0000000..1014434 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindFirstUserOrThrowArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserOrderByWithRelationInput } from "../../../inputs/UserOrderByWithRelationInput"; +import { UserWhereInput } from "../../../inputs/UserWhereInput"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; +import { UserScalarFieldEnum } from "../../../../enums/UserScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindFirstUserOrThrowArgs { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UserOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UserOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: true + }) + cursor?: UserWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [UserScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "createdAt" | "updatedAt" | "username" | "password" | "email"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindManyUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindManyUserArgs.ts new file mode 100644 index 0000000..50ea054 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindManyUserArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserOrderByWithRelationInput } from "../../../inputs/UserOrderByWithRelationInput"; +import { UserWhereInput } from "../../../inputs/UserWhereInput"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; +import { UserScalarFieldEnum } from "../../../../enums/UserScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class FindManyUserArgs { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UserOrderByWithRelationInput], { + nullable: true + }) + orderBy?: UserOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: true + }) + cursor?: UserWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [UserScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "createdAt" | "updatedAt" | "username" | "password" | "email"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserArgs.ts new file mode 100644 index 0000000..56ef1cc --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueUserArgs { + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: false + }) + where!: UserWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserOrThrowArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserOrThrowArgs.ts new file mode 100644 index 0000000..94fda40 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/FindUniqueUserOrThrowArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class FindUniqueUserOrThrowArgs { + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: false + }) + where!: UserWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/GroupByUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/GroupByUserArgs.ts new file mode 100644 index 0000000..c1f6abf --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/GroupByUserArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserOrderByWithAggregationInput } from "../../../inputs/UserOrderByWithAggregationInput"; +import { UserScalarWhereWithAggregatesInput } from "../../../inputs/UserScalarWhereWithAggregatesInput"; +import { UserWhereInput } from "../../../inputs/UserWhereInput"; +import { UserScalarFieldEnum } from "../../../../enums/UserScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class GroupByUserArgs { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; + + @TypeGraphQL.Field(_type => [UserOrderByWithAggregationInput], { + nullable: true + }) + orderBy?: UserOrderByWithAggregationInput[] | undefined; + + @TypeGraphQL.Field(_type => [UserScalarFieldEnum], { + nullable: false + }) + by!: Array<"id" | "createdAt" | "updatedAt" | "username" | "password" | "email">; + + @TypeGraphQL.Field(_type => UserScalarWhereWithAggregatesInput, { + nullable: true + }) + having?: UserScalarWhereWithAggregatesInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateManyUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateManyUserArgs.ts new file mode 100644 index 0000000..61b06ac --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateManyUserArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserUpdateManyMutationInput } from "../../../inputs/UserUpdateManyMutationInput"; +import { UserWhereInput } from "../../../inputs/UserWhereInput"; + +@TypeGraphQL.ArgsType() +export class UpdateManyUserArgs { + @TypeGraphQL.Field(_type => UserUpdateManyMutationInput, { + nullable: false + }) + data!: UserUpdateManyMutationInput; + + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateOneUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateOneUserArgs.ts new file mode 100644 index 0000000..7d642dd --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpdateOneUserArgs.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserUpdateInput } from "../../../inputs/UserUpdateInput"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpdateOneUserArgs { + @TypeGraphQL.Field(_type => UserUpdateInput, { + nullable: false + }) + data!: UserUpdateInput; + + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: false + }) + where!: UserWhereUniqueInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpsertOneUserArgs.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpsertOneUserArgs.ts new file mode 100644 index 0000000..463cca5 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/UpsertOneUserArgs.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { UserCreateInput } from "../../../inputs/UserCreateInput"; +import { UserUpdateInput } from "../../../inputs/UserUpdateInput"; +import { UserWhereUniqueInput } from "../../../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.ArgsType() +export class UpsertOneUserArgs { + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: false + }) + where!: UserWhereUniqueInput; + + @TypeGraphQL.Field(_type => UserCreateInput, { + nullable: false + }) + create!: UserCreateInput; + + @TypeGraphQL.Field(_type => UserUpdateInput, { + nullable: false + }) + update!: UserUpdateInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/User/args/index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/index.ts new file mode 100644 index 0000000..4dd1945 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/User/args/index.ts @@ -0,0 +1,15 @@ +export { AggregateUserArgs } from "./AggregateUserArgs"; +export { CreateManyAndReturnUserArgs } from "./CreateManyAndReturnUserArgs"; +export { CreateManyUserArgs } from "./CreateManyUserArgs"; +export { CreateOneUserArgs } from "./CreateOneUserArgs"; +export { DeleteManyUserArgs } from "./DeleteManyUserArgs"; +export { DeleteOneUserArgs } from "./DeleteOneUserArgs"; +export { FindFirstUserArgs } from "./FindFirstUserArgs"; +export { FindFirstUserOrThrowArgs } from "./FindFirstUserOrThrowArgs"; +export { FindManyUserArgs } from "./FindManyUserArgs"; +export { FindUniqueUserArgs } from "./FindUniqueUserArgs"; +export { FindUniqueUserOrThrowArgs } from "./FindUniqueUserOrThrowArgs"; +export { GroupByUserArgs } from "./GroupByUserArgs"; +export { UpdateManyUserArgs } from "./UpdateManyUserArgs"; +export { UpdateOneUserArgs } from "./UpdateOneUserArgs"; +export { UpsertOneUserArgs } from "./UpsertOneUserArgs"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/args.index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/args.index.ts new file mode 100644 index 0000000..7cd707a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/args.index.ts @@ -0,0 +1,5 @@ +export * from "./Downvote/args"; +export * from "./Post/args"; +export * from "./ResetPasswordToken/args"; +export * from "./Upvote/args"; +export * from "./User/args"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/index.ts new file mode 100644 index 0000000..4bf0b07 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/index.ts @@ -0,0 +1,3 @@ +export * from "./resolvers-actions.index"; +export * from "./resolvers-crud.index"; +export * from "./args.index"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/resolvers-actions.index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/resolvers-actions.index.ts new file mode 100644 index 0000000..da102bd --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/resolvers-actions.index.ts @@ -0,0 +1,75 @@ +export { AggregateDownvoteResolver } from "./Downvote/AggregateDownvoteResolver"; +export { CreateManyDownvoteResolver } from "./Downvote/CreateManyDownvoteResolver"; +export { CreateManyAndReturnDownvoteResolver } from "./Downvote/CreateManyAndReturnDownvoteResolver"; +export { CreateOneDownvoteResolver } from "./Downvote/CreateOneDownvoteResolver"; +export { DeleteManyDownvoteResolver } from "./Downvote/DeleteManyDownvoteResolver"; +export { DeleteOneDownvoteResolver } from "./Downvote/DeleteOneDownvoteResolver"; +export { FindFirstDownvoteResolver } from "./Downvote/FindFirstDownvoteResolver"; +export { FindFirstDownvoteOrThrowResolver } from "./Downvote/FindFirstDownvoteOrThrowResolver"; +export { FindManyDownvoteResolver } from "./Downvote/FindManyDownvoteResolver"; +export { FindUniqueDownvoteResolver } from "./Downvote/FindUniqueDownvoteResolver"; +export { FindUniqueDownvoteOrThrowResolver } from "./Downvote/FindUniqueDownvoteOrThrowResolver"; +export { GroupByDownvoteResolver } from "./Downvote/GroupByDownvoteResolver"; +export { UpdateManyDownvoteResolver } from "./Downvote/UpdateManyDownvoteResolver"; +export { UpdateOneDownvoteResolver } from "./Downvote/UpdateOneDownvoteResolver"; +export { UpsertOneDownvoteResolver } from "./Downvote/UpsertOneDownvoteResolver"; +export { AggregatePostResolver } from "./Post/AggregatePostResolver"; +export { CreateManyPostResolver } from "./Post/CreateManyPostResolver"; +export { CreateManyAndReturnPostResolver } from "./Post/CreateManyAndReturnPostResolver"; +export { CreateOnePostResolver } from "./Post/CreateOnePostResolver"; +export { DeleteManyPostResolver } from "./Post/DeleteManyPostResolver"; +export { DeleteOnePostResolver } from "./Post/DeleteOnePostResolver"; +export { FindFirstPostResolver } from "./Post/FindFirstPostResolver"; +export { FindFirstPostOrThrowResolver } from "./Post/FindFirstPostOrThrowResolver"; +export { FindManyPostResolver } from "./Post/FindManyPostResolver"; +export { FindUniquePostResolver } from "./Post/FindUniquePostResolver"; +export { FindUniquePostOrThrowResolver } from "./Post/FindUniquePostOrThrowResolver"; +export { GroupByPostResolver } from "./Post/GroupByPostResolver"; +export { UpdateManyPostResolver } from "./Post/UpdateManyPostResolver"; +export { UpdateOnePostResolver } from "./Post/UpdateOnePostResolver"; +export { UpsertOnePostResolver } from "./Post/UpsertOnePostResolver"; +export { AggregateResetPasswordTokenResolver } from "./ResetPasswordToken/AggregateResetPasswordTokenResolver"; +export { CreateManyResetPasswordTokenResolver } from "./ResetPasswordToken/CreateManyResetPasswordTokenResolver"; +export { CreateManyAndReturnResetPasswordTokenResolver } from "./ResetPasswordToken/CreateManyAndReturnResetPasswordTokenResolver"; +export { CreateOneResetPasswordTokenResolver } from "./ResetPasswordToken/CreateOneResetPasswordTokenResolver"; +export { DeleteManyResetPasswordTokenResolver } from "./ResetPasswordToken/DeleteManyResetPasswordTokenResolver"; +export { DeleteOneResetPasswordTokenResolver } from "./ResetPasswordToken/DeleteOneResetPasswordTokenResolver"; +export { FindFirstResetPasswordTokenResolver } from "./ResetPasswordToken/FindFirstResetPasswordTokenResolver"; +export { FindFirstResetPasswordTokenOrThrowResolver } from "./ResetPasswordToken/FindFirstResetPasswordTokenOrThrowResolver"; +export { FindManyResetPasswordTokenResolver } from "./ResetPasswordToken/FindManyResetPasswordTokenResolver"; +export { FindUniqueResetPasswordTokenResolver } from "./ResetPasswordToken/FindUniqueResetPasswordTokenResolver"; +export { FindUniqueResetPasswordTokenOrThrowResolver } from "./ResetPasswordToken/FindUniqueResetPasswordTokenOrThrowResolver"; +export { GroupByResetPasswordTokenResolver } from "./ResetPasswordToken/GroupByResetPasswordTokenResolver"; +export { UpdateManyResetPasswordTokenResolver } from "./ResetPasswordToken/UpdateManyResetPasswordTokenResolver"; +export { UpdateOneResetPasswordTokenResolver } from "./ResetPasswordToken/UpdateOneResetPasswordTokenResolver"; +export { UpsertOneResetPasswordTokenResolver } from "./ResetPasswordToken/UpsertOneResetPasswordTokenResolver"; +export { AggregateUpvoteResolver } from "./Upvote/AggregateUpvoteResolver"; +export { CreateManyUpvoteResolver } from "./Upvote/CreateManyUpvoteResolver"; +export { CreateManyAndReturnUpvoteResolver } from "./Upvote/CreateManyAndReturnUpvoteResolver"; +export { CreateOneUpvoteResolver } from "./Upvote/CreateOneUpvoteResolver"; +export { DeleteManyUpvoteResolver } from "./Upvote/DeleteManyUpvoteResolver"; +export { DeleteOneUpvoteResolver } from "./Upvote/DeleteOneUpvoteResolver"; +export { FindFirstUpvoteResolver } from "./Upvote/FindFirstUpvoteResolver"; +export { FindFirstUpvoteOrThrowResolver } from "./Upvote/FindFirstUpvoteOrThrowResolver"; +export { FindManyUpvoteResolver } from "./Upvote/FindManyUpvoteResolver"; +export { FindUniqueUpvoteResolver } from "./Upvote/FindUniqueUpvoteResolver"; +export { FindUniqueUpvoteOrThrowResolver } from "./Upvote/FindUniqueUpvoteOrThrowResolver"; +export { GroupByUpvoteResolver } from "./Upvote/GroupByUpvoteResolver"; +export { UpdateManyUpvoteResolver } from "./Upvote/UpdateManyUpvoteResolver"; +export { UpdateOneUpvoteResolver } from "./Upvote/UpdateOneUpvoteResolver"; +export { UpsertOneUpvoteResolver } from "./Upvote/UpsertOneUpvoteResolver"; +export { AggregateUserResolver } from "./User/AggregateUserResolver"; +export { CreateManyUserResolver } from "./User/CreateManyUserResolver"; +export { CreateManyAndReturnUserResolver } from "./User/CreateManyAndReturnUserResolver"; +export { CreateOneUserResolver } from "./User/CreateOneUserResolver"; +export { DeleteManyUserResolver } from "./User/DeleteManyUserResolver"; +export { DeleteOneUserResolver } from "./User/DeleteOneUserResolver"; +export { FindFirstUserResolver } from "./User/FindFirstUserResolver"; +export { FindFirstUserOrThrowResolver } from "./User/FindFirstUserOrThrowResolver"; +export { FindManyUserResolver } from "./User/FindManyUserResolver"; +export { FindUniqueUserResolver } from "./User/FindUniqueUserResolver"; +export { FindUniqueUserOrThrowResolver } from "./User/FindUniqueUserOrThrowResolver"; +export { GroupByUserResolver } from "./User/GroupByUserResolver"; +export { UpdateManyUserResolver } from "./User/UpdateManyUserResolver"; +export { UpdateOneUserResolver } from "./User/UpdateOneUserResolver"; +export { UpsertOneUserResolver } from "./User/UpsertOneUserResolver"; diff --git a/backend/prisma/generated/type-graphql/resolvers/crud/resolvers-crud.index.ts b/backend/prisma/generated/type-graphql/resolvers/crud/resolvers-crud.index.ts new file mode 100644 index 0000000..1ef7e8a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/crud/resolvers-crud.index.ts @@ -0,0 +1,5 @@ +export { DownvoteCrudResolver } from "./Downvote/DownvoteCrudResolver"; +export { PostCrudResolver } from "./Post/PostCrudResolver"; +export { ResetPasswordTokenCrudResolver } from "./ResetPasswordToken/ResetPasswordTokenCrudResolver"; +export { UpvoteCrudResolver } from "./Upvote/UpvoteCrudResolver"; +export { UserCrudResolver } from "./User/UserCrudResolver"; diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFieldUpdateOperationsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFieldUpdateOperationsInput.ts new file mode 100644 index 0000000..3c87ef4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFieldUpdateOperationsInput.ts @@ -0,0 +1,12 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("DateTimeFieldUpdateOperationsInput", {}) +export class DateTimeFieldUpdateOperationsInput { + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + set?: Date | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFilter.ts new file mode 100644 index 0000000..a6b8728 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeFilter.ts @@ -0,0 +1,48 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedDateTimeFilter } from "../inputs/NestedDateTimeFilter"; + +@TypeGraphQL.InputType("DateTimeFilter", {}) +export class DateTimeFilter { + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + equals?: Date | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + in?: Date[] | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + notIn?: Date[] | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lte?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gte?: Date | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeFilter, { + nullable: true + }) + not?: NestedDateTimeFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeWithAggregatesFilter.ts new file mode 100644 index 0000000..6ae4b17 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DateTimeWithAggregatesFilter.ts @@ -0,0 +1,65 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedDateTimeFilter } from "../inputs/NestedDateTimeFilter"; +import { NestedDateTimeWithAggregatesFilter } from "../inputs/NestedDateTimeWithAggregatesFilter"; +import { NestedIntFilter } from "../inputs/NestedIntFilter"; + +@TypeGraphQL.InputType("DateTimeWithAggregatesFilter", {}) +export class DateTimeWithAggregatesFilter { + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + equals?: Date | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + in?: Date[] | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + notIn?: Date[] | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lte?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gte?: Date | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeWithAggregatesFilter, { + nullable: true + }) + not?: NestedDateTimeWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _count?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeFilter, { + nullable: true + }) + _min?: NestedDateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeFilter, { + nullable: true + }) + _max?: NestedDateTimeFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCountOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCountOrderByAggregateInput.ts new file mode 100644 index 0000000..dc32d80 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCountOrderByAggregateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("DownvoteCountOrderByAggregateInput", {}) +export class DownvoteCountOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateInput.ts new file mode 100644 index 0000000..5c14f67 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateInput.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("DownvoteCreateInput", {}) +export class DownvoteCreateInput { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateManyInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateManyInput.ts new file mode 100644 index 0000000..cd83f55 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteCreateManyInput.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("DownvoteCreateManyInput", {}) +export class DownvoteCreateManyInput { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMaxOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMaxOrderByAggregateInput.ts new file mode 100644 index 0000000..32b3531 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMaxOrderByAggregateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("DownvoteMaxOrderByAggregateInput", {}) +export class DownvoteMaxOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMinOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMinOrderByAggregateInput.ts new file mode 100644 index 0000000..837e64c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteMinOrderByAggregateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("DownvoteMinOrderByAggregateInput", {}) +export class DownvoteMinOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithAggregationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithAggregationInput.ts new file mode 100644 index 0000000..9eaf45f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithAggregationInput.ts @@ -0,0 +1,36 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DownvoteCountOrderByAggregateInput } from "../inputs/DownvoteCountOrderByAggregateInput"; +import { DownvoteMaxOrderByAggregateInput } from "../inputs/DownvoteMaxOrderByAggregateInput"; +import { DownvoteMinOrderByAggregateInput } from "../inputs/DownvoteMinOrderByAggregateInput"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("DownvoteOrderByWithAggregationInput", {}) +export class DownvoteOrderByWithAggregationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => DownvoteCountOrderByAggregateInput, { + nullable: true + }) + _count?: DownvoteCountOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => DownvoteMaxOrderByAggregateInput, { + nullable: true + }) + _max?: DownvoteMaxOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => DownvoteMinOrderByAggregateInput, { + nullable: true + }) + _min?: DownvoteMinOrderByAggregateInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithRelationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithRelationInput.ts new file mode 100644 index 0000000..e1c501d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteOrderByWithRelationInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("DownvoteOrderByWithRelationInput", {}) +export class DownvoteOrderByWithRelationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteScalarWhereWithAggregatesInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteScalarWhereWithAggregatesInput.ts new file mode 100644 index 0000000..8a569af --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteScalarWhereWithAggregatesInput.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringWithAggregatesFilter } from "../inputs/StringWithAggregatesFilter"; + +@TypeGraphQL.InputType("DownvoteScalarWhereWithAggregatesInput", {}) +export class DownvoteScalarWhereWithAggregatesInput { + @TypeGraphQL.Field(_type => [DownvoteScalarWhereWithAggregatesInput], { + nullable: true + }) + AND?: DownvoteScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [DownvoteScalarWhereWithAggregatesInput], { + nullable: true + }) + OR?: DownvoteScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [DownvoteScalarWhereWithAggregatesInput], { + nullable: true + }) + NOT?: DownvoteScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + userID?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + postID?: StringWithAggregatesFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateInput.ts new file mode 100644 index 0000000..e47dc66 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("DownvoteUpdateInput", {}) +export class DownvoteUpdateInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + userID?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + postID?: StringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateManyMutationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateManyMutationInput.ts new file mode 100644 index 0000000..d7fd90e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUpdateManyMutationInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("DownvoteUpdateManyMutationInput", {}) +export class DownvoteUpdateManyMutationInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + userID?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + postID?: StringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUserIDPostIDCompoundUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUserIDPostIDCompoundUniqueInput.ts new file mode 100644 index 0000000..7d41a83 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteUserIDPostIDCompoundUniqueInput.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("DownvoteUserIDPostIDCompoundUniqueInput", {}) +export class DownvoteUserIDPostIDCompoundUniqueInput { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereInput.ts new file mode 100644 index 0000000..409fc99 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereInput.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFilter } from "../inputs/StringFilter"; + +@TypeGraphQL.InputType("DownvoteWhereInput", {}) +export class DownvoteWhereInput { + @TypeGraphQL.Field(_type => [DownvoteWhereInput], { + nullable: true + }) + AND?: DownvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [DownvoteWhereInput], { + nullable: true + }) + OR?: DownvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [DownvoteWhereInput], { + nullable: true + }) + NOT?: DownvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + userID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + postID?: StringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereUniqueInput.ts new file mode 100644 index 0000000..07ad7d4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/DownvoteWhereUniqueInput.ts @@ -0,0 +1,40 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DownvoteUserIDPostIDCompoundUniqueInput } from "../inputs/DownvoteUserIDPostIDCompoundUniqueInput"; +import { DownvoteWhereInput } from "../inputs/DownvoteWhereInput"; +import { StringFilter } from "../inputs/StringFilter"; + +@TypeGraphQL.InputType("DownvoteWhereUniqueInput", {}) +export class DownvoteWhereUniqueInput { + @TypeGraphQL.Field(_type => DownvoteUserIDPostIDCompoundUniqueInput, { + nullable: true + }) + userID_postID?: DownvoteUserIDPostIDCompoundUniqueInput | undefined; + + @TypeGraphQL.Field(_type => [DownvoteWhereInput], { + nullable: true + }) + AND?: DownvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [DownvoteWhereInput], { + nullable: true + }) + OR?: DownvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [DownvoteWhereInput], { + nullable: true + }) + NOT?: DownvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + userID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + postID?: StringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/IntFieldUpdateOperationsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/IntFieldUpdateOperationsInput.ts new file mode 100644 index 0000000..4f87b5a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/IntFieldUpdateOperationsInput.ts @@ -0,0 +1,32 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("IntFieldUpdateOperationsInput", {}) +export class IntFieldUpdateOperationsInput { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + set?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + increment?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + decrement?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + multiply?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + divide?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/IntFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/IntFilter.ts new file mode 100644 index 0000000..60cf6f4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/IntFilter.ts @@ -0,0 +1,48 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedIntFilter } from "../inputs/NestedIntFilter"; + +@TypeGraphQL.InputType("IntFilter", {}) +export class IntFilter { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + equals?: number | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + in?: number[] | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + notIn?: number[] | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lte?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gte?: number | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + not?: NestedIntFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/IntWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/IntWithAggregatesFilter.ts new file mode 100644 index 0000000..1b364b0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/IntWithAggregatesFilter.ts @@ -0,0 +1,75 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedFloatFilter } from "../inputs/NestedFloatFilter"; +import { NestedIntFilter } from "../inputs/NestedIntFilter"; +import { NestedIntWithAggregatesFilter } from "../inputs/NestedIntWithAggregatesFilter"; + +@TypeGraphQL.InputType("IntWithAggregatesFilter", {}) +export class IntWithAggregatesFilter { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + equals?: number | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + in?: number[] | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + notIn?: number[] | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lte?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gte?: number | undefined; + + @TypeGraphQL.Field(_type => NestedIntWithAggregatesFilter, { + nullable: true + }) + not?: NestedIntWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _count?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedFloatFilter, { + nullable: true + }) + _avg?: NestedFloatFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _sum?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _min?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _max?: NestedIntFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeFilter.ts new file mode 100644 index 0000000..364f2b1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeFilter.ts @@ -0,0 +1,47 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("NestedDateTimeFilter", {}) +export class NestedDateTimeFilter { + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + equals?: Date | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + in?: Date[] | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + notIn?: Date[] | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lte?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gte?: Date | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeFilter, { + nullable: true + }) + not?: NestedDateTimeFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeWithAggregatesFilter.ts new file mode 100644 index 0000000..65e6696 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedDateTimeWithAggregatesFilter.ts @@ -0,0 +1,64 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedDateTimeFilter } from "../inputs/NestedDateTimeFilter"; +import { NestedIntFilter } from "../inputs/NestedIntFilter"; + +@TypeGraphQL.InputType("NestedDateTimeWithAggregatesFilter", {}) +export class NestedDateTimeWithAggregatesFilter { + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + equals?: Date | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + in?: Date[] | undefined; + + @TypeGraphQL.Field(_type => [Date], { + nullable: true + }) + notIn?: Date[] | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + lte?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + gte?: Date | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeWithAggregatesFilter, { + nullable: true + }) + not?: NestedDateTimeWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _count?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeFilter, { + nullable: true + }) + _min?: NestedDateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => NestedDateTimeFilter, { + nullable: true + }) + _max?: NestedDateTimeFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedFloatFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedFloatFilter.ts new file mode 100644 index 0000000..99ae764 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedFloatFilter.ts @@ -0,0 +1,47 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("NestedFloatFilter", {}) +export class NestedFloatFilter { + @TypeGraphQL.Field(_type => TypeGraphQL.Float, { + nullable: true + }) + equals?: number | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Float], { + nullable: true + }) + in?: number[] | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Float], { + nullable: true + }) + notIn?: number[] | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Float, { + nullable: true + }) + lt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Float, { + nullable: true + }) + lte?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Float, { + nullable: true + }) + gt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Float, { + nullable: true + }) + gte?: number | undefined; + + @TypeGraphQL.Field(_type => NestedFloatFilter, { + nullable: true + }) + not?: NestedFloatFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntFilter.ts new file mode 100644 index 0000000..911600d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntFilter.ts @@ -0,0 +1,47 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("NestedIntFilter", {}) +export class NestedIntFilter { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + equals?: number | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + in?: number[] | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + notIn?: number[] | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lte?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gte?: number | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + not?: NestedIntFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntNullableFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntNullableFilter.ts new file mode 100644 index 0000000..a7fa64c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntNullableFilter.ts @@ -0,0 +1,47 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("NestedIntNullableFilter", {}) +export class NestedIntNullableFilter { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + equals?: number | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + in?: number[] | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + notIn?: number[] | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lte?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gte?: number | undefined; + + @TypeGraphQL.Field(_type => NestedIntNullableFilter, { + nullable: true + }) + not?: NestedIntNullableFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntWithAggregatesFilter.ts new file mode 100644 index 0000000..0ab98b4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedIntWithAggregatesFilter.ts @@ -0,0 +1,74 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedFloatFilter } from "../inputs/NestedFloatFilter"; +import { NestedIntFilter } from "../inputs/NestedIntFilter"; + +@TypeGraphQL.InputType("NestedIntWithAggregatesFilter", {}) +export class NestedIntWithAggregatesFilter { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + equals?: number | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + in?: number[] | undefined; + + @TypeGraphQL.Field(_type => [TypeGraphQL.Int], { + nullable: true + }) + notIn?: number[] | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + lte?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gt?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + gte?: number | undefined; + + @TypeGraphQL.Field(_type => NestedIntWithAggregatesFilter, { + nullable: true + }) + not?: NestedIntWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _count?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedFloatFilter, { + nullable: true + }) + _avg?: NestedFloatFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _sum?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _min?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _max?: NestedIntFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringFilter.ts new file mode 100644 index 0000000..7b42cfb --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringFilter.ts @@ -0,0 +1,62 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("NestedStringFilter", {}) +export class NestedStringFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => NestedStringFilter, { + nullable: true + }) + not?: NestedStringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableFilter.ts new file mode 100644 index 0000000..21b7ef3 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableFilter.ts @@ -0,0 +1,62 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("NestedStringNullableFilter", {}) +export class NestedStringNullableFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableFilter, { + nullable: true + }) + not?: NestedStringNullableFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableWithAggregatesFilter.ts new file mode 100644 index 0000000..bf0ca71 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringNullableWithAggregatesFilter.ts @@ -0,0 +1,79 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedIntNullableFilter } from "../inputs/NestedIntNullableFilter"; +import { NestedStringNullableFilter } from "../inputs/NestedStringNullableFilter"; + +@TypeGraphQL.InputType("NestedStringNullableWithAggregatesFilter", {}) +export class NestedStringNullableWithAggregatesFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableWithAggregatesFilter, { + nullable: true + }) + not?: NestedStringNullableWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntNullableFilter, { + nullable: true + }) + _count?: NestedIntNullableFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableFilter, { + nullable: true + }) + _min?: NestedStringNullableFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableFilter, { + nullable: true + }) + _max?: NestedStringNullableFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringWithAggregatesFilter.ts new file mode 100644 index 0000000..1340ab4 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NestedStringWithAggregatesFilter.ts @@ -0,0 +1,79 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedIntFilter } from "../inputs/NestedIntFilter"; +import { NestedStringFilter } from "../inputs/NestedStringFilter"; + +@TypeGraphQL.InputType("NestedStringWithAggregatesFilter", {}) +export class NestedStringWithAggregatesFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => NestedStringWithAggregatesFilter, { + nullable: true + }) + not?: NestedStringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _count?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringFilter, { + nullable: true + }) + _min?: NestedStringFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringFilter, { + nullable: true + }) + _max?: NestedStringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/NullableStringFieldUpdateOperationsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/NullableStringFieldUpdateOperationsInput.ts new file mode 100644 index 0000000..0bdd25e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/NullableStringFieldUpdateOperationsInput.ts @@ -0,0 +1,12 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("NullableStringFieldUpdateOperationsInput", {}) +export class NullableStringFieldUpdateOperationsInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + set?: string | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostAvgOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostAvgOrderByAggregateInput.ts new file mode 100644 index 0000000..4704c21 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostAvgOrderByAggregateInput.ts @@ -0,0 +1,13 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostAvgOrderByAggregateInput", {}) +export class PostAvgOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + points?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCountOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCountOrderByAggregateInput.ts new file mode 100644 index 0000000..1c33865 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCountOrderByAggregateInput.ts @@ -0,0 +1,43 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostCountOrderByAggregateInput", {}) +export class PostCountOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + title?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + content?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + authorID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + points?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateInput.ts new file mode 100644 index 0000000..48a2e2e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateInput.ts @@ -0,0 +1,43 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCreateNestedOneWithoutPostsInput } from "../inputs/UserCreateNestedOneWithoutPostsInput"; + +@TypeGraphQL.InputType("PostCreateInput", {}) +export class PostCreateInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + content!: string; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + points?: number | undefined; + + @TypeGraphQL.Field(_type => UserCreateNestedOneWithoutPostsInput, { + nullable: false + }) + author!: UserCreateNestedOneWithoutPostsInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInput.ts new file mode 100644 index 0000000..11b6a01 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInput.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("PostCreateManyAuthorInput", {}) +export class PostCreateManyAuthorInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + content!: string; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + points?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInputEnvelope.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInputEnvelope.ts new file mode 100644 index 0000000..2c0e644 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyAuthorInputEnvelope.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostCreateManyAuthorInput } from "../inputs/PostCreateManyAuthorInput"; + +@TypeGraphQL.InputType("PostCreateManyAuthorInputEnvelope", {}) +export class PostCreateManyAuthorInputEnvelope { + @TypeGraphQL.Field(_type => [PostCreateManyAuthorInput], { + nullable: false + }) + data!: PostCreateManyAuthorInput[]; + + @TypeGraphQL.Field(_type => Boolean, { + nullable: true + }) + skipDuplicates?: boolean | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyInput.ts new file mode 100644 index 0000000..ef1b9db --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateManyInput.ts @@ -0,0 +1,42 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("PostCreateManyInput", {}) +export class PostCreateManyInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + content!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + authorID!: string; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + points?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateNestedManyWithoutAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateNestedManyWithoutAuthorInput.ts new file mode 100644 index 0000000..f2113f5 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateNestedManyWithoutAuthorInput.ts @@ -0,0 +1,31 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostCreateManyAuthorInputEnvelope } from "../inputs/PostCreateManyAuthorInputEnvelope"; +import { PostCreateOrConnectWithoutAuthorInput } from "../inputs/PostCreateOrConnectWithoutAuthorInput"; +import { PostCreateWithoutAuthorInput } from "../inputs/PostCreateWithoutAuthorInput"; +import { PostWhereUniqueInput } from "../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.InputType("PostCreateNestedManyWithoutAuthorInput", {}) +export class PostCreateNestedManyWithoutAuthorInput { + @TypeGraphQL.Field(_type => [PostCreateWithoutAuthorInput], { + nullable: true + }) + create?: PostCreateWithoutAuthorInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostCreateOrConnectWithoutAuthorInput], { + nullable: true + }) + connectOrCreate?: PostCreateOrConnectWithoutAuthorInput[] | undefined; + + @TypeGraphQL.Field(_type => PostCreateManyAuthorInputEnvelope, { + nullable: true + }) + createMany?: PostCreateManyAuthorInputEnvelope | undefined; + + @TypeGraphQL.Field(_type => [PostWhereUniqueInput], { + nullable: true + }) + connect?: PostWhereUniqueInput[] | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateOrConnectWithoutAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateOrConnectWithoutAuthorInput.ts new file mode 100644 index 0000000..d0472d9 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateOrConnectWithoutAuthorInput.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostCreateWithoutAuthorInput } from "../inputs/PostCreateWithoutAuthorInput"; +import { PostWhereUniqueInput } from "../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.InputType("PostCreateOrConnectWithoutAuthorInput", {}) +export class PostCreateOrConnectWithoutAuthorInput { + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; + + @TypeGraphQL.Field(_type => PostCreateWithoutAuthorInput, { + nullable: false + }) + create!: PostCreateWithoutAuthorInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateWithoutAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateWithoutAuthorInput.ts new file mode 100644 index 0000000..ab8fcc9 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostCreateWithoutAuthorInput.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("PostCreateWithoutAuthorInput", {}) +export class PostCreateWithoutAuthorInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + content!: string; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + points?: number | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostListRelationFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostListRelationFilter.ts new file mode 100644 index 0000000..782dc0d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostListRelationFilter.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostWhereInput } from "../inputs/PostWhereInput"; + +@TypeGraphQL.InputType("PostListRelationFilter", {}) +export class PostListRelationFilter { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + every?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + some?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + none?: PostWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostMaxOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostMaxOrderByAggregateInput.ts new file mode 100644 index 0000000..e229b50 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostMaxOrderByAggregateInput.ts @@ -0,0 +1,43 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostMaxOrderByAggregateInput", {}) +export class PostMaxOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + title?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + content?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + authorID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + points?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostMinOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostMinOrderByAggregateInput.ts new file mode 100644 index 0000000..37e0271 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostMinOrderByAggregateInput.ts @@ -0,0 +1,43 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostMinOrderByAggregateInput", {}) +export class PostMinOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + title?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + content?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + authorID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + points?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByRelationAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByRelationAggregateInput.ts new file mode 100644 index 0000000..4dcf14e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByRelationAggregateInput.ts @@ -0,0 +1,13 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostOrderByRelationAggregateInput", {}) +export class PostOrderByRelationAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + _count?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithAggregationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithAggregationInput.ts new file mode 100644 index 0000000..9dde5d0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithAggregationInput.ts @@ -0,0 +1,74 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostAvgOrderByAggregateInput } from "../inputs/PostAvgOrderByAggregateInput"; +import { PostCountOrderByAggregateInput } from "../inputs/PostCountOrderByAggregateInput"; +import { PostMaxOrderByAggregateInput } from "../inputs/PostMaxOrderByAggregateInput"; +import { PostMinOrderByAggregateInput } from "../inputs/PostMinOrderByAggregateInput"; +import { PostSumOrderByAggregateInput } from "../inputs/PostSumOrderByAggregateInput"; +import { SortOrderInput } from "../inputs/SortOrderInput"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostOrderByWithAggregationInput", {}) +export class PostOrderByWithAggregationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrderInput, { + nullable: true + }) + title?: SortOrderInput | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + content?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + authorID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + points?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => PostCountOrderByAggregateInput, { + nullable: true + }) + _count?: PostCountOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => PostAvgOrderByAggregateInput, { + nullable: true + }) + _avg?: PostAvgOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => PostMaxOrderByAggregateInput, { + nullable: true + }) + _max?: PostMaxOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => PostMinOrderByAggregateInput, { + nullable: true + }) + _min?: PostMinOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => PostSumOrderByAggregateInput, { + nullable: true + }) + _sum?: PostSumOrderByAggregateInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithRelationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithRelationInput.ts new file mode 100644 index 0000000..73690bb --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostOrderByWithRelationInput.ts @@ -0,0 +1,50 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrderInput } from "../inputs/SortOrderInput"; +import { UserOrderByWithRelationInput } from "../inputs/UserOrderByWithRelationInput"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostOrderByWithRelationInput", {}) +export class PostOrderByWithRelationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrderInput, { + nullable: true + }) + title?: SortOrderInput | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + content?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + authorID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + points?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => UserOrderByWithRelationInput, { + nullable: true + }) + author?: UserOrderByWithRelationInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereInput.ts new file mode 100644 index 0000000..54fb464 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereInput.ts @@ -0,0 +1,61 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFilter } from "../inputs/DateTimeFilter"; +import { IntFilter } from "../inputs/IntFilter"; +import { StringFilter } from "../inputs/StringFilter"; +import { StringNullableFilter } from "../inputs/StringNullableFilter"; + +@TypeGraphQL.InputType("PostScalarWhereInput", {}) +export class PostScalarWhereInput { + @TypeGraphQL.Field(_type => [PostScalarWhereInput], { + nullable: true + }) + AND?: PostScalarWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostScalarWhereInput], { + nullable: true + }) + OR?: PostScalarWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostScalarWhereInput], { + nullable: true + }) + NOT?: PostScalarWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + id?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + createdAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + updatedAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => StringNullableFilter, { + nullable: true + }) + title?: StringNullableFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + content?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + authorID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => IntFilter, { + nullable: true + }) + points?: IntFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereWithAggregatesInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereWithAggregatesInput.ts new file mode 100644 index 0000000..1958bac --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostScalarWhereWithAggregatesInput.ts @@ -0,0 +1,61 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeWithAggregatesFilter } from "../inputs/DateTimeWithAggregatesFilter"; +import { IntWithAggregatesFilter } from "../inputs/IntWithAggregatesFilter"; +import { StringNullableWithAggregatesFilter } from "../inputs/StringNullableWithAggregatesFilter"; +import { StringWithAggregatesFilter } from "../inputs/StringWithAggregatesFilter"; + +@TypeGraphQL.InputType("PostScalarWhereWithAggregatesInput", {}) +export class PostScalarWhereWithAggregatesInput { + @TypeGraphQL.Field(_type => [PostScalarWhereWithAggregatesInput], { + nullable: true + }) + AND?: PostScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostScalarWhereWithAggregatesInput], { + nullable: true + }) + OR?: PostScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostScalarWhereWithAggregatesInput], { + nullable: true + }) + NOT?: PostScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + id?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeWithAggregatesFilter, { + nullable: true + }) + createdAt?: DateTimeWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeWithAggregatesFilter, { + nullable: true + }) + updatedAt?: DateTimeWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringNullableWithAggregatesFilter, { + nullable: true + }) + title?: StringNullableWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + content?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + authorID?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => IntWithAggregatesFilter, { + nullable: true + }) + points?: IntWithAggregatesFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostSumOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostSumOrderByAggregateInput.ts new file mode 100644 index 0000000..c235215 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostSumOrderByAggregateInput.ts @@ -0,0 +1,13 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("PostSumOrderByAggregateInput", {}) +export class PostSumOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + points?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateInput.ts new file mode 100644 index 0000000..fba34f8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateInput.ts @@ -0,0 +1,47 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFieldUpdateOperationsInput } from "../inputs/DateTimeFieldUpdateOperationsInput"; +import { IntFieldUpdateOperationsInput } from "../inputs/IntFieldUpdateOperationsInput"; +import { NullableStringFieldUpdateOperationsInput } from "../inputs/NullableStringFieldUpdateOperationsInput"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; +import { UserUpdateOneRequiredWithoutPostsNestedInput } from "../inputs/UserUpdateOneRequiredWithoutPostsNestedInput"; + +@TypeGraphQL.InputType("PostUpdateInput", {}) +export class PostUpdateInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + createdAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + updatedAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => NullableStringFieldUpdateOperationsInput, { + nullable: true + }) + title?: NullableStringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + content?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => IntFieldUpdateOperationsInput, { + nullable: true + }) + points?: IntFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => UserUpdateOneRequiredWithoutPostsNestedInput, { + nullable: true + }) + author?: UserUpdateOneRequiredWithoutPostsNestedInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyMutationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyMutationInput.ts new file mode 100644 index 0000000..1694146 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyMutationInput.ts @@ -0,0 +1,41 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFieldUpdateOperationsInput } from "../inputs/DateTimeFieldUpdateOperationsInput"; +import { IntFieldUpdateOperationsInput } from "../inputs/IntFieldUpdateOperationsInput"; +import { NullableStringFieldUpdateOperationsInput } from "../inputs/NullableStringFieldUpdateOperationsInput"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("PostUpdateManyMutationInput", {}) +export class PostUpdateManyMutationInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + createdAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + updatedAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => NullableStringFieldUpdateOperationsInput, { + nullable: true + }) + title?: NullableStringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + content?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => IntFieldUpdateOperationsInput, { + nullable: true + }) + points?: IntFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithWhereWithoutAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithWhereWithoutAuthorInput.ts new file mode 100644 index 0000000..88edc36 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithWhereWithoutAuthorInput.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostScalarWhereInput } from "../inputs/PostScalarWhereInput"; +import { PostUpdateManyMutationInput } from "../inputs/PostUpdateManyMutationInput"; + +@TypeGraphQL.InputType("PostUpdateManyWithWhereWithoutAuthorInput", {}) +export class PostUpdateManyWithWhereWithoutAuthorInput { + @TypeGraphQL.Field(_type => PostScalarWhereInput, { + nullable: false + }) + where!: PostScalarWhereInput; + + @TypeGraphQL.Field(_type => PostUpdateManyMutationInput, { + nullable: false + }) + data!: PostUpdateManyMutationInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithoutAuthorNestedInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithoutAuthorNestedInput.ts new file mode 100644 index 0000000..f19ef17 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateManyWithoutAuthorNestedInput.ts @@ -0,0 +1,70 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostCreateManyAuthorInputEnvelope } from "../inputs/PostCreateManyAuthorInputEnvelope"; +import { PostCreateOrConnectWithoutAuthorInput } from "../inputs/PostCreateOrConnectWithoutAuthorInput"; +import { PostCreateWithoutAuthorInput } from "../inputs/PostCreateWithoutAuthorInput"; +import { PostScalarWhereInput } from "../inputs/PostScalarWhereInput"; +import { PostUpdateManyWithWhereWithoutAuthorInput } from "../inputs/PostUpdateManyWithWhereWithoutAuthorInput"; +import { PostUpdateWithWhereUniqueWithoutAuthorInput } from "../inputs/PostUpdateWithWhereUniqueWithoutAuthorInput"; +import { PostUpsertWithWhereUniqueWithoutAuthorInput } from "../inputs/PostUpsertWithWhereUniqueWithoutAuthorInput"; +import { PostWhereUniqueInput } from "../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.InputType("PostUpdateManyWithoutAuthorNestedInput", {}) +export class PostUpdateManyWithoutAuthorNestedInput { + @TypeGraphQL.Field(_type => [PostCreateWithoutAuthorInput], { + nullable: true + }) + create?: PostCreateWithoutAuthorInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostCreateOrConnectWithoutAuthorInput], { + nullable: true + }) + connectOrCreate?: PostCreateOrConnectWithoutAuthorInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostUpsertWithWhereUniqueWithoutAuthorInput], { + nullable: true + }) + upsert?: PostUpsertWithWhereUniqueWithoutAuthorInput[] | undefined; + + @TypeGraphQL.Field(_type => PostCreateManyAuthorInputEnvelope, { + nullable: true + }) + createMany?: PostCreateManyAuthorInputEnvelope | undefined; + + @TypeGraphQL.Field(_type => [PostWhereUniqueInput], { + nullable: true + }) + set?: PostWhereUniqueInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostWhereUniqueInput], { + nullable: true + }) + disconnect?: PostWhereUniqueInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostWhereUniqueInput], { + nullable: true + }) + delete?: PostWhereUniqueInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostWhereUniqueInput], { + nullable: true + }) + connect?: PostWhereUniqueInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostUpdateWithWhereUniqueWithoutAuthorInput], { + nullable: true + }) + update?: PostUpdateWithWhereUniqueWithoutAuthorInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostUpdateManyWithWhereWithoutAuthorInput], { + nullable: true + }) + updateMany?: PostUpdateManyWithWhereWithoutAuthorInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostScalarWhereInput], { + nullable: true + }) + deleteMany?: PostScalarWhereInput[] | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithWhereUniqueWithoutAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithWhereUniqueWithoutAuthorInput.ts new file mode 100644 index 0000000..c6f5f13 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithWhereUniqueWithoutAuthorInput.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostUpdateWithoutAuthorInput } from "../inputs/PostUpdateWithoutAuthorInput"; +import { PostWhereUniqueInput } from "../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.InputType("PostUpdateWithWhereUniqueWithoutAuthorInput", {}) +export class PostUpdateWithWhereUniqueWithoutAuthorInput { + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; + + @TypeGraphQL.Field(_type => PostUpdateWithoutAuthorInput, { + nullable: false + }) + data!: PostUpdateWithoutAuthorInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithoutAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithoutAuthorInput.ts new file mode 100644 index 0000000..d3ab5f1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpdateWithoutAuthorInput.ts @@ -0,0 +1,41 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFieldUpdateOperationsInput } from "../inputs/DateTimeFieldUpdateOperationsInput"; +import { IntFieldUpdateOperationsInput } from "../inputs/IntFieldUpdateOperationsInput"; +import { NullableStringFieldUpdateOperationsInput } from "../inputs/NullableStringFieldUpdateOperationsInput"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("PostUpdateWithoutAuthorInput", {}) +export class PostUpdateWithoutAuthorInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + createdAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + updatedAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => NullableStringFieldUpdateOperationsInput, { + nullable: true + }) + title?: NullableStringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + content?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => IntFieldUpdateOperationsInput, { + nullable: true + }) + points?: IntFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpsertWithWhereUniqueWithoutAuthorInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpsertWithWhereUniqueWithoutAuthorInput.ts new file mode 100644 index 0000000..d8ffa2f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostUpsertWithWhereUniqueWithoutAuthorInput.ts @@ -0,0 +1,25 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostCreateWithoutAuthorInput } from "../inputs/PostCreateWithoutAuthorInput"; +import { PostUpdateWithoutAuthorInput } from "../inputs/PostUpdateWithoutAuthorInput"; +import { PostWhereUniqueInput } from "../inputs/PostWhereUniqueInput"; + +@TypeGraphQL.InputType("PostUpsertWithWhereUniqueWithoutAuthorInput", {}) +export class PostUpsertWithWhereUniqueWithoutAuthorInput { + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: false + }) + where!: PostWhereUniqueInput; + + @TypeGraphQL.Field(_type => PostUpdateWithoutAuthorInput, { + nullable: false + }) + update!: PostUpdateWithoutAuthorInput; + + @TypeGraphQL.Field(_type => PostCreateWithoutAuthorInput, { + nullable: false + }) + create!: PostCreateWithoutAuthorInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereInput.ts new file mode 100644 index 0000000..b91c167 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereInput.ts @@ -0,0 +1,67 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFilter } from "../inputs/DateTimeFilter"; +import { IntFilter } from "../inputs/IntFilter"; +import { StringFilter } from "../inputs/StringFilter"; +import { StringNullableFilter } from "../inputs/StringNullableFilter"; +import { UserRelationFilter } from "../inputs/UserRelationFilter"; + +@TypeGraphQL.InputType("PostWhereInput", {}) +export class PostWhereInput { + @TypeGraphQL.Field(_type => [PostWhereInput], { + nullable: true + }) + AND?: PostWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostWhereInput], { + nullable: true + }) + OR?: PostWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostWhereInput], { + nullable: true + }) + NOT?: PostWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + id?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + createdAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + updatedAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => StringNullableFilter, { + nullable: true + }) + title?: StringNullableFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + content?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + authorID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => IntFilter, { + nullable: true + }) + points?: IntFilter | undefined; + + @TypeGraphQL.Field(_type => UserRelationFilter, { + nullable: true + }) + author?: UserRelationFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereUniqueInput.ts new file mode 100644 index 0000000..1d0fb9f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/PostWhereUniqueInput.ts @@ -0,0 +1,67 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { IntFilter } from "../inputs/IntFilter"; +import { PostWhereInput } from "../inputs/PostWhereInput"; +import { StringFilter } from "../inputs/StringFilter"; +import { StringNullableFilter } from "../inputs/StringNullableFilter"; +import { UserRelationFilter } from "../inputs/UserRelationFilter"; + +@TypeGraphQL.InputType("PostWhereUniqueInput", {}) +export class PostWhereUniqueInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => [PostWhereInput], { + nullable: true + }) + AND?: PostWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostWhereInput], { + nullable: true + }) + OR?: PostWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [PostWhereInput], { + nullable: true + }) + NOT?: PostWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringNullableFilter, { + nullable: true + }) + title?: StringNullableFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + content?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + authorID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => IntFilter, { + nullable: true + }) + points?: IntFilter | undefined; + + @TypeGraphQL.Field(_type => UserRelationFilter, { + nullable: true + }) + author?: UserRelationFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCountOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCountOrderByAggregateInput.ts new file mode 100644 index 0000000..467babb --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCountOrderByAggregateInput.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("ResetPasswordTokenCountOrderByAggregateInput", {}) +export class ResetPasswordTokenCountOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + value?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateInput.ts new file mode 100644 index 0000000..ac03fa8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateInput.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("ResetPasswordTokenCreateInput", {}) +export class ResetPasswordTokenCreateInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + value!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateManyInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateManyInput.ts new file mode 100644 index 0000000..9a83dd2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenCreateManyInput.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("ResetPasswordTokenCreateManyInput", {}) +export class ResetPasswordTokenCreateManyInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + value!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMaxOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMaxOrderByAggregateInput.ts new file mode 100644 index 0000000..f170d68 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMaxOrderByAggregateInput.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("ResetPasswordTokenMaxOrderByAggregateInput", {}) +export class ResetPasswordTokenMaxOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + value?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMinOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMinOrderByAggregateInput.ts new file mode 100644 index 0000000..ea50a71 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenMinOrderByAggregateInput.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("ResetPasswordTokenMinOrderByAggregateInput", {}) +export class ResetPasswordTokenMinOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + value?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithAggregationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithAggregationInput.ts new file mode 100644 index 0000000..562b8fc --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithAggregationInput.ts @@ -0,0 +1,41 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { ResetPasswordTokenCountOrderByAggregateInput } from "../inputs/ResetPasswordTokenCountOrderByAggregateInput"; +import { ResetPasswordTokenMaxOrderByAggregateInput } from "../inputs/ResetPasswordTokenMaxOrderByAggregateInput"; +import { ResetPasswordTokenMinOrderByAggregateInput } from "../inputs/ResetPasswordTokenMinOrderByAggregateInput"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("ResetPasswordTokenOrderByWithAggregationInput", {}) +export class ResetPasswordTokenOrderByWithAggregationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + value?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenCountOrderByAggregateInput, { + nullable: true + }) + _count?: ResetPasswordTokenCountOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenMaxOrderByAggregateInput, { + nullable: true + }) + _max?: ResetPasswordTokenMaxOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenMinOrderByAggregateInput, { + nullable: true + }) + _min?: ResetPasswordTokenMinOrderByAggregateInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithRelationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithRelationInput.ts new file mode 100644 index 0000000..5b7b4f7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenOrderByWithRelationInput.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("ResetPasswordTokenOrderByWithRelationInput", {}) +export class ResetPasswordTokenOrderByWithRelationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + value?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenScalarWhereWithAggregatesInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenScalarWhereWithAggregatesInput.ts new file mode 100644 index 0000000..3e4fc4a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenScalarWhereWithAggregatesInput.ts @@ -0,0 +1,38 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringWithAggregatesFilter } from "../inputs/StringWithAggregatesFilter"; + +@TypeGraphQL.InputType("ResetPasswordTokenScalarWhereWithAggregatesInput", {}) +export class ResetPasswordTokenScalarWhereWithAggregatesInput { + @TypeGraphQL.Field(_type => [ResetPasswordTokenScalarWhereWithAggregatesInput], { + nullable: true + }) + AND?: ResetPasswordTokenScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenScalarWhereWithAggregatesInput], { + nullable: true + }) + OR?: ResetPasswordTokenScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenScalarWhereWithAggregatesInput], { + nullable: true + }) + NOT?: ResetPasswordTokenScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + id?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + userID?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + value?: StringWithAggregatesFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateInput.ts new file mode 100644 index 0000000..5c09962 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateInput.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("ResetPasswordTokenUpdateInput", {}) +export class ResetPasswordTokenUpdateInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + userID?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + value?: StringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateManyMutationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateManyMutationInput.ts new file mode 100644 index 0000000..5c37009 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUpdateManyMutationInput.ts @@ -0,0 +1,23 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("ResetPasswordTokenUpdateManyMutationInput", {}) +export class ResetPasswordTokenUpdateManyMutationInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + userID?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + value?: StringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUserIDValueCompoundUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUserIDValueCompoundUniqueInput.ts new file mode 100644 index 0000000..162f8c7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenUserIDValueCompoundUniqueInput.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("ResetPasswordTokenUserIDValueCompoundUniqueInput", {}) +export class ResetPasswordTokenUserIDValueCompoundUniqueInput { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + value!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereInput.ts new file mode 100644 index 0000000..4f2072e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereInput.ts @@ -0,0 +1,38 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFilter } from "../inputs/StringFilter"; + +@TypeGraphQL.InputType("ResetPasswordTokenWhereInput", {}) +export class ResetPasswordTokenWhereInput { + @TypeGraphQL.Field(_type => [ResetPasswordTokenWhereInput], { + nullable: true + }) + AND?: ResetPasswordTokenWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenWhereInput], { + nullable: true + }) + OR?: ResetPasswordTokenWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenWhereInput], { + nullable: true + }) + NOT?: ResetPasswordTokenWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + id?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + userID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + value?: StringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereUniqueInput.ts new file mode 100644 index 0000000..d14b718 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/ResetPasswordTokenWhereUniqueInput.ts @@ -0,0 +1,45 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { ResetPasswordTokenUserIDValueCompoundUniqueInput } from "../inputs/ResetPasswordTokenUserIDValueCompoundUniqueInput"; +import { ResetPasswordTokenWhereInput } from "../inputs/ResetPasswordTokenWhereInput"; +import { StringFilter } from "../inputs/StringFilter"; + +@TypeGraphQL.InputType("ResetPasswordTokenWhereUniqueInput", {}) +export class ResetPasswordTokenWhereUniqueInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + value?: string | undefined; + + @TypeGraphQL.Field(_type => ResetPasswordTokenUserIDValueCompoundUniqueInput, { + nullable: true + }) + userID_value?: ResetPasswordTokenUserIDValueCompoundUniqueInput | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenWhereInput], { + nullable: true + }) + AND?: ResetPasswordTokenWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenWhereInput], { + nullable: true + }) + OR?: ResetPasswordTokenWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [ResetPasswordTokenWhereInput], { + nullable: true + }) + NOT?: ResetPasswordTokenWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + userID?: StringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/SortOrderInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/SortOrderInput.ts new file mode 100644 index 0000000..6edfbe5 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/SortOrderInput.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NullsOrder } from "../../enums/NullsOrder"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("SortOrderInput", {}) +export class SortOrderInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: false + }) + sort!: "asc" | "desc"; + + @TypeGraphQL.Field(_type => NullsOrder, { + nullable: true + }) + nulls?: "first" | "last" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/StringFieldUpdateOperationsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/StringFieldUpdateOperationsInput.ts new file mode 100644 index 0000000..0ad1ed6 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/StringFieldUpdateOperationsInput.ts @@ -0,0 +1,12 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("StringFieldUpdateOperationsInput", {}) +export class StringFieldUpdateOperationsInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + set?: string | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/StringFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/StringFilter.ts new file mode 100644 index 0000000..9f83583 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/StringFilter.ts @@ -0,0 +1,69 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedStringFilter } from "../inputs/NestedStringFilter"; +import { QueryMode } from "../../enums/QueryMode"; + +@TypeGraphQL.InputType("StringFilter", {}) +export class StringFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => QueryMode, { + nullable: true + }) + mode?: "default" | "insensitive" | undefined; + + @TypeGraphQL.Field(_type => NestedStringFilter, { + nullable: true + }) + not?: NestedStringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableFilter.ts new file mode 100644 index 0000000..a0da130 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableFilter.ts @@ -0,0 +1,69 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedStringNullableFilter } from "../inputs/NestedStringNullableFilter"; +import { QueryMode } from "../../enums/QueryMode"; + +@TypeGraphQL.InputType("StringNullableFilter", {}) +export class StringNullableFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => QueryMode, { + nullable: true + }) + mode?: "default" | "insensitive" | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableFilter, { + nullable: true + }) + not?: NestedStringNullableFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableWithAggregatesFilter.ts new file mode 100644 index 0000000..d0b4676 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/StringNullableWithAggregatesFilter.ts @@ -0,0 +1,86 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedIntNullableFilter } from "../inputs/NestedIntNullableFilter"; +import { NestedStringNullableFilter } from "../inputs/NestedStringNullableFilter"; +import { NestedStringNullableWithAggregatesFilter } from "../inputs/NestedStringNullableWithAggregatesFilter"; +import { QueryMode } from "../../enums/QueryMode"; + +@TypeGraphQL.InputType("StringNullableWithAggregatesFilter", {}) +export class StringNullableWithAggregatesFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => QueryMode, { + nullable: true + }) + mode?: "default" | "insensitive" | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableWithAggregatesFilter, { + nullable: true + }) + not?: NestedStringNullableWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntNullableFilter, { + nullable: true + }) + _count?: NestedIntNullableFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableFilter, { + nullable: true + }) + _min?: NestedStringNullableFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringNullableFilter, { + nullable: true + }) + _max?: NestedStringNullableFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/StringWithAggregatesFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/StringWithAggregatesFilter.ts new file mode 100644 index 0000000..bbcd939 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/StringWithAggregatesFilter.ts @@ -0,0 +1,86 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { NestedIntFilter } from "../inputs/NestedIntFilter"; +import { NestedStringFilter } from "../inputs/NestedStringFilter"; +import { NestedStringWithAggregatesFilter } from "../inputs/NestedStringWithAggregatesFilter"; +import { QueryMode } from "../../enums/QueryMode"; + +@TypeGraphQL.InputType("StringWithAggregatesFilter", {}) +export class StringWithAggregatesFilter { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + equals?: string | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + in?: string[] | undefined; + + @TypeGraphQL.Field(_type => [String], { + nullable: true + }) + notIn?: string[] | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + lte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gt?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + gte?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + contains?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + startsWith?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + endsWith?: string | undefined; + + @TypeGraphQL.Field(_type => QueryMode, { + nullable: true + }) + mode?: "default" | "insensitive" | undefined; + + @TypeGraphQL.Field(_type => NestedStringWithAggregatesFilter, { + nullable: true + }) + not?: NestedStringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => NestedIntFilter, { + nullable: true + }) + _count?: NestedIntFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringFilter, { + nullable: true + }) + _min?: NestedStringFilter | undefined; + + @TypeGraphQL.Field(_type => NestedStringFilter, { + nullable: true + }) + _max?: NestedStringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCountOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCountOrderByAggregateInput.ts new file mode 100644 index 0000000..ddfc5ea --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCountOrderByAggregateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UpvoteCountOrderByAggregateInput", {}) +export class UpvoteCountOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateInput.ts new file mode 100644 index 0000000..27da549 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateInput.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("UpvoteCreateInput", {}) +export class UpvoteCreateInput { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateManyInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateManyInput.ts new file mode 100644 index 0000000..bf4cfe1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteCreateManyInput.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("UpvoteCreateManyInput", {}) +export class UpvoteCreateManyInput { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMaxOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMaxOrderByAggregateInput.ts new file mode 100644 index 0000000..1ec408e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMaxOrderByAggregateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UpvoteMaxOrderByAggregateInput", {}) +export class UpvoteMaxOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMinOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMinOrderByAggregateInput.ts new file mode 100644 index 0000000..95f656e --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteMinOrderByAggregateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UpvoteMinOrderByAggregateInput", {}) +export class UpvoteMinOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithAggregationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithAggregationInput.ts new file mode 100644 index 0000000..530c798 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithAggregationInput.ts @@ -0,0 +1,36 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UpvoteCountOrderByAggregateInput } from "../inputs/UpvoteCountOrderByAggregateInput"; +import { UpvoteMaxOrderByAggregateInput } from "../inputs/UpvoteMaxOrderByAggregateInput"; +import { UpvoteMinOrderByAggregateInput } from "../inputs/UpvoteMinOrderByAggregateInput"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UpvoteOrderByWithAggregationInput", {}) +export class UpvoteOrderByWithAggregationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => UpvoteCountOrderByAggregateInput, { + nullable: true + }) + _count?: UpvoteCountOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => UpvoteMaxOrderByAggregateInput, { + nullable: true + }) + _max?: UpvoteMaxOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => UpvoteMinOrderByAggregateInput, { + nullable: true + }) + _min?: UpvoteMinOrderByAggregateInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithRelationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithRelationInput.ts new file mode 100644 index 0000000..b4c3aa0 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteOrderByWithRelationInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UpvoteOrderByWithRelationInput", {}) +export class UpvoteOrderByWithRelationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + userID?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + postID?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteScalarWhereWithAggregatesInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteScalarWhereWithAggregatesInput.ts new file mode 100644 index 0000000..ad51b49 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteScalarWhereWithAggregatesInput.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringWithAggregatesFilter } from "../inputs/StringWithAggregatesFilter"; + +@TypeGraphQL.InputType("UpvoteScalarWhereWithAggregatesInput", {}) +export class UpvoteScalarWhereWithAggregatesInput { + @TypeGraphQL.Field(_type => [UpvoteScalarWhereWithAggregatesInput], { + nullable: true + }) + AND?: UpvoteScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [UpvoteScalarWhereWithAggregatesInput], { + nullable: true + }) + OR?: UpvoteScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [UpvoteScalarWhereWithAggregatesInput], { + nullable: true + }) + NOT?: UpvoteScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + userID?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + postID?: StringWithAggregatesFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateInput.ts new file mode 100644 index 0000000..a8109fc --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("UpvoteUpdateInput", {}) +export class UpvoteUpdateInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + userID?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + postID?: StringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateManyMutationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateManyMutationInput.ts new file mode 100644 index 0000000..8e7f0fc --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUpdateManyMutationInput.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("UpvoteUpdateManyMutationInput", {}) +export class UpvoteUpdateManyMutationInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + userID?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + postID?: StringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUserIDPostIDCompoundUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUserIDPostIDCompoundUniqueInput.ts new file mode 100644 index 0000000..eec2e3f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteUserIDPostIDCompoundUniqueInput.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("UpvoteUserIDPostIDCompoundUniqueInput", {}) +export class UpvoteUserIDPostIDCompoundUniqueInput { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereInput.ts new file mode 100644 index 0000000..bc16db7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereInput.ts @@ -0,0 +1,33 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFilter } from "../inputs/StringFilter"; + +@TypeGraphQL.InputType("UpvoteWhereInput", {}) +export class UpvoteWhereInput { + @TypeGraphQL.Field(_type => [UpvoteWhereInput], { + nullable: true + }) + AND?: UpvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UpvoteWhereInput], { + nullable: true + }) + OR?: UpvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UpvoteWhereInput], { + nullable: true + }) + NOT?: UpvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + userID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + postID?: StringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereUniqueInput.ts new file mode 100644 index 0000000..fb02120 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UpvoteWhereUniqueInput.ts @@ -0,0 +1,40 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { StringFilter } from "../inputs/StringFilter"; +import { UpvoteUserIDPostIDCompoundUniqueInput } from "../inputs/UpvoteUserIDPostIDCompoundUniqueInput"; +import { UpvoteWhereInput } from "../inputs/UpvoteWhereInput"; + +@TypeGraphQL.InputType("UpvoteWhereUniqueInput", {}) +export class UpvoteWhereUniqueInput { + @TypeGraphQL.Field(_type => UpvoteUserIDPostIDCompoundUniqueInput, { + nullable: true + }) + userID_postID?: UpvoteUserIDPostIDCompoundUniqueInput | undefined; + + @TypeGraphQL.Field(_type => [UpvoteWhereInput], { + nullable: true + }) + AND?: UpvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UpvoteWhereInput], { + nullable: true + }) + OR?: UpvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UpvoteWhereInput], { + nullable: true + }) + NOT?: UpvoteWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + userID?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + postID?: StringFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserCountOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCountOrderByAggregateInput.ts new file mode 100644 index 0000000..59bf8fd --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCountOrderByAggregateInput.ts @@ -0,0 +1,38 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UserCountOrderByAggregateInput", {}) +export class UserCountOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + username?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + password?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + email?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateInput.ts new file mode 100644 index 0000000..f19ebe8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateInput.ts @@ -0,0 +1,43 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostCreateNestedManyWithoutAuthorInput } from "../inputs/PostCreateNestedManyWithoutAuthorInput"; + +@TypeGraphQL.InputType("UserCreateInput", {}) +export class UserCreateInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + username!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + password!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email?: string | undefined; + + @TypeGraphQL.Field(_type => PostCreateNestedManyWithoutAuthorInput, { + nullable: true + }) + Posts?: PostCreateNestedManyWithoutAuthorInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateManyInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateManyInput.ts new file mode 100644 index 0000000..fda96f1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateManyInput.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("UserCreateManyInput", {}) +export class UserCreateManyInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + username!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + password!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email?: string | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateNestedOneWithoutPostsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateNestedOneWithoutPostsInput.ts new file mode 100644 index 0000000..badd859 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateNestedOneWithoutPostsInput.ts @@ -0,0 +1,25 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCreateOrConnectWithoutPostsInput } from "../inputs/UserCreateOrConnectWithoutPostsInput"; +import { UserCreateWithoutPostsInput } from "../inputs/UserCreateWithoutPostsInput"; +import { UserWhereUniqueInput } from "../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.InputType("UserCreateNestedOneWithoutPostsInput", {}) +export class UserCreateNestedOneWithoutPostsInput { + @TypeGraphQL.Field(_type => UserCreateWithoutPostsInput, { + nullable: true + }) + create?: UserCreateWithoutPostsInput | undefined; + + @TypeGraphQL.Field(_type => UserCreateOrConnectWithoutPostsInput, { + nullable: true + }) + connectOrCreate?: UserCreateOrConnectWithoutPostsInput | undefined; + + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: true + }) + connect?: UserWhereUniqueInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateOrConnectWithoutPostsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateOrConnectWithoutPostsInput.ts new file mode 100644 index 0000000..2ee4442 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateOrConnectWithoutPostsInput.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCreateWithoutPostsInput } from "../inputs/UserCreateWithoutPostsInput"; +import { UserWhereUniqueInput } from "../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.InputType("UserCreateOrConnectWithoutPostsInput", {}) +export class UserCreateOrConnectWithoutPostsInput { + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: false + }) + where!: UserWhereUniqueInput; + + @TypeGraphQL.Field(_type => UserCreateWithoutPostsInput, { + nullable: false + }) + create!: UserCreateWithoutPostsInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateWithoutPostsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateWithoutPostsInput.ts new file mode 100644 index 0000000..fc7d4ca --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserCreateWithoutPostsInput.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.InputType("UserCreateWithoutPostsInput", {}) +export class UserCreateWithoutPostsInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt?: Date | undefined; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt?: Date | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + username!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + password!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email?: string | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserMaxOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserMaxOrderByAggregateInput.ts new file mode 100644 index 0000000..7d8f782 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserMaxOrderByAggregateInput.ts @@ -0,0 +1,38 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UserMaxOrderByAggregateInput", {}) +export class UserMaxOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + username?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + password?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + email?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserMinOrderByAggregateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserMinOrderByAggregateInput.ts new file mode 100644 index 0000000..41ac34c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserMinOrderByAggregateInput.ts @@ -0,0 +1,38 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UserMinOrderByAggregateInput", {}) +export class UserMinOrderByAggregateInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + username?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + password?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + email?: "asc" | "desc" | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithAggregationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithAggregationInput.ts new file mode 100644 index 0000000..8ff2b46 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithAggregationInput.ts @@ -0,0 +1,57 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { SortOrderInput } from "../inputs/SortOrderInput"; +import { UserCountOrderByAggregateInput } from "../inputs/UserCountOrderByAggregateInput"; +import { UserMaxOrderByAggregateInput } from "../inputs/UserMaxOrderByAggregateInput"; +import { UserMinOrderByAggregateInput } from "../inputs/UserMinOrderByAggregateInput"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UserOrderByWithAggregationInput", {}) +export class UserOrderByWithAggregationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + username?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + password?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrderInput, { + nullable: true + }) + email?: SortOrderInput | undefined; + + @TypeGraphQL.Field(_type => UserCountOrderByAggregateInput, { + nullable: true + }) + _count?: UserCountOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => UserMaxOrderByAggregateInput, { + nullable: true + }) + _max?: UserMaxOrderByAggregateInput | undefined; + + @TypeGraphQL.Field(_type => UserMinOrderByAggregateInput, { + nullable: true + }) + _min?: UserMinOrderByAggregateInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithRelationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithRelationInput.ts new file mode 100644 index 0000000..aa08df6 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserOrderByWithRelationInput.ts @@ -0,0 +1,45 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostOrderByRelationAggregateInput } from "../inputs/PostOrderByRelationAggregateInput"; +import { SortOrderInput } from "../inputs/SortOrderInput"; +import { SortOrder } from "../../enums/SortOrder"; + +@TypeGraphQL.InputType("UserOrderByWithRelationInput", {}) +export class UserOrderByWithRelationInput { + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + id?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + createdAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + updatedAt?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + username?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrder, { + nullable: true + }) + password?: "asc" | "desc" | undefined; + + @TypeGraphQL.Field(_type => SortOrderInput, { + nullable: true + }) + email?: SortOrderInput | undefined; + + @TypeGraphQL.Field(_type => PostOrderByRelationAggregateInput, { + nullable: true + }) + Posts?: PostOrderByRelationAggregateInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserRelationFilter.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserRelationFilter.ts new file mode 100644 index 0000000..d194c8f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserRelationFilter.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserWhereInput } from "../inputs/UserWhereInput"; + +@TypeGraphQL.InputType("UserRelationFilter", {}) +export class UserRelationFilter { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + is?: UserWhereInput | undefined; + + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + isNot?: UserWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserScalarWhereWithAggregatesInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserScalarWhereWithAggregatesInput.ts new file mode 100644 index 0000000..414a519 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserScalarWhereWithAggregatesInput.ts @@ -0,0 +1,55 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeWithAggregatesFilter } from "../inputs/DateTimeWithAggregatesFilter"; +import { StringNullableWithAggregatesFilter } from "../inputs/StringNullableWithAggregatesFilter"; +import { StringWithAggregatesFilter } from "../inputs/StringWithAggregatesFilter"; + +@TypeGraphQL.InputType("UserScalarWhereWithAggregatesInput", {}) +export class UserScalarWhereWithAggregatesInput { + @TypeGraphQL.Field(_type => [UserScalarWhereWithAggregatesInput], { + nullable: true + }) + AND?: UserScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [UserScalarWhereWithAggregatesInput], { + nullable: true + }) + OR?: UserScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => [UserScalarWhereWithAggregatesInput], { + nullable: true + }) + NOT?: UserScalarWhereWithAggregatesInput[] | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + id?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeWithAggregatesFilter, { + nullable: true + }) + createdAt?: DateTimeWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeWithAggregatesFilter, { + nullable: true + }) + updatedAt?: DateTimeWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + username?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringWithAggregatesFilter, { + nullable: true + }) + password?: StringWithAggregatesFilter | undefined; + + @TypeGraphQL.Field(_type => StringNullableWithAggregatesFilter, { + nullable: true + }) + email?: StringNullableWithAggregatesFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateInput.ts new file mode 100644 index 0000000..8360513 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateInput.ts @@ -0,0 +1,46 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFieldUpdateOperationsInput } from "../inputs/DateTimeFieldUpdateOperationsInput"; +import { NullableStringFieldUpdateOperationsInput } from "../inputs/NullableStringFieldUpdateOperationsInput"; +import { PostUpdateManyWithoutAuthorNestedInput } from "../inputs/PostUpdateManyWithoutAuthorNestedInput"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("UserUpdateInput", {}) +export class UserUpdateInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + createdAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + updatedAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + username?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + password?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => NullableStringFieldUpdateOperationsInput, { + nullable: true + }) + email?: NullableStringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => PostUpdateManyWithoutAuthorNestedInput, { + nullable: true + }) + Posts?: PostUpdateManyWithoutAuthorNestedInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateManyMutationInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateManyMutationInput.ts new file mode 100644 index 0000000..6e42cec --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateManyMutationInput.ts @@ -0,0 +1,40 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFieldUpdateOperationsInput } from "../inputs/DateTimeFieldUpdateOperationsInput"; +import { NullableStringFieldUpdateOperationsInput } from "../inputs/NullableStringFieldUpdateOperationsInput"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("UserUpdateManyMutationInput", {}) +export class UserUpdateManyMutationInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + createdAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + updatedAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + username?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + password?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => NullableStringFieldUpdateOperationsInput, { + nullable: true + }) + email?: NullableStringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateOneRequiredWithoutPostsNestedInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateOneRequiredWithoutPostsNestedInput.ts new file mode 100644 index 0000000..e92fde7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateOneRequiredWithoutPostsNestedInput.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCreateOrConnectWithoutPostsInput } from "../inputs/UserCreateOrConnectWithoutPostsInput"; +import { UserCreateWithoutPostsInput } from "../inputs/UserCreateWithoutPostsInput"; +import { UserUpdateToOneWithWhereWithoutPostsInput } from "../inputs/UserUpdateToOneWithWhereWithoutPostsInput"; +import { UserUpsertWithoutPostsInput } from "../inputs/UserUpsertWithoutPostsInput"; +import { UserWhereUniqueInput } from "../inputs/UserWhereUniqueInput"; + +@TypeGraphQL.InputType("UserUpdateOneRequiredWithoutPostsNestedInput", {}) +export class UserUpdateOneRequiredWithoutPostsNestedInput { + @TypeGraphQL.Field(_type => UserCreateWithoutPostsInput, { + nullable: true + }) + create?: UserCreateWithoutPostsInput | undefined; + + @TypeGraphQL.Field(_type => UserCreateOrConnectWithoutPostsInput, { + nullable: true + }) + connectOrCreate?: UserCreateOrConnectWithoutPostsInput | undefined; + + @TypeGraphQL.Field(_type => UserUpsertWithoutPostsInput, { + nullable: true + }) + upsert?: UserUpsertWithoutPostsInput | undefined; + + @TypeGraphQL.Field(_type => UserWhereUniqueInput, { + nullable: true + }) + connect?: UserWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => UserUpdateToOneWithWhereWithoutPostsInput, { + nullable: true + }) + update?: UserUpdateToOneWithWhereWithoutPostsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateToOneWithWhereWithoutPostsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateToOneWithWhereWithoutPostsInput.ts new file mode 100644 index 0000000..f04063d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateToOneWithWhereWithoutPostsInput.ts @@ -0,0 +1,19 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserUpdateWithoutPostsInput } from "../inputs/UserUpdateWithoutPostsInput"; +import { UserWhereInput } from "../inputs/UserWhereInput"; + +@TypeGraphQL.InputType("UserUpdateToOneWithWhereWithoutPostsInput", {}) +export class UserUpdateToOneWithWhereWithoutPostsInput { + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; + + @TypeGraphQL.Field(_type => UserUpdateWithoutPostsInput, { + nullable: false + }) + data!: UserUpdateWithoutPostsInput; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateWithoutPostsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateWithoutPostsInput.ts new file mode 100644 index 0000000..d89a465 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpdateWithoutPostsInput.ts @@ -0,0 +1,40 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFieldUpdateOperationsInput } from "../inputs/DateTimeFieldUpdateOperationsInput"; +import { NullableStringFieldUpdateOperationsInput } from "../inputs/NullableStringFieldUpdateOperationsInput"; +import { StringFieldUpdateOperationsInput } from "../inputs/StringFieldUpdateOperationsInput"; + +@TypeGraphQL.InputType("UserUpdateWithoutPostsInput", {}) +export class UserUpdateWithoutPostsInput { + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + id?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + createdAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => DateTimeFieldUpdateOperationsInput, { + nullable: true + }) + updatedAt?: DateTimeFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + username?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => StringFieldUpdateOperationsInput, { + nullable: true + }) + password?: StringFieldUpdateOperationsInput | undefined; + + @TypeGraphQL.Field(_type => NullableStringFieldUpdateOperationsInput, { + nullable: true + }) + email?: NullableStringFieldUpdateOperationsInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpsertWithoutPostsInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpsertWithoutPostsInput.ts new file mode 100644 index 0000000..b43a9b8 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserUpsertWithoutPostsInput.ts @@ -0,0 +1,25 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCreateWithoutPostsInput } from "../inputs/UserCreateWithoutPostsInput"; +import { UserUpdateWithoutPostsInput } from "../inputs/UserUpdateWithoutPostsInput"; +import { UserWhereInput } from "../inputs/UserWhereInput"; + +@TypeGraphQL.InputType("UserUpsertWithoutPostsInput", {}) +export class UserUpsertWithoutPostsInput { + @TypeGraphQL.Field(_type => UserUpdateWithoutPostsInput, { + nullable: false + }) + update!: UserUpdateWithoutPostsInput; + + @TypeGraphQL.Field(_type => UserCreateWithoutPostsInput, { + nullable: false + }) + create!: UserCreateWithoutPostsInput; + + @TypeGraphQL.Field(_type => UserWhereInput, { + nullable: true + }) + where?: UserWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereInput.ts new file mode 100644 index 0000000..bb5d494 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereInput.ts @@ -0,0 +1,61 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFilter } from "../inputs/DateTimeFilter"; +import { PostListRelationFilter } from "../inputs/PostListRelationFilter"; +import { StringFilter } from "../inputs/StringFilter"; +import { StringNullableFilter } from "../inputs/StringNullableFilter"; + +@TypeGraphQL.InputType("UserWhereInput", {}) +export class UserWhereInput { + @TypeGraphQL.Field(_type => [UserWhereInput], { + nullable: true + }) + AND?: UserWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UserWhereInput], { + nullable: true + }) + OR?: UserWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UserWhereInput], { + nullable: true + }) + NOT?: UserWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + id?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + createdAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + updatedAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + username?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + password?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => StringNullableFilter, { + nullable: true + }) + email?: StringNullableFilter | undefined; + + @TypeGraphQL.Field(_type => PostListRelationFilter, { + nullable: true + }) + Posts?: PostListRelationFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereUniqueInput.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereUniqueInput.ts new file mode 100644 index 0000000..d03c1f9 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/UserWhereUniqueInput.ts @@ -0,0 +1,61 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DateTimeFilter } from "../inputs/DateTimeFilter"; +import { PostListRelationFilter } from "../inputs/PostListRelationFilter"; +import { StringFilter } from "../inputs/StringFilter"; +import { UserWhereInput } from "../inputs/UserWhereInput"; + +@TypeGraphQL.InputType("UserWhereUniqueInput", {}) +export class UserWhereUniqueInput { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + username?: string | undefined; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email?: string | undefined; + + @TypeGraphQL.Field(_type => [UserWhereInput], { + nullable: true + }) + AND?: UserWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UserWhereInput], { + nullable: true + }) + OR?: UserWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => [UserWhereInput], { + nullable: true + }) + NOT?: UserWhereInput[] | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + createdAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => DateTimeFilter, { + nullable: true + }) + updatedAt?: DateTimeFilter | undefined; + + @TypeGraphQL.Field(_type => StringFilter, { + nullable: true + }) + password?: StringFilter | undefined; + + @TypeGraphQL.Field(_type => PostListRelationFilter, { + nullable: true + }) + Posts?: PostListRelationFilter | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/inputs/index.ts b/backend/prisma/generated/type-graphql/resolvers/inputs/index.ts new file mode 100644 index 0000000..77e32ce --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/inputs/index.ts @@ -0,0 +1,109 @@ +export { DateTimeFieldUpdateOperationsInput } from "./DateTimeFieldUpdateOperationsInput"; +export { DateTimeFilter } from "./DateTimeFilter"; +export { DateTimeWithAggregatesFilter } from "./DateTimeWithAggregatesFilter"; +export { DownvoteCountOrderByAggregateInput } from "./DownvoteCountOrderByAggregateInput"; +export { DownvoteCreateInput } from "./DownvoteCreateInput"; +export { DownvoteCreateManyInput } from "./DownvoteCreateManyInput"; +export { DownvoteMaxOrderByAggregateInput } from "./DownvoteMaxOrderByAggregateInput"; +export { DownvoteMinOrderByAggregateInput } from "./DownvoteMinOrderByAggregateInput"; +export { DownvoteOrderByWithAggregationInput } from "./DownvoteOrderByWithAggregationInput"; +export { DownvoteOrderByWithRelationInput } from "./DownvoteOrderByWithRelationInput"; +export { DownvoteScalarWhereWithAggregatesInput } from "./DownvoteScalarWhereWithAggregatesInput"; +export { DownvoteUpdateInput } from "./DownvoteUpdateInput"; +export { DownvoteUpdateManyMutationInput } from "./DownvoteUpdateManyMutationInput"; +export { DownvoteUserIDPostIDCompoundUniqueInput } from "./DownvoteUserIDPostIDCompoundUniqueInput"; +export { DownvoteWhereInput } from "./DownvoteWhereInput"; +export { DownvoteWhereUniqueInput } from "./DownvoteWhereUniqueInput"; +export { IntFieldUpdateOperationsInput } from "./IntFieldUpdateOperationsInput"; +export { IntFilter } from "./IntFilter"; +export { IntWithAggregatesFilter } from "./IntWithAggregatesFilter"; +export { NestedDateTimeFilter } from "./NestedDateTimeFilter"; +export { NestedDateTimeWithAggregatesFilter } from "./NestedDateTimeWithAggregatesFilter"; +export { NestedFloatFilter } from "./NestedFloatFilter"; +export { NestedIntFilter } from "./NestedIntFilter"; +export { NestedIntNullableFilter } from "./NestedIntNullableFilter"; +export { NestedIntWithAggregatesFilter } from "./NestedIntWithAggregatesFilter"; +export { NestedStringFilter } from "./NestedStringFilter"; +export { NestedStringNullableFilter } from "./NestedStringNullableFilter"; +export { NestedStringNullableWithAggregatesFilter } from "./NestedStringNullableWithAggregatesFilter"; +export { NestedStringWithAggregatesFilter } from "./NestedStringWithAggregatesFilter"; +export { NullableStringFieldUpdateOperationsInput } from "./NullableStringFieldUpdateOperationsInput"; +export { PostAvgOrderByAggregateInput } from "./PostAvgOrderByAggregateInput"; +export { PostCountOrderByAggregateInput } from "./PostCountOrderByAggregateInput"; +export { PostCreateInput } from "./PostCreateInput"; +export { PostCreateManyAuthorInput } from "./PostCreateManyAuthorInput"; +export { PostCreateManyAuthorInputEnvelope } from "./PostCreateManyAuthorInputEnvelope"; +export { PostCreateManyInput } from "./PostCreateManyInput"; +export { PostCreateNestedManyWithoutAuthorInput } from "./PostCreateNestedManyWithoutAuthorInput"; +export { PostCreateOrConnectWithoutAuthorInput } from "./PostCreateOrConnectWithoutAuthorInput"; +export { PostCreateWithoutAuthorInput } from "./PostCreateWithoutAuthorInput"; +export { PostListRelationFilter } from "./PostListRelationFilter"; +export { PostMaxOrderByAggregateInput } from "./PostMaxOrderByAggregateInput"; +export { PostMinOrderByAggregateInput } from "./PostMinOrderByAggregateInput"; +export { PostOrderByRelationAggregateInput } from "./PostOrderByRelationAggregateInput"; +export { PostOrderByWithAggregationInput } from "./PostOrderByWithAggregationInput"; +export { PostOrderByWithRelationInput } from "./PostOrderByWithRelationInput"; +export { PostScalarWhereInput } from "./PostScalarWhereInput"; +export { PostScalarWhereWithAggregatesInput } from "./PostScalarWhereWithAggregatesInput"; +export { PostSumOrderByAggregateInput } from "./PostSumOrderByAggregateInput"; +export { PostUpdateInput } from "./PostUpdateInput"; +export { PostUpdateManyMutationInput } from "./PostUpdateManyMutationInput"; +export { PostUpdateManyWithWhereWithoutAuthorInput } from "./PostUpdateManyWithWhereWithoutAuthorInput"; +export { PostUpdateManyWithoutAuthorNestedInput } from "./PostUpdateManyWithoutAuthorNestedInput"; +export { PostUpdateWithWhereUniqueWithoutAuthorInput } from "./PostUpdateWithWhereUniqueWithoutAuthorInput"; +export { PostUpdateWithoutAuthorInput } from "./PostUpdateWithoutAuthorInput"; +export { PostUpsertWithWhereUniqueWithoutAuthorInput } from "./PostUpsertWithWhereUniqueWithoutAuthorInput"; +export { PostWhereInput } from "./PostWhereInput"; +export { PostWhereUniqueInput } from "./PostWhereUniqueInput"; +export { ResetPasswordTokenCountOrderByAggregateInput } from "./ResetPasswordTokenCountOrderByAggregateInput"; +export { ResetPasswordTokenCreateInput } from "./ResetPasswordTokenCreateInput"; +export { ResetPasswordTokenCreateManyInput } from "./ResetPasswordTokenCreateManyInput"; +export { ResetPasswordTokenMaxOrderByAggregateInput } from "./ResetPasswordTokenMaxOrderByAggregateInput"; +export { ResetPasswordTokenMinOrderByAggregateInput } from "./ResetPasswordTokenMinOrderByAggregateInput"; +export { ResetPasswordTokenOrderByWithAggregationInput } from "./ResetPasswordTokenOrderByWithAggregationInput"; +export { ResetPasswordTokenOrderByWithRelationInput } from "./ResetPasswordTokenOrderByWithRelationInput"; +export { ResetPasswordTokenScalarWhereWithAggregatesInput } from "./ResetPasswordTokenScalarWhereWithAggregatesInput"; +export { ResetPasswordTokenUpdateInput } from "./ResetPasswordTokenUpdateInput"; +export { ResetPasswordTokenUpdateManyMutationInput } from "./ResetPasswordTokenUpdateManyMutationInput"; +export { ResetPasswordTokenUserIDValueCompoundUniqueInput } from "./ResetPasswordTokenUserIDValueCompoundUniqueInput"; +export { ResetPasswordTokenWhereInput } from "./ResetPasswordTokenWhereInput"; +export { ResetPasswordTokenWhereUniqueInput } from "./ResetPasswordTokenWhereUniqueInput"; +export { SortOrderInput } from "./SortOrderInput"; +export { StringFieldUpdateOperationsInput } from "./StringFieldUpdateOperationsInput"; +export { StringFilter } from "./StringFilter"; +export { StringNullableFilter } from "./StringNullableFilter"; +export { StringNullableWithAggregatesFilter } from "./StringNullableWithAggregatesFilter"; +export { StringWithAggregatesFilter } from "./StringWithAggregatesFilter"; +export { UpvoteCountOrderByAggregateInput } from "./UpvoteCountOrderByAggregateInput"; +export { UpvoteCreateInput } from "./UpvoteCreateInput"; +export { UpvoteCreateManyInput } from "./UpvoteCreateManyInput"; +export { UpvoteMaxOrderByAggregateInput } from "./UpvoteMaxOrderByAggregateInput"; +export { UpvoteMinOrderByAggregateInput } from "./UpvoteMinOrderByAggregateInput"; +export { UpvoteOrderByWithAggregationInput } from "./UpvoteOrderByWithAggregationInput"; +export { UpvoteOrderByWithRelationInput } from "./UpvoteOrderByWithRelationInput"; +export { UpvoteScalarWhereWithAggregatesInput } from "./UpvoteScalarWhereWithAggregatesInput"; +export { UpvoteUpdateInput } from "./UpvoteUpdateInput"; +export { UpvoteUpdateManyMutationInput } from "./UpvoteUpdateManyMutationInput"; +export { UpvoteUserIDPostIDCompoundUniqueInput } from "./UpvoteUserIDPostIDCompoundUniqueInput"; +export { UpvoteWhereInput } from "./UpvoteWhereInput"; +export { UpvoteWhereUniqueInput } from "./UpvoteWhereUniqueInput"; +export { UserCountOrderByAggregateInput } from "./UserCountOrderByAggregateInput"; +export { UserCreateInput } from "./UserCreateInput"; +export { UserCreateManyInput } from "./UserCreateManyInput"; +export { UserCreateNestedOneWithoutPostsInput } from "./UserCreateNestedOneWithoutPostsInput"; +export { UserCreateOrConnectWithoutPostsInput } from "./UserCreateOrConnectWithoutPostsInput"; +export { UserCreateWithoutPostsInput } from "./UserCreateWithoutPostsInput"; +export { UserMaxOrderByAggregateInput } from "./UserMaxOrderByAggregateInput"; +export { UserMinOrderByAggregateInput } from "./UserMinOrderByAggregateInput"; +export { UserOrderByWithAggregationInput } from "./UserOrderByWithAggregationInput"; +export { UserOrderByWithRelationInput } from "./UserOrderByWithRelationInput"; +export { UserRelationFilter } from "./UserRelationFilter"; +export { UserScalarWhereWithAggregatesInput } from "./UserScalarWhereWithAggregatesInput"; +export { UserUpdateInput } from "./UserUpdateInput"; +export { UserUpdateManyMutationInput } from "./UserUpdateManyMutationInput"; +export { UserUpdateOneRequiredWithoutPostsNestedInput } from "./UserUpdateOneRequiredWithoutPostsNestedInput"; +export { UserUpdateToOneWithWhereWithoutPostsInput } from "./UserUpdateToOneWithWhereWithoutPostsInput"; +export { UserUpdateWithoutPostsInput } from "./UserUpdateWithoutPostsInput"; +export { UserUpsertWithoutPostsInput } from "./UserUpsertWithoutPostsInput"; +export { UserWhereInput } from "./UserWhereInput"; +export { UserWhereUniqueInput } from "./UserWhereUniqueInput"; diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/AffectedRowsOutput.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/AffectedRowsOutput.ts new file mode 100644 index 0000000..6b1cb05 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/AffectedRowsOutput.ts @@ -0,0 +1,12 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("AffectedRowsOutput", {}) +export class AffectedRowsOutput { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + count!: number; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateDownvote.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateDownvote.ts new file mode 100644 index 0000000..fdbb9aa --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateDownvote.ts @@ -0,0 +1,25 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DownvoteCountAggregate } from "../outputs/DownvoteCountAggregate"; +import { DownvoteMaxAggregate } from "../outputs/DownvoteMaxAggregate"; +import { DownvoteMinAggregate } from "../outputs/DownvoteMinAggregate"; + +@TypeGraphQL.ObjectType("AggregateDownvote", {}) +export class AggregateDownvote { + @TypeGraphQL.Field(_type => DownvoteCountAggregate, { + nullable: true + }) + _count!: DownvoteCountAggregate | null; + + @TypeGraphQL.Field(_type => DownvoteMinAggregate, { + nullable: true + }) + _min!: DownvoteMinAggregate | null; + + @TypeGraphQL.Field(_type => DownvoteMaxAggregate, { + nullable: true + }) + _max!: DownvoteMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/AggregatePost.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregatePost.ts new file mode 100644 index 0000000..be210cc --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregatePost.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostAvgAggregate } from "../outputs/PostAvgAggregate"; +import { PostCountAggregate } from "../outputs/PostCountAggregate"; +import { PostMaxAggregate } from "../outputs/PostMaxAggregate"; +import { PostMinAggregate } from "../outputs/PostMinAggregate"; +import { PostSumAggregate } from "../outputs/PostSumAggregate"; + +@TypeGraphQL.ObjectType("AggregatePost", {}) +export class AggregatePost { + @TypeGraphQL.Field(_type => PostCountAggregate, { + nullable: true + }) + _count!: PostCountAggregate | null; + + @TypeGraphQL.Field(_type => PostAvgAggregate, { + nullable: true + }) + _avg!: PostAvgAggregate | null; + + @TypeGraphQL.Field(_type => PostSumAggregate, { + nullable: true + }) + _sum!: PostSumAggregate | null; + + @TypeGraphQL.Field(_type => PostMinAggregate, { + nullable: true + }) + _min!: PostMinAggregate | null; + + @TypeGraphQL.Field(_type => PostMaxAggregate, { + nullable: true + }) + _max!: PostMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateResetPasswordToken.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateResetPasswordToken.ts new file mode 100644 index 0000000..ef1f143 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateResetPasswordToken.ts @@ -0,0 +1,25 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { ResetPasswordTokenCountAggregate } from "../outputs/ResetPasswordTokenCountAggregate"; +import { ResetPasswordTokenMaxAggregate } from "../outputs/ResetPasswordTokenMaxAggregate"; +import { ResetPasswordTokenMinAggregate } from "../outputs/ResetPasswordTokenMinAggregate"; + +@TypeGraphQL.ObjectType("AggregateResetPasswordToken", {}) +export class AggregateResetPasswordToken { + @TypeGraphQL.Field(_type => ResetPasswordTokenCountAggregate, { + nullable: true + }) + _count!: ResetPasswordTokenCountAggregate | null; + + @TypeGraphQL.Field(_type => ResetPasswordTokenMinAggregate, { + nullable: true + }) + _min!: ResetPasswordTokenMinAggregate | null; + + @TypeGraphQL.Field(_type => ResetPasswordTokenMaxAggregate, { + nullable: true + }) + _max!: ResetPasswordTokenMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUpvote.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUpvote.ts new file mode 100644 index 0000000..ffcd8fc --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUpvote.ts @@ -0,0 +1,25 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UpvoteCountAggregate } from "../outputs/UpvoteCountAggregate"; +import { UpvoteMaxAggregate } from "../outputs/UpvoteMaxAggregate"; +import { UpvoteMinAggregate } from "../outputs/UpvoteMinAggregate"; + +@TypeGraphQL.ObjectType("AggregateUpvote", {}) +export class AggregateUpvote { + @TypeGraphQL.Field(_type => UpvoteCountAggregate, { + nullable: true + }) + _count!: UpvoteCountAggregate | null; + + @TypeGraphQL.Field(_type => UpvoteMinAggregate, { + nullable: true + }) + _min!: UpvoteMinAggregate | null; + + @TypeGraphQL.Field(_type => UpvoteMaxAggregate, { + nullable: true + }) + _max!: UpvoteMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUser.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUser.ts new file mode 100644 index 0000000..0c45a20 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/AggregateUser.ts @@ -0,0 +1,25 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCountAggregate } from "../outputs/UserCountAggregate"; +import { UserMaxAggregate } from "../outputs/UserMaxAggregate"; +import { UserMinAggregate } from "../outputs/UserMinAggregate"; + +@TypeGraphQL.ObjectType("AggregateUser", {}) +export class AggregateUser { + @TypeGraphQL.Field(_type => UserCountAggregate, { + nullable: true + }) + _count!: UserCountAggregate | null; + + @TypeGraphQL.Field(_type => UserMinAggregate, { + nullable: true + }) + _min!: UserMinAggregate | null; + + @TypeGraphQL.Field(_type => UserMaxAggregate, { + nullable: true + }) + _max!: UserMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnDownvote.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnDownvote.ts new file mode 100644 index 0000000..a787d97 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnDownvote.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("CreateManyAndReturnDownvote", {}) +export class CreateManyAndReturnDownvote { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnPost.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnPost.ts new file mode 100644 index 0000000..05a34aa --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnPost.ts @@ -0,0 +1,48 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { User } from "../../models/User"; + +@TypeGraphQL.ObjectType("CreateManyAndReturnPost", {}) +export class CreateManyAndReturnPost { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + createdAt!: Date; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + updatedAt!: Date; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + content!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + authorID!: string; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + points!: number; + + @TypeGraphQL.Field(_type => User, { + nullable: false + }) + author!: User; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnResetPasswordToken.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnResetPasswordToken.ts new file mode 100644 index 0000000..68c692f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnResetPasswordToken.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("CreateManyAndReturnResetPasswordToken", {}) +export class CreateManyAndReturnResetPasswordToken { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + value!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUpvote.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUpvote.ts new file mode 100644 index 0000000..fe8a904 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUpvote.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("CreateManyAndReturnUpvote", {}) +export class CreateManyAndReturnUpvote { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUser.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUser.ts new file mode 100644 index 0000000..71c536d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/CreateManyAndReturnUser.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("CreateManyAndReturnUser", {}) +export class CreateManyAndReturnUser { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + createdAt!: Date; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + updatedAt!: Date; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + username!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + password!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteCountAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteCountAggregate.ts new file mode 100644 index 0000000..f1e783d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteCountAggregate.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("DownvoteCountAggregate", {}) +export class DownvoteCountAggregate { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + userID!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + postID!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + _all!: number; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteGroupBy.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteGroupBy.ts new file mode 100644 index 0000000..4ed68f9 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteGroupBy.ts @@ -0,0 +1,35 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { DownvoteCountAggregate } from "../outputs/DownvoteCountAggregate"; +import { DownvoteMaxAggregate } from "../outputs/DownvoteMaxAggregate"; +import { DownvoteMinAggregate } from "../outputs/DownvoteMinAggregate"; + +@TypeGraphQL.ObjectType("DownvoteGroupBy", {}) +export class DownvoteGroupBy { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; + + @TypeGraphQL.Field(_type => DownvoteCountAggregate, { + nullable: true + }) + _count!: DownvoteCountAggregate | null; + + @TypeGraphQL.Field(_type => DownvoteMinAggregate, { + nullable: true + }) + _min!: DownvoteMinAggregate | null; + + @TypeGraphQL.Field(_type => DownvoteMaxAggregate, { + nullable: true + }) + _max!: DownvoteMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMaxAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMaxAggregate.ts new file mode 100644 index 0000000..e779e47 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMaxAggregate.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("DownvoteMaxAggregate", {}) +export class DownvoteMaxAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + userID!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + postID!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMinAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMinAggregate.ts new file mode 100644 index 0000000..0af969a --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/DownvoteMinAggregate.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("DownvoteMinAggregate", {}) +export class DownvoteMinAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + userID!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + postID!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/PostAvgAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/PostAvgAggregate.ts new file mode 100644 index 0000000..2e86a22 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/PostAvgAggregate.ts @@ -0,0 +1,12 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("PostAvgAggregate", {}) +export class PostAvgAggregate { + @TypeGraphQL.Field(_type => TypeGraphQL.Float, { + nullable: true + }) + points!: number | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/PostCountAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/PostCountAggregate.ts new file mode 100644 index 0000000..5ae18f7 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/PostCountAggregate.ts @@ -0,0 +1,47 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("PostCountAggregate", {}) +export class PostCountAggregate { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + id!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + createdAt!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + updatedAt!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + title!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + content!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + authorID!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + points!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + _all!: number; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/PostGroupBy.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/PostGroupBy.ts new file mode 100644 index 0000000..4fd95c6 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/PostGroupBy.ts @@ -0,0 +1,72 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { PostAvgAggregate } from "../outputs/PostAvgAggregate"; +import { PostCountAggregate } from "../outputs/PostCountAggregate"; +import { PostMaxAggregate } from "../outputs/PostMaxAggregate"; +import { PostMinAggregate } from "../outputs/PostMinAggregate"; +import { PostSumAggregate } from "../outputs/PostSumAggregate"; + +@TypeGraphQL.ObjectType("PostGroupBy", {}) +export class PostGroupBy { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + createdAt!: Date; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + updatedAt!: Date; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + content!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + authorID!: string; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + points!: number; + + @TypeGraphQL.Field(_type => PostCountAggregate, { + nullable: true + }) + _count!: PostCountAggregate | null; + + @TypeGraphQL.Field(_type => PostAvgAggregate, { + nullable: true + }) + _avg!: PostAvgAggregate | null; + + @TypeGraphQL.Field(_type => PostSumAggregate, { + nullable: true + }) + _sum!: PostSumAggregate | null; + + @TypeGraphQL.Field(_type => PostMinAggregate, { + nullable: true + }) + _min!: PostMinAggregate | null; + + @TypeGraphQL.Field(_type => PostMaxAggregate, { + nullable: true + }) + _max!: PostMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/PostMaxAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/PostMaxAggregate.ts new file mode 100644 index 0000000..bfa5320 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/PostMaxAggregate.ts @@ -0,0 +1,42 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("PostMaxAggregate", {}) +export class PostMaxAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id!: string | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt!: Date | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt!: Date | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + content!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + authorID!: string | null; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + points!: number | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/PostMinAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/PostMinAggregate.ts new file mode 100644 index 0000000..4b38328 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/PostMinAggregate.ts @@ -0,0 +1,42 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("PostMinAggregate", {}) +export class PostMinAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id!: string | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt!: Date | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt!: Date | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + title!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + content!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + authorID!: string | null; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + points!: number | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/PostSumAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/PostSumAggregate.ts new file mode 100644 index 0000000..7eb88a2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/PostSumAggregate.ts @@ -0,0 +1,12 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("PostSumAggregate", {}) +export class PostSumAggregate { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + points!: number | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenCountAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenCountAggregate.ts new file mode 100644 index 0000000..346716c --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenCountAggregate.ts @@ -0,0 +1,27 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("ResetPasswordTokenCountAggregate", {}) +export class ResetPasswordTokenCountAggregate { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + id!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + userID!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + value!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + _all!: number; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenGroupBy.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenGroupBy.ts new file mode 100644 index 0000000..b38acd5 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenGroupBy.ts @@ -0,0 +1,40 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { ResetPasswordTokenCountAggregate } from "../outputs/ResetPasswordTokenCountAggregate"; +import { ResetPasswordTokenMaxAggregate } from "../outputs/ResetPasswordTokenMaxAggregate"; +import { ResetPasswordTokenMinAggregate } from "../outputs/ResetPasswordTokenMinAggregate"; + +@TypeGraphQL.ObjectType("ResetPasswordTokenGroupBy", {}) +export class ResetPasswordTokenGroupBy { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + value!: string; + + @TypeGraphQL.Field(_type => ResetPasswordTokenCountAggregate, { + nullable: true + }) + _count!: ResetPasswordTokenCountAggregate | null; + + @TypeGraphQL.Field(_type => ResetPasswordTokenMinAggregate, { + nullable: true + }) + _min!: ResetPasswordTokenMinAggregate | null; + + @TypeGraphQL.Field(_type => ResetPasswordTokenMaxAggregate, { + nullable: true + }) + _max!: ResetPasswordTokenMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMaxAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMaxAggregate.ts new file mode 100644 index 0000000..cf61f73 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMaxAggregate.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("ResetPasswordTokenMaxAggregate", {}) +export class ResetPasswordTokenMaxAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + userID!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + value!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMinAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMinAggregate.ts new file mode 100644 index 0000000..0b19e32 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/ResetPasswordTokenMinAggregate.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("ResetPasswordTokenMinAggregate", {}) +export class ResetPasswordTokenMinAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + userID!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + value!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteCountAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteCountAggregate.ts new file mode 100644 index 0000000..8507dcc --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteCountAggregate.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("UpvoteCountAggregate", {}) +export class UpvoteCountAggregate { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + userID!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + postID!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + _all!: number; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteGroupBy.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteGroupBy.ts new file mode 100644 index 0000000..b72c7b9 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteGroupBy.ts @@ -0,0 +1,35 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UpvoteCountAggregate } from "../outputs/UpvoteCountAggregate"; +import { UpvoteMaxAggregate } from "../outputs/UpvoteMaxAggregate"; +import { UpvoteMinAggregate } from "../outputs/UpvoteMinAggregate"; + +@TypeGraphQL.ObjectType("UpvoteGroupBy", {}) +export class UpvoteGroupBy { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + userID!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + postID!: string; + + @TypeGraphQL.Field(_type => UpvoteCountAggregate, { + nullable: true + }) + _count!: UpvoteCountAggregate | null; + + @TypeGraphQL.Field(_type => UpvoteMinAggregate, { + nullable: true + }) + _min!: UpvoteMinAggregate | null; + + @TypeGraphQL.Field(_type => UpvoteMaxAggregate, { + nullable: true + }) + _max!: UpvoteMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMaxAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMaxAggregate.ts new file mode 100644 index 0000000..ef1372d --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMaxAggregate.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("UpvoteMaxAggregate", {}) +export class UpvoteMaxAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + userID!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + postID!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMinAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMinAggregate.ts new file mode 100644 index 0000000..ed67a90 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UpvoteMinAggregate.ts @@ -0,0 +1,17 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("UpvoteMinAggregate", {}) +export class UpvoteMinAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + userID!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + postID!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UserCount.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UserCount.ts new file mode 100644 index 0000000..0207a84 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UserCount.ts @@ -0,0 +1,18 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCountPostsArgs } from "./args/UserCountPostsArgs"; + +@TypeGraphQL.ObjectType("UserCount", {}) +export class UserCount { + Posts!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + name: "Posts", + nullable: false + }) + getPosts(@TypeGraphQL.Root() root: UserCount, @TypeGraphQL.Args() args: UserCountPostsArgs): number { + return root.Posts; + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UserCountAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UserCountAggregate.ts new file mode 100644 index 0000000..9b8c5d2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UserCountAggregate.ts @@ -0,0 +1,42 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("UserCountAggregate", {}) +export class UserCountAggregate { + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + id!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + createdAt!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + updatedAt!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + username!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + password!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + email!: number; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: false + }) + _all!: number; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UserGroupBy.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UserGroupBy.ts new file mode 100644 index 0000000..6d29f88 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UserGroupBy.ts @@ -0,0 +1,55 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; +import { UserCountAggregate } from "../outputs/UserCountAggregate"; +import { UserMaxAggregate } from "../outputs/UserMaxAggregate"; +import { UserMinAggregate } from "../outputs/UserMinAggregate"; + +@TypeGraphQL.ObjectType("UserGroupBy", {}) +export class UserGroupBy { + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + id!: string; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + createdAt!: Date; + + @TypeGraphQL.Field(_type => Date, { + nullable: false + }) + updatedAt!: Date; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + username!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: false + }) + password!: string; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email!: string | null; + + @TypeGraphQL.Field(_type => UserCountAggregate, { + nullable: true + }) + _count!: UserCountAggregate | null; + + @TypeGraphQL.Field(_type => UserMinAggregate, { + nullable: true + }) + _min!: UserMinAggregate | null; + + @TypeGraphQL.Field(_type => UserMaxAggregate, { + nullable: true + }) + _max!: UserMaxAggregate | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UserMaxAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UserMaxAggregate.ts new file mode 100644 index 0000000..b99a49b --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UserMaxAggregate.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("UserMaxAggregate", {}) +export class UserMaxAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id!: string | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt!: Date | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt!: Date | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + username!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + password!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/UserMinAggregate.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/UserMinAggregate.ts new file mode 100644 index 0000000..d548f85 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/UserMinAggregate.ts @@ -0,0 +1,37 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { Prisma } from "@prisma/client"; +import { DecimalJSScalar } from "../../scalars"; + +@TypeGraphQL.ObjectType("UserMinAggregate", {}) +export class UserMinAggregate { + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + id!: string | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + createdAt!: Date | null; + + @TypeGraphQL.Field(_type => Date, { + nullable: true + }) + updatedAt!: Date | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + username!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + password!: string | null; + + @TypeGraphQL.Field(_type => String, { + nullable: true + }) + email!: string | null; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/args/UserCountPostsArgs.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/args/UserCountPostsArgs.ts new file mode 100644 index 0000000..e2a415f --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/args/UserCountPostsArgs.ts @@ -0,0 +1,11 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostWhereInput } from "../../inputs/PostWhereInput"; + +@TypeGraphQL.ArgsType() +export class UserCountPostsArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/args/index.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/args/index.ts new file mode 100644 index 0000000..2cc0ac1 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/args/index.ts @@ -0,0 +1 @@ +export { UserCountPostsArgs } from "./UserCountPostsArgs"; diff --git a/backend/prisma/generated/type-graphql/resolvers/outputs/index.ts b/backend/prisma/generated/type-graphql/resolvers/outputs/index.ts new file mode 100644 index 0000000..37b8d16 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/outputs/index.ts @@ -0,0 +1,35 @@ +export { AffectedRowsOutput } from "./AffectedRowsOutput"; +export { AggregateDownvote } from "./AggregateDownvote"; +export { AggregatePost } from "./AggregatePost"; +export { AggregateResetPasswordToken } from "./AggregateResetPasswordToken"; +export { AggregateUpvote } from "./AggregateUpvote"; +export { AggregateUser } from "./AggregateUser"; +export { CreateManyAndReturnDownvote } from "./CreateManyAndReturnDownvote"; +export { CreateManyAndReturnPost } from "./CreateManyAndReturnPost"; +export { CreateManyAndReturnResetPasswordToken } from "./CreateManyAndReturnResetPasswordToken"; +export { CreateManyAndReturnUpvote } from "./CreateManyAndReturnUpvote"; +export { CreateManyAndReturnUser } from "./CreateManyAndReturnUser"; +export { DownvoteCountAggregate } from "./DownvoteCountAggregate"; +export { DownvoteGroupBy } from "./DownvoteGroupBy"; +export { DownvoteMaxAggregate } from "./DownvoteMaxAggregate"; +export { DownvoteMinAggregate } from "./DownvoteMinAggregate"; +export { PostAvgAggregate } from "./PostAvgAggregate"; +export { PostCountAggregate } from "./PostCountAggregate"; +export { PostGroupBy } from "./PostGroupBy"; +export { PostMaxAggregate } from "./PostMaxAggregate"; +export { PostMinAggregate } from "./PostMinAggregate"; +export { PostSumAggregate } from "./PostSumAggregate"; +export { ResetPasswordTokenCountAggregate } from "./ResetPasswordTokenCountAggregate"; +export { ResetPasswordTokenGroupBy } from "./ResetPasswordTokenGroupBy"; +export { ResetPasswordTokenMaxAggregate } from "./ResetPasswordTokenMaxAggregate"; +export { ResetPasswordTokenMinAggregate } from "./ResetPasswordTokenMinAggregate"; +export { UpvoteCountAggregate } from "./UpvoteCountAggregate"; +export { UpvoteGroupBy } from "./UpvoteGroupBy"; +export { UpvoteMaxAggregate } from "./UpvoteMaxAggregate"; +export { UpvoteMinAggregate } from "./UpvoteMinAggregate"; +export { UserCount } from "./UserCount"; +export { UserCountAggregate } from "./UserCountAggregate"; +export { UserGroupBy } from "./UserGroupBy"; +export { UserMaxAggregate } from "./UserMaxAggregate"; +export { UserMinAggregate } from "./UserMinAggregate"; +export * from "./args"; diff --git a/backend/prisma/generated/type-graphql/resolvers/relations/Post/PostRelationsResolver.ts b/backend/prisma/generated/type-graphql/resolvers/relations/Post/PostRelationsResolver.ts new file mode 100644 index 0000000..61ae5d2 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/relations/Post/PostRelationsResolver.ts @@ -0,0 +1,22 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { Post } from "../../../models/Post"; +import { User } from "../../../models/User"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => Post) +export class PostRelationsResolver { + @TypeGraphQL.FieldResolver(_type => User, { + nullable: false + }) + async author(@TypeGraphQL.Root() post: Post, @TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).post.findUniqueOrThrow({ + where: { + id: post.id, + }, + }).author({ + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/relations/User/UserRelationsResolver.ts b/backend/prisma/generated/type-graphql/resolvers/relations/User/UserRelationsResolver.ts new file mode 100644 index 0000000..c891367 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/relations/User/UserRelationsResolver.ts @@ -0,0 +1,24 @@ +import * as TypeGraphQL from "type-graphql"; +import type { GraphQLResolveInfo } from "graphql"; +import { Post } from "../../../models/Post"; +import { User } from "../../../models/User"; +import { UserPostsArgs } from "./args/UserPostsArgs"; +import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; + +@TypeGraphQL.Resolver(_of => User) +export class UserRelationsResolver { + @TypeGraphQL.FieldResolver(_type => [Post], { + nullable: false + }) + async Posts(@TypeGraphQL.Root() user: User, @TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: UserPostsArgs): Promise { + const { _count } = transformInfoIntoPrismaArgs(info); + return getPrismaFromContext(ctx).user.findUniqueOrThrow({ + where: { + id: user.id, + }, + }).Posts({ + ...args, + ...(_count && transformCountFieldIntoSelectRelationsCount(_count)), + }); + } +} diff --git a/backend/prisma/generated/type-graphql/resolvers/relations/User/args/UserPostsArgs.ts b/backend/prisma/generated/type-graphql/resolvers/relations/User/args/UserPostsArgs.ts new file mode 100644 index 0000000..fc82165 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/relations/User/args/UserPostsArgs.ts @@ -0,0 +1,39 @@ +import * as TypeGraphQL from "type-graphql"; +import * as GraphQLScalars from "graphql-scalars"; +import { PostOrderByWithRelationInput } from "../../../inputs/PostOrderByWithRelationInput"; +import { PostWhereInput } from "../../../inputs/PostWhereInput"; +import { PostWhereUniqueInput } from "../../../inputs/PostWhereUniqueInput"; +import { PostScalarFieldEnum } from "../../../../enums/PostScalarFieldEnum"; + +@TypeGraphQL.ArgsType() +export class UserPostsArgs { + @TypeGraphQL.Field(_type => PostWhereInput, { + nullable: true + }) + where?: PostWhereInput | undefined; + + @TypeGraphQL.Field(_type => [PostOrderByWithRelationInput], { + nullable: true + }) + orderBy?: PostOrderByWithRelationInput[] | undefined; + + @TypeGraphQL.Field(_type => PostWhereUniqueInput, { + nullable: true + }) + cursor?: PostWhereUniqueInput | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + take?: number | undefined; + + @TypeGraphQL.Field(_type => TypeGraphQL.Int, { + nullable: true + }) + skip?: number | undefined; + + @TypeGraphQL.Field(_type => [PostScalarFieldEnum], { + nullable: true + }) + distinct?: Array<"id" | "createdAt" | "updatedAt" | "title" | "content" | "authorID" | "points"> | undefined; +} diff --git a/backend/prisma/generated/type-graphql/resolvers/relations/User/args/index.ts b/backend/prisma/generated/type-graphql/resolvers/relations/User/args/index.ts new file mode 100644 index 0000000..455d908 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/relations/User/args/index.ts @@ -0,0 +1 @@ +export { UserPostsArgs } from "./UserPostsArgs"; diff --git a/backend/prisma/generated/type-graphql/resolvers/relations/args.index.ts b/backend/prisma/generated/type-graphql/resolvers/relations/args.index.ts new file mode 100644 index 0000000..683cd41 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/relations/args.index.ts @@ -0,0 +1 @@ +export * from "./User/args"; diff --git a/backend/prisma/generated/type-graphql/resolvers/relations/index.ts b/backend/prisma/generated/type-graphql/resolvers/relations/index.ts new file mode 100644 index 0000000..e6dcb84 --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/relations/index.ts @@ -0,0 +1,2 @@ +export * from "./resolvers.index"; +export * from "./args.index"; diff --git a/backend/prisma/generated/type-graphql/resolvers/relations/resolvers.index.ts b/backend/prisma/generated/type-graphql/resolvers/relations/resolvers.index.ts new file mode 100644 index 0000000..3f83eea --- /dev/null +++ b/backend/prisma/generated/type-graphql/resolvers/relations/resolvers.index.ts @@ -0,0 +1,2 @@ +export { PostRelationsResolver } from "./Post/PostRelationsResolver"; +export { UserRelationsResolver } from "./User/UserRelationsResolver"; diff --git a/backend/prisma/generated/type-graphql/scalars.ts b/backend/prisma/generated/type-graphql/scalars.ts new file mode 100644 index 0000000..c363d04 --- /dev/null +++ b/backend/prisma/generated/type-graphql/scalars.ts @@ -0,0 +1,20 @@ +import { Prisma } from "@prisma/client"; +import { GraphQLScalarType } from "graphql"; + +export const DecimalJSScalar = new GraphQLScalarType({ + name: "Decimal", + description: "GraphQL Scalar representing the Prisma.Decimal type, based on Decimal.js library.", + serialize: (value: unknown) => { + if (!(Prisma.Decimal.isDecimal(value))) { + throw new Error(`[DecimalError] Invalid argument: ${Object.prototype.toString.call(value)}. Expected Prisma.Decimal.`); + } + return (value as Prisma.Decimal).toString(); + }, + parseValue: (value: unknown) => { + if (!(typeof value === "string")) { + throw new Error(`[DecimalError] Invalid argument: ${typeof value}. Expected string.`); + } + return new Prisma.Decimal(value); + }, +}); + diff --git a/backend/prisma/migrations/20240725104507_/migration.sql b/backend/prisma/migrations/20240725104507_/migration.sql new file mode 100644 index 0000000..9e31f58 --- /dev/null +++ b/backend/prisma/migrations/20240725104507_/migration.sql @@ -0,0 +1,72 @@ +-- CreateTable +CREATE TABLE "Post" ( + "id" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "title" TEXT, + "content" TEXT NOT NULL, + "authorID" TEXT NOT NULL, + "points" INTEGER NOT NULL DEFAULT 0, + + CONSTRAINT "Post_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "User" ( + "id" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "username" TEXT NOT NULL, + "password" TEXT NOT NULL, + "email" TEXT, + + CONSTRAINT "User_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Upvote" ( + "userID" TEXT NOT NULL, + "postID" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "Downvote" ( + "userID" TEXT NOT NULL, + "postID" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "ResetPasswordToken" ( + "id" TEXT NOT NULL, + "userID" TEXT NOT NULL, + "value" TEXT NOT NULL, + + CONSTRAINT "ResetPasswordToken_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Post_createdAt_key" ON "Post"("createdAt"); + +-- CreateIndex +CREATE UNIQUE INDEX "Post_updatedAt_key" ON "Post"("updatedAt"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_username_key" ON "User"("username"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "Upvote_userID_postID_key" ON "Upvote"("userID", "postID"); + +-- CreateIndex +CREATE UNIQUE INDEX "Downvote_userID_postID_key" ON "Downvote"("userID", "postID"); + +-- CreateIndex +CREATE UNIQUE INDEX "ResetPasswordToken_value_key" ON "ResetPasswordToken"("value"); + +-- CreateIndex +CREATE UNIQUE INDEX "ResetPasswordToken_userID_value_key" ON "ResetPasswordToken"("userID", "value"); + +-- AddForeignKey +ALTER TABLE "Post" ADD CONSTRAINT "Post_authorID_fkey" FOREIGN KEY ("authorID") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/backend/prisma/migrations/20240725104539_/migration.sql b/backend/prisma/migrations/20240725104539_/migration.sql new file mode 100644 index 0000000..3abff6e --- /dev/null +++ b/backend/prisma/migrations/20240725104539_/migration.sql @@ -0,0 +1,104 @@ +BEGIN; + +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('4c84d5e6-312b-473a-b046-7c8ee2b133f3', '11/25/2022', '7/13/1990', 'adigg0', 'tT5(dgR8+`', 'acathesyed0@adobe.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('5c358c76-6199-4bb5-8451-f68b48cd53e4', '3/15/1978', '3/1/2021', 'ebasile1', 'cF4(sE6)6db', 'mcoate1@cbslocal.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('96db7efb-5d64-4509-aace-e8ed22abffaf', '11/12/2018', '7/4/1983', 'bshort2', 'eR5t', 'dbytheway8@youku.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', '11/23/1996', '8/22/1977', 'sizsak9', 'uF1?y+*wI+3".', 'ecarlett9@shinystat.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', '2/20/2014', '1/3/1989', 'aschonfeldera', 'rI2|NnC1n', 'crighya@hao123.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('349b8a36-d1de-41f9-a857-726f26ce9208', '11/15/2010', '6/11/2018', 'zseldnerb', 'pZ3)I', 'ojoubertd@ox.ac.uk'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('760565aa-fb09-4026-89bf-83b9203c494d', '7/29/1995', '8/28/1990', 'dhessinge', 'yH7&0f#p9z', 'cnilese@storify.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('af720bbd-0522-41b8-a35f-ef72092f544a', '9/16/2017', '9/28/2016', 'sdawidowitzf', 'qP2?kC7g', 'bbuckthorpf@mail.ru'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('90d14a76-2d54-4842-81b5-5e2b12c5ae53', '9/24/2004', '12/10/1992', 'jmelbyg', 'uM1&\h~4!Vg7"', 'damissg@slashdot.org'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('12f29e4a-64a1-4554-9354-185fbc8f9521', '8/24/1994', '4/28/2015', 'cibbitth', 'rR9|4>hM/j', 'kwhybrowh@gnu.org'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('320384bb-f1b6-4dc3-adcb-b70c262e7dd6', '12/24/1982', '8/26/1972', 'oorwini', 'oW7+(<=P', 'afoordi@gravatar.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', '10/20/1984', '12/23/1988', 'pmiddleditchj', 'sR5=d(Y3snw?R2`$', 'jbenainej@list-manage.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', '10/7/1970', '1/2/1990', 'kstoppk', 'vS8{r)}+DWSJ3', 'mmccaullk@cyberchimps.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('57daf96e-360e-44e1-a65a-954dd1da31a6', '10/6/1996', '11/6/2023', 'bharraldl', 'wZ6(S}+%2$#8J', 'gmaherl@home.pl'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('3c3e029c-a071-4ac5-bbb3-3ee09223dd12', '11/23/2008', '10/28/1976', 'kdustingm', 'xN2{my*mkB', 'cbinnym@howstuffworks.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('0afd0802-6cd1-431d-b36d-8d6977322777', '8/14/2000', '10/3/2005', 'mtuttlen', 'jM7*K/how.YZ+HY&', 'chowseleen@tamu.edu'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('16dcb168-225d-46b5-a353-70f37dbbb1a4', '7/8/1993', '12/21/1979', 'solorenshawo', 'dA1|B&P"/XPN|(o', 'cfeldbergero@seesaa.net'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', '3/30/2023', '5/15/2024', 'mcrewdsonp', 'gW5}HTY9xlWFhc', 'kcloakep@yandex.ru'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('48f2a6dd-b112-4ff9-a5b5-c30df9eba847', '3/1/1987', '7/2/2012', 'rseakingq', 'yN5(a+8mPjxY#', 'xjanjicq@plala.or.jp'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('1d386c29-aa53-465b-9742-edd67a807a53', '7/14/2007', '12/16/2000', 'jvalancer', 'tB6.j/%{$sdrV}', 'jbarkessr@yahoo.co.jp'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('26d56b1e-0ca6-4563-8c64-cb298b7ad7de', '6/30/2003', '12/14/1971', 'bhuddles', 'pZ7#6h&v}', 'pjemisons@fastcompany.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('a3c6bb59-bc38-4d85-82b2-c5407132ba75', '8/30/1992', '2/26/2014', 'larnot', 'iS2!$qB9YTVQh.R', 'amanshawt@hc360.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('e76dab4a-4247-4da6-b218-aecfc99c5b86', '2/24/1986', '5/22/1984', 'mdengateu', 'hQ7*a}+>MI', 'fworlingu@mapquest.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', '12/10/2011', '9/15/2010', 'rhingv', 'aY8/7PKktS', 'bibbottv@yolasite.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('b09b649e-cc1e-4972-8eb6-48709fde32c0', '5/18/2022', '8/18/1977', 'dstitw', 'wE0)bVlmB)&5', 'emanolovw@taobao.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('d84df41a-6d76-4ad6-8fd4-5ea6388b32a3', '4/1/2016', '12/3/2016', 'ivescovinix', 'qJ9.6Hp7\uyc', 'ewarryx@devhub.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('f9de052a-f42f-4d2c-bd46-f5fef6e3d009', '10/13/2023', '9/22/2015', 'lwaplintony', 'oP8{\a5#', 'gdearly@un.org'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('5fb87f4e-7997-45e8-9e2e-4cef322c99ac', '1/31/1988', '1/24/1974', 'adefrancescoz', 'lZ6=%DV>DpBLc0', 'fwinmill1d@wp.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('972106af-041c-486f-9fe7-299592281988', '7/2/1979', '3/28/1986', 'bbrounfield1e', 'nC5?.L=t', 'bdanielis1e@msu.edu'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('586480a1-b8d5-4764-bdd0-dad9f701f8e3', '4/29/1996', '11/21/1985', 'gcarman1f', 'mQ8)#p9e', 'rhonywill1f@google.co.jp'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', '4/23/1998', '1/7/2002', 'cgyrgorcewicx1g', 'sE8*z|/|C01K"8AA', 'tcrysell1g@shop-pro.jp'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('126918bc-5491-442c-8e7d-16f248cd9782', '7/15/2014', '12/2/2004', 'bkimmings1h', 'eQ1`pFaq!5JP01', 'keadmead1h@salon.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('91c3b10a-cca1-4005-8421-4d55000dd7dd', '9/24/1996', '10/17/1991', 'csex1i', 'eN2{F?k!Q''0,cI%', 'oscotchmoor1i@usatoday.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('51303c00-5f8b-46df-ae9f-a0b9e5f6852e', '7/18/2016', '10/3/1985', 'ccerman1j', 'xY2`a=@!=', 'mert1j@51.la'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('071a7e59-724d-4ed9-aeee-fae6797546b0', '2/28/1970', '6/29/2000', 'wglaze1k', 'rW0""E5"d', 'bfairebrother1k@trellian.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('25b968c1-8b78-4543-a8a5-406b85ef2f78', '11/7/1980', '10/3/2003', 'spugh1l', 'xG7`u9MDtJe_n''t', 'aseeger1l@illinois.edu'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('2010cc0a-746b-47bb-bd7e-27b52a0671af', '3/29/2004', '3/11/2014', 'tberkley1m', 'yK2''1PGnX', 'pskingle1m@themeforest.net'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('dee14cf0-a3f0-41f8-b847-54a2994a1b53', '7/13/1994', '6/30/2000', 'mlaurenzi1n', 'aK8\M''4WJvH}', 'bebanks1n@tmall.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', '8/14/1988', '12/20/1978', 'mlicciardello1o', 'iY2"{5IJ|8LA', 'hrivelin1o@prlog.org'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('f63772fb-33c7-485b-a42e-74ac9c91b353', '11/14/1991', '1/9/2016', 'ddiggin1p', 'mD5,A*$XMk''Ytz', 'dcroughan1p@yale.edu'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('14ada151-b657-4ddd-ba27-9afbdda538a7', '9/2/1999', '8/3/1990', 'efaust1q', 'lI8+n%y(c', 'zoliveto1q@reference.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', '10/16/1973', '10/10/2006', 'dcafferty1r', 'wK6,Z6T.Bod''FVGH', 'igleave1r@wufoo.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', '10/13/1992', '9/30/1979', 'fmcfarland1s', 'eK1`mP*I$?0YU', 'lclaricoates1s@tripadvisor.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('95034daa-928b-49e6-a93a-fd5d6b16ea19', '10/30/1975', '1/30/1976', 'fhalden1t', 'gT0{rHQ7"a{`d+"', 'rbohden1t@example.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', '4/17/2020', '11/3/1997', 'dfloch1u', 'cG7*`4nNLD', 'aperacco1u@geocities.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('3eadee28-661a-476d-81b5-844fe0e4a1e8', '7/15/1993', '3/25/2014', 'jattrie1v', 'pX4"5p+4xq31wm', 'cwarnock1v@ameblo.jp'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('59587c91-3de1-419b-b932-0a51531c6e0a', '1/24/1998', '12/7/1984', 'ccallaghan1w', 'wF7)>|s24', 'gniblett1w@etsy.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('89b31029-b22c-4ed3-aaf7-f96d30266556', '12/7/1993', '10/5/2013', 'nwanek1x', 'sV5/dM/raKeWS~,', 'zcossam1x@mapy.cz'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', '3/27/1979', '11/2/2004', 'mmoxley1y', 'nJ5_Eo>g,8g', 'tmclanachan1z@tripod.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('6311e405-c4c8-48ec-bf7b-64f99efe9606', '9/30/2008', '10/1/2020', 'rcarriage20', 'aR3(ei8uhD', 'scholomin20@clickbank.net'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('ed5894c2-065f-405e-8ed4-05b176a66b8b', '11/7/2010', '8/6/1971', 'aeckels21', 'hC4/x2c@7}1UyH', 'emidlane21@nationalgeographic.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('69985d4b-3c16-43be-b728-8b578d16dbe0', '3/12/2019', '5/10/1983', 'gstachini22', 'tE9\''wY\9P', 'aworsnap22@nationalgeographic.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('b89b79d6-ee7f-47eb-8779-a908a110e556', '6/9/2007', '5/26/2016', 'cpibsworth23', 'hS9G', 'vsarjent25@reference.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('43b207aa-d79f-4285-a543-08ca7a7ebd3c', '3/31/1977', '6/15/1992', 'iwalewski26', 'wN4)lV!WAd!F|j0l', 'ochipps26@themeforest.net'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('342a2c55-d571-490f-8464-3430917cad96', '12/30/2018', '7/13/2000', 'asilverstone27', 'mV9&\1bqK5q"#3lI', 'kryam27@google.es'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('af3dcf3f-faa7-4e1f-a434-f3741105dffd', '8/14/2020', '4/18/2016', 'dshouler28', 'aS8~#?5Tskw}4F', 'afawdrie28@homestead.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('731e462e-c730-4434-9daf-598b457feeb7', '4/11/2008', '11/28/2015', 'kmunroe29', 'gZ4&xFvilbHS`', 'vscapens29@hp.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('7a6b9e90-ad20-440e-ab8d-0925a64b3a51', '10/21/1975', '8/28/1997', 'hmollen2a', 'gH0%yt`c/', 'qhartley2a@answers.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', '3/24/1997', '8/7/1974', 'mbroadberrie2b', 'zF7$gl=zc5ti11/', 'gtytherton2b@xing.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', '12/30/2012', '6/5/2010', 'kwhitnell2c', 'qA1~u|Pj.''K5~', 'nlarmet2c@google.nl'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('02e81b3d-97de-4f96-99d0-7f1b94813e1e', '11/16/1974', '1/8/2005', 'cdinesen2d', 'gH2#Gk+n,X', 'lpostlethwaite2d@berkeley.edu'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('1079356c-58a7-41d1-8727-785a3487d17c', '9/26/2018', '5/20/2024', 'cdargie2e', 'xF0!E#dc', 'llansdowne2e@alibaba.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('f2d2785a-6dc9-4005-9397-2e1b08f78450', '12/24/2017', '12/26/1972', 'cdulen2f', 'dE7+w\Vv$', 'rswigg2f@ameblo.jp'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('25d0a43d-45bd-42e2-9b87-57c91d3a19fe', '2/18/1996', '4/24/2022', 'aexell2g', 'uZ4{OQB&/xR)x@', 'wpartner2p@omniture.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('55169d49-d084-4cb2-a119-edb0246394dc', '8/16/2012', '3/31/2013', 'zarnaez2q', 'xM9#>2,JPMqh', 'mschiell2q@washingtonpost.com'); +INSERT INTO "User" (id, "createdAt", "updatedAt", username, password, email) VALUES ('2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', '8/7/1998', '4/15/1998', 'ccheel2r', 'dL4!)vc!/{E', 'hmintrim2r@rakuten.co.jp'); + +COMMIT; diff --git a/backend/prisma/migrations/20240725104611_/migration.sql b/backend/prisma/migrations/20240725104611_/migration.sql new file mode 100644 index 0000000..d289c76 --- /dev/null +++ b/backend/prisma/migrations/20240725104611_/migration.sql @@ -0,0 +1,1005 @@ +BEGIN; + +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3c089c93-9db1-4c61-a29f-e7292b9d091b', '1974-09-03T16:42:05Z', '2014-12-25T16:42:08Z', 'Beau Geste', 'Fusce consequat. Nulla nisl. Nunc nisl.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('99800be1-ba42-4fc9-a7a2-eb1feb359fad', '1988-09-01T07:39:43Z', '1971-09-22T11:12:11Z', 'Glasses (Megane)', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5f2c8d20-c8c8-4778-8770-626ea55fc235', '2013-10-05T19:47:42Z', '1980-10-15T17:49:59Z', 'Tyler Perry''s For Colored Girls', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3cd73788-0e51-4680-a33c-c558d482b897', '1990-12-31T23:32:25Z', '1975-01-08T12:01:27Z', 'Kickin It Old Skool', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c44b29bd-a84c-442c-b0ed-a555859968ec', '1978-02-11T04:41:35Z', '2006-12-02T01:13:32Z', 'Problem Child 2', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0f8808f0-46ff-48f0-9936-432f799e8f31', '1998-02-08T07:39:42Z', '1988-12-25T13:50:46Z', 'House Bunny, The', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('db108cea-98d1-4e2c-9a62-f12116f15d8c', '1972-08-04T04:47:36Z', '2014-11-20T19:24:29Z', 'Whitey: United States of America v. James J. Bulger', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('38fe13e3-4eff-4c74-ae4a-a0883833caf2', '2002-12-17T15:08:39Z', '1975-07-02T21:51:07Z', 'Phantasm III: Lord of the Dead', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', 'a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a54a10b0-42c4-41b9-8bb8-73c9b6e8589f', '1996-07-13T05:06:42Z', '2003-06-09T00:55:34Z', 'Merry Jail, The (Das fidele Gefängnis)', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('384d8033-2dd5-49fd-bac0-e8a7528d6b2b', '1985-01-29T15:47:54Z', '1975-09-08T12:46:41Z', 'Maskerade', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '96aa6cdd-8eba-430c-856e-49deef3a22ad', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b635cd4a-fa34-4199-ada3-1f744fd65c68', '2004-08-20T07:50:40Z', '1977-10-02T04:24:52Z', 'Motorama', 'Fusce consequat. Nulla nisl. Nunc nisl.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('45501fa1-384d-43f3-9818-234603bce0a8', '2013-01-31T12:31:04Z', '2001-06-13T03:22:18Z', 'Rory O''Shea Was Here (Inside I''m Dancing)', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('53d199c9-0a3a-46e7-8043-c96f5e581561', '1996-02-08T12:08:23Z', '2005-12-05T20:10:26Z', 'Space Station 76', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e4a9c9d5-32eb-40dc-8909-3f5b8938832f', '2023-08-13T01:38:38Z', '1997-05-07T03:11:25Z', 'Playing God', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('012795a7-f9b4-46d1-80fc-4486c67b9e9d', '2014-05-10T21:45:27Z', '1991-03-20T19:04:01Z', 'Misery', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f088d5b1-f845-4884-8c04-00ccf9119740', '1992-05-02T07:11:01Z', '1976-12-15T23:37:37Z', '5 Broken Cameras', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09f222cd-4553-4128-93da-d4448faf2460', '1975-07-05T03:53:40Z', '2022-09-24T19:59:06Z', 'Best Intentions, The (Den goda viljan)', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ef6afe7e-f0bf-47c2-b88e-52957d10b906', '2004-12-25T05:58:51Z', '1976-04-02T19:17:28Z', 'Nightmare City (a.k.a. City of the Walking Dead) (a.k.a. Invasión de los zombies atómicos, La) (Incubo sulla città contaminata)', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dd270c13-df92-42f7-b0fb-ec7e6d7f13c4', '1986-11-29T07:12:02Z', '2009-08-25T23:15:58Z', 'Green Zone', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('72635d30-cd05-417d-be93-a58dae4133e3', '2016-12-11T06:13:12Z', '2016-05-24T10:08:03Z', 'To Be and to Have (Être et avoir)', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('77e47b07-4f59-455b-af0b-70102f0fd053', '1991-11-19T13:13:51Z', '1999-01-11T22:44:18Z', 'Fanatics (Kulman pojat)', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9c20cc02-3856-45ce-adde-bceab4967a5d', '1998-12-22T11:12:07Z', '2012-09-15T14:11:39Z', 'Tetsuo, the Ironman (Tetsuo)', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cc20bd73-41d6-4e9c-beb8-e8733f5c3c3d', '1970-02-23T20:59:40Z', '1983-12-10T04:55:21Z', 'La Soufrière - Warten auf eine unausweichliche Katastrophe', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e5e973b6-6a94-4b3d-8fb0-9a6fe255bf18', '1999-05-04T01:21:16Z', '2012-01-23T15:29:13Z', 'Behind Enemy Lines', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('35bc66da-f954-42cd-ac8c-06b4886b3034', '1973-03-26T04:01:01Z', '2009-11-25T05:17:00Z', 'Under Fire', 'Fusce consequat. Nulla nisl. Nunc nisl.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('86bedf9c-d917-4c14-9633-258809aa05c3', '1988-09-08T00:15:53Z', '1986-12-22T22:47:41Z', 'Magdalene Sisters, The', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('93dd65ed-917d-46cf-90a8-dac7037c35cc', '1995-05-27T12:51:47Z', '2023-12-12T05:12:55Z', 'Burden of Dreams', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('783d4edd-5a64-4174-896e-40f84cab3360', '2020-12-20T11:14:23Z', '1970-12-17T15:24:58Z', 'Series 7: The Contenders', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '29d88ab2-f364-420d-ae6c-bb0d99277fb0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('be2053b8-5188-4151-8e8f-7ba021f30377', '2002-04-15T17:25:34Z', '2016-08-03T14:30:18Z', 'Vincent & Theo', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('011056cf-949a-412f-ba16-9908dd21ca33', '2004-08-22T11:55:54Z', '2005-11-10T19:25:45Z', 'Collector, The (La collectionneuse)', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('49d218ce-ccef-4829-ab0f-d541b295c2d2', '1992-04-27T01:48:42Z', '2004-03-02T19:25:31Z', 'The Imitation Game', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2773d940-3eb4-408e-946d-e24848f9bf43', '1988-11-23T08:06:43Z', '2011-03-25T15:07:29Z', 'Bedtime Stories', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f0e88116-09bc-4980-b4aa-d2f99ef6cd67', '1998-03-23T23:32:34Z', '2001-07-09T17:41:18Z', 'Missionary Man', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1d615736-f5af-44d3-988b-3f21cd6cc55a', '2002-07-07T21:29:08Z', '2004-05-11T02:24:13Z', 'Odd Couple, The', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('632d34a1-37dc-4784-995a-fe8797c1865f', '2015-01-11T16:37:18Z', '1980-01-25T19:33:21Z', 'Howards End', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4afaf704-efce-4c1d-8d9d-20e08e0f95f0', '1986-10-16T01:20:26Z', '1978-06-18T00:02:09Z', 'Grand Budapest Hotel, The', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dd32c12a-a562-4442-ab7a-7581ad74753c', '1985-06-15T22:45:36Z', '1980-03-27T22:46:25Z', 'Monsieur Batignole', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '2927d4f1-eb2c-43d9-9cc2-9ecf61e70019', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('de9d4ff7-61e2-4800-a7dc-253efb4e5a52', '1999-11-09T00:00:41Z', '1978-07-01T18:22:58Z', 'Mr. Moto''s Last Warning', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5126bb70-9863-46a9-b85b-a9b7f6d81619', '1983-03-04T15:55:36Z', '2022-08-14T10:17:01Z', 'Return of Dracula, The', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('21c881a9-6e0f-4c3d-9356-ae8492a5ba48', '2024-05-26T18:36:03Z', '1982-12-14T19:58:10Z', 'V2: Dead Angel (Vares 2 - Jäätynyt Enkeli)', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a308a097-41b3-4d99-82b1-60334e0082ba', '1972-09-25T08:01:02Z', '1980-04-04T00:20:32Z', 'Pulling Strings', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('829dc184-db53-41f4-82de-32d9a255b09e', '1978-11-08T18:05:24Z', '1985-05-27T13:47:54Z', 'Animal Crackers', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('403013b8-7388-4b06-829b-da21719b7917', '1992-03-24T14:34:16Z', '1996-12-10T09:21:08Z', 'Bravo Two Zero ', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3f6649bf-ac0a-47d0-89a2-38532468abae', '2002-04-24T09:56:40Z', '1995-06-29T18:33:00Z', 'Ceremony, The (Gishiki)', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8c92e303-85ed-4d38-a119-e81fbaaa0f51', '1982-09-25T00:59:03Z', '2001-12-07T14:42:39Z', 'The Land Before Time VII: The Stone of Cold Fire', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b148d2d5-d483-47d1-8fde-e773191e8fcb', '2007-09-05T01:51:22Z', '1976-02-06T08:48:52Z', 'Too Many Cooks', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09ecf02e-122e-4995-93ed-b69bcf65022f', '1987-11-08T02:12:12Z', '2016-01-21T14:04:24Z', 'Texas Carnival', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('66b8581e-ab32-4f90-9b6e-d136f1ffeed3', '2018-05-06T15:03:45Z', '1976-08-29T06:45:09Z', 'Rocky II', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('84cdec5b-6853-4681-b972-6800c6ec8dfd', '2010-05-19T14:12:26Z', '1983-10-30T00:35:47Z', 'Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La)', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e098ec97-9ddf-497e-8650-92dfae728356', '1981-10-14T14:18:22Z', '2010-06-06T00:10:55Z', 'Bad Boy (Story of Danny Lester, The)', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('18b30ce4-60f4-4f61-b673-4d3e9e069671', '1998-07-03T09:58:27Z', '2012-12-28T21:26:07Z', 'High Heels (Tacones lejanos)', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0405a5d0-1149-49d0-ac01-86c256686193', '1996-05-25T00:19:48Z', '1975-06-10T06:12:32Z', 'Hamlet', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bbfc3a74-a03f-4014-8636-22f508d300c9', '1972-12-23T06:01:30Z', '2016-10-05T18:12:56Z', 'Magic Gloves, The (Los guantes mágicos)', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7fe9cebb-a20f-48ff-aca2-1050793abb53', '1991-03-17T06:53:46Z', '1977-01-11T11:05:58Z', 'United', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e04f1c23-b605-4f5c-b8dd-5eb63c6c0245', '1999-03-14T01:26:41Z', '2003-11-22T07:16:52Z', 'Woman in the Dunes (Suna no onna)', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7a10c02a-3a93-4817-852a-d5abd8c940eb', '1984-10-14T02:11:08Z', '2015-01-09T05:12:34Z', 'Rat Race', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('51392bb1-fe65-45b9-97d4-ef49cf5b81c9', '1977-06-14T04:36:35Z', '2000-05-10T18:55:26Z', '12 Rounds', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '16dcb168-225d-46b5-a353-70f37dbbb1a4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8f26a407-be80-46db-99ef-c4942d1583d6', '1976-07-28T02:30:36Z', '1971-08-31T11:27:56Z', 'Canterbury Tale, A', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('60bda4f6-345e-42e6-96f2-3c10216c17ed', '1997-12-28T21:37:23Z', '1989-08-12T19:40:19Z', 'Executive Protection (Livvakterna)', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ebe1127e-87b2-4e77-91ae-0fe0b3a1f601', '1984-04-10T10:33:53Z', '1976-11-07T07:55:57Z', 'Last Orders', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('74712f1b-0527-42bb-a85d-172dcfabc31b', '1972-10-13T22:58:52Z', '2006-03-07T03:01:27Z', 'Syrinx', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('04e6642e-e985-437d-853d-6f9aef683879', '2016-12-17T23:34:01Z', '2018-07-22T23:19:24Z', 'Super Mario Bros.', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3f3ce4e6-fe83-4f9e-8650-eb252f713c22', '1978-06-27T13:17:03Z', '2016-10-13T23:13:44Z', 'Fort McCoy', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b6da4bce-0842-4ad2-8490-db64526160b7', '1975-12-23T01:27:37Z', '2023-04-30T15:26:18Z', 'Polytechnique', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('48f67ff1-68de-4d08-b94b-880e69da30b1', '1970-08-30T15:20:06Z', '1990-02-25T05:53:10Z', 'Reluctant Dragon, The', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e567c689-c89e-4115-a75c-88b5b304f374', '1976-12-04T18:07:37Z', '2008-03-18T09:41:49Z', 'Nightmares', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8b8431df-62eb-4b2d-844e-e1db4e94cd98', '1991-02-14T05:06:14Z', '2014-11-28T21:23:58Z', 'Green Room, The (a.k.a. Vanishing Fiancee) (La chambre verte)', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('924e46b1-a47a-467b-852c-bb4a37159042', '2018-07-02T13:52:47Z', '1987-10-26T21:38:45Z', 'Nico Icon', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a786c337-c5bc-4ccd-a107-a1d788d27b75', '2004-06-12T09:15:20Z', '1984-04-10T08:33:56Z', 'Operation Petticoat', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c4e0d75d-51ab-4f54-96af-91b7e644860f', '1986-08-19T18:52:48Z', '1991-09-23T23:05:10Z', 'Man for All Seasons, A', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4c81a5be-a9cc-475c-b5dd-4baee29ef970', '2017-06-01T02:51:22Z', '2007-01-01T02:07:07Z', 'Jakob the Liar', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e4c67192-cadd-4cef-97f0-e2fcd81f8288', '1980-01-24T01:37:03Z', '2014-09-09T19:04:59Z', 'Welcome to Macintosh', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('df6a7f55-ba8e-4ae3-88c8-dec3eb2993de', '2018-12-20T16:52:07Z', '2021-04-21T23:38:53Z', 'Live Free or Die', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b9a165f6-40ad-402c-b29d-8c15f62aa996', '1975-01-06T01:08:46Z', '2016-02-26T18:14:15Z', 'Daddy''s Dyin''... Who''s Got the Will?', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('51aaf3f9-6c73-4303-b793-77c2d410ddb4', '1971-01-01T02:37:10Z', '1977-04-06T23:03:23Z', 'School of Flesh, The (École de la chair, L'')', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fcc38e96-450b-4c67-acd4-fdaa8405f31f', '1995-12-30T08:48:30Z', '2005-01-30T20:54:05Z', 'Ghosts of Mississippi', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e145c713-6a15-438d-8470-7e4411dd7046', '1996-06-15T23:47:13Z', '2019-09-21T05:47:06Z', 'House of 1000 Corpses', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e55a970e-7355-4703-85fd-c37232c46955', '2011-10-21T04:40:08Z', '2012-01-19T00:22:18Z', 'Breakin''', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f4795074-fd1a-416b-93bf-bd06ed81f2be', '2005-04-02T10:30:59Z', '1991-09-08T20:50:20Z', 'Cazuza - O Tempo Não Pára', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8f20d73f-c108-45e6-8dec-4f343f16ea1d', '2007-07-16T04:42:59Z', '2003-05-06T07:53:14Z', 'Manrape (Män kan inte våldtas) ', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2245c4e0-764c-44ae-81b3-248ad81e314c', '2000-12-15T06:30:13Z', '1976-04-18T01:42:16Z', 'Coming Apart', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('43797ff8-ea1b-4787-ab3c-513124f98621', '2023-10-04T12:41:42Z', '2005-06-01T17:09:00Z', 'All Is Lost', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ae215109-94b7-402d-8113-c8bc51ec2a30', '2009-02-18T20:02:27Z', '1973-03-28T13:31:14Z', 'Mozart and the Whale', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '91c3b10a-cca1-4005-8421-4d55000dd7dd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('99bcede4-117b-4dcc-a1e0-a452c59211de', '1980-04-06T15:23:52Z', '1991-10-08T23:12:35Z', 'Western Union', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f775473a-7182-4e18-b70e-4bc4ec3b85d9', '2008-11-28T23:56:25Z', '2024-06-26T03:07:17Z', 'Why Stop Now', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e9c7be61-1d02-4e12-80b5-8653087fec73', '1990-10-25T08:06:53Z', '1997-10-04T11:30:58Z', 'Why Not Me? (Pourquoi pas moi ?)', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('544118cb-faeb-4054-be2a-82004ac11b5c', '1987-12-05T04:24:44Z', '2017-06-20T22:59:28Z', 'Year My Voice Broke, The', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '6ebaef59-ac50-4b95-9c4e-8b356d0c5ff0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ccff651b-64b6-45a6-9c92-a7448cf1aba8', '2004-08-30T18:31:18Z', '2009-08-14T17:52:57Z', 'Widow of St. Pierre, The (Veuve de Saint-Pierre, La)', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b309b312-c30a-457f-bcfe-6dbff775f4f9', '1970-11-14T14:42:49Z', '1986-04-08T04:46:18Z', 'Someone Like Him (Einer wie Bruno)', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2c0dc552-9421-486c-9cd1-811429762b32', '2008-08-01T21:13:35Z', '1992-12-20T22:14:03Z', 'In the Shadow of Doubt (Epäilyksen varjossa)', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d30d483a-6f04-4b56-9f23-b4147816544e', '2022-05-15T07:07:58Z', '2014-11-29T09:53:25Z', 'Rocket from Calabuch, The (Calabuch)', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('628265c9-bc12-412c-b9e1-ee86d4ffcc2c', '2006-10-09T21:08:29Z', '1999-05-18T01:22:45Z', 'Party Monster', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('aa9a8e10-fb8b-4aca-9d43-18cdbfc8b82e', '1991-01-21T01:34:21Z', '1979-08-16T06:48:57Z', 'Great Caruso, The', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ee7cddb0-a749-4f1e-b379-d51908237179', '1975-01-03T13:34:44Z', '1971-06-11T05:31:36Z', 'Blood of Redemption', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c27ce258-ae32-4de7-b553-e52c22140a80', '1989-05-14T12:57:02Z', '1972-05-19T02:56:19Z', 'Hector and the Search for Happiness', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e6545009-b6c6-4c2b-b3c7-2f6b343f624d', '1980-09-28T07:00:59Z', '1970-04-18T01:23:12Z', 'Rio 2', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7c2ac44d-5138-4338-bc74-473d76952381', '1988-05-09T15:57:27Z', '2017-10-18T09:38:17Z', 'Dog Day Afternoon', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('047afa1c-97b0-4e97-a394-a8294674dc75', '1995-03-26T07:33:41Z', '2015-04-29T07:23:10Z', 'Shenandoah', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1a8faad1-5aea-4c90-9f0b-ff2f72a74dbf', '1992-10-24T09:49:30Z', '1983-01-06T15:48:21Z', 'God Is Brazilian (Deus É Brasileiro)', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4170b387-dfee-43b3-b4a0-9a104482e42a', '2003-09-25T18:27:19Z', '2023-09-24T17:23:57Z', 'The Great Kidnapping', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1855e0f9-7d0a-4120-8e32-7751ed643516', '1984-02-09T18:13:38Z', '1999-10-01T18:06:06Z', 'Fear, The', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f932ac5c-9885-480b-b7f6-a7a472090ea9', '1970-09-02T16:47:53Z', '1971-03-21T17:21:22Z', 'Quiller Memorandum, The', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bfb37d1d-a066-406b-b638-9931eb8e5df3', '1981-04-23T04:25:58Z', '2004-02-08T07:10:30Z', 'Cheshire Murders, The', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2a65e103-0dd2-403d-bcc0-550d28984d4a', '1980-04-13T16:29:00Z', '2014-05-01T11:03:05Z', 'Bran Nue Dae', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1a9b3daf-988f-449d-8800-000b6357c4b1', '2004-05-17T07:06:53Z', '1982-06-17T18:12:13Z', 'Shogun''s Ninja (Ninja bugeicho momochi sandayu)', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d01eff2a-a243-4faf-b820-7f91f9572e2e', '1994-07-11T00:45:03Z', '2023-12-28T18:05:32Z', 'Stander', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a606afc8-db49-4b84-a4d6-25cfab4f3a5c', '1979-03-15T18:10:20Z', '2021-06-08T12:00:52Z', 'Jesse Stone: Death in Paradise', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('595190a4-914b-436b-b2b8-cf88369f4d59', '2016-06-22T22:05:59Z', '2011-05-23T10:16:45Z', 'Agent Cody Banks', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4d7305ca-6bba-4f01-a340-d7a82097191d', '1993-07-18T05:19:15Z', '1978-03-22T04:23:50Z', 'Buy the Ticket, Take the Ride: Hunter S. Thompson on Film', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2068b1e2-8309-4084-a2f9-1818e0b095d5', '1993-04-06T21:31:43Z', '2006-03-03T10:26:52Z', 'Bee Movie', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', 'd720890a-9417-478c-8114-dcd2242916ca', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('acf7c432-5406-44bc-9a89-3e0621dd89ad', '1993-02-07T19:59:18Z', '2015-08-29T03:29:25Z', 'Goalie''s Anxiety at the Penalty Kick, The (Die Angst des Tormanns beim Elfmeter)', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7930ed71-7778-4ffa-97ba-4a3bc143ee26', '1984-12-09T03:29:24Z', '1982-08-11T13:37:51Z', 'Love Is the Devil', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f3f51277-bd18-443b-861a-08be5bc5b883', '2024-05-30T22:39:34Z', '2001-11-30T08:14:24Z', 'Stone Reader', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('39258fd7-57d3-41d6-a7db-b19ee0e446a7', '2004-08-31T14:00:08Z', '1999-12-03T08:55:03Z', 'El Lobo', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8b94de12-a4bc-44e2-aa2a-e198a89d7c14', '1982-10-26T02:29:59Z', '2022-09-18T02:44:37Z', 'Postcards From the Edge', 'In congue. Etiam justo. Etiam pretium iaculis justo.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('12fe32a7-23c8-4dc7-a923-e22f896f326c', '2002-02-15T11:21:31Z', '1978-08-21T04:40:08Z', 'My Kingdom', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9a43b76e-ed8c-46d9-aa8e-148381568021', '2002-08-11T22:46:39Z', '1990-02-15T08:38:40Z', 'Renaissance Man', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0b367d76-fb10-43a0-9d91-40064a4a397b', '1978-10-25T13:16:49Z', '1991-03-27T21:12:08Z', 'Mission Bloody Mary', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6c27b36f-bf65-478f-a8a7-37c746586de3', '1983-07-25T06:27:27Z', '2012-06-16T17:48:04Z', 'Bridge to Terabithia', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e05abb81-f4a5-4ae9-bfff-d2c8c2920fdd', '2024-02-26T21:24:10Z', '2023-08-01T05:17:44Z', 'The Studio Murder Mystery', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '2927d4f1-eb2c-43d9-9cc2-9ecf61e70019', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('716d188c-787a-4f5f-8b53-7ac4cd9ea0c2', '1987-05-15T05:02:31Z', '2021-03-01T02:07:52Z', 'Boy Eats Girl', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ec26d8e5-7173-4be5-941d-4975126cfea7', '1973-11-17T15:19:46Z', '2011-11-14T21:38:34Z', 'Big Trouble in Little China', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('929ea875-a8b7-4d5f-a26e-126265123ae7', '2020-01-25T11:57:01Z', '2002-09-14T08:11:08Z', 'Treasure Hunter, The (Ci ling)', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3e520674-b4e9-405e-92a9-446b17104f79', '1977-01-22T00:40:01Z', '1994-01-01T21:49:12Z', 'The Great Scout & Cathouse Thursday', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('71e09a45-e769-4e14-a863-d82991b670e6', '2012-08-30T12:23:36Z', '2016-08-26T20:00:10Z', 'All Things to All Men', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e7ad3777-5399-453a-9bae-05910df89b8b', '2005-03-14T20:16:09Z', '1980-07-27T14:34:45Z', 'Diary of a Shinjuku Thief (Shinjuku dorobo nikki)', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '9047ea73-7b72-4834-8811-4d820a9b8f48', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4d3c3472-9c31-4485-b252-45f9db825b42', '1983-07-12T07:26:07Z', '1993-12-27T05:10:06Z', 'Let''s Do It Again', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8b78fc2c-0afa-4cfb-9751-323e40cdecce', '1990-06-24T04:32:03Z', '2001-09-11T06:12:14Z', 'Peter Pan', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '91c3b10a-cca1-4005-8421-4d55000dd7dd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0d162ab4-dae7-4f5a-a832-8ec581a5cd7b', '1998-09-25T13:00:43Z', '2022-12-25T07:47:36Z', 'Which Way Is the Front Line From Here? The Life and Time of Tim Hetherington', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2d0323d0-5baa-482e-bd09-3b8abad1162f', '2002-06-23T10:46:03Z', '2002-04-02T13:32:52Z', 'Torn Curtain', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '5c358c76-6199-4bb5-8451-f68b48cd53e4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fd121209-a3f6-423d-b463-1b374f04a059', '2000-01-16T18:51:22Z', '1992-12-07T22:58:23Z', 'Romance & Cigarettes', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9bcb3abb-c08d-42e2-b730-7158c227ae59', '2003-10-14T07:32:58Z', '2003-12-14T04:02:55Z', 'I Shot Andy Warhol', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('caf9a47f-42e9-4007-abd6-bf2da4137b2b', '2004-01-19T16:38:15Z', '2001-01-23T12:24:08Z', 'Imposter, The', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', 'd720890a-9417-478c-8114-dcd2242916ca', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('19bfc73b-e727-4c38-9c04-71d34b66b716', '1985-05-15T20:03:39Z', '1984-07-15T14:05:11Z', 'Mum & Dad', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '6ebaef59-ac50-4b95-9c4e-8b356d0c5ff0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3b2ab16a-89c4-4c5d-8484-89b1067bf309', '2000-07-26T20:30:21Z', '2011-03-16T20:06:21Z', 'The Great Spy Chase', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7e60eda9-2386-46aa-9b9d-869ff44b7ebc', '2021-12-06T00:57:20Z', '1974-01-02T17:36:08Z', 'Strike! (a.k.a. All I Wanna Do, The Hairy Bird)', 'Fusce consequat. Nulla nisl. Nunc nisl.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d22ba11b-6340-4001-abe4-4a3839d259f2', '1979-06-28T21:37:56Z', '1974-04-21T07:34:08Z', 'Midnight Express', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('10a05013-1ef6-4c45-b615-4430ec061e4b', '1982-11-03T00:14:34Z', '1978-01-05T10:21:05Z', 'Mr. Blandings Builds His Dream House', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2591e595-ccdb-49b9-8e05-17c24a750ee5', '1979-08-16T01:53:40Z', '2006-11-16T16:01:58Z', 'Jack the Giant Slayer', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('91cdc097-32da-42ab-95cb-1e030e613247', '1990-01-08T14:45:55Z', '1995-09-20T23:10:28Z', 'Pandora''s Box (Pandora''nin kutusu)', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bb69964c-7c9e-4543-83da-559a1d385716', '2017-11-17T23:29:49Z', '2006-03-01T11:59:02Z', 'Tom & Viv', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('42f4c18e-44d1-48f1-9948-2bf15ebfe216', '1992-02-20T11:33:40Z', '1983-12-25T13:39:40Z', 'The Frame', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3c67f5e3-3405-4b04-a221-1dbe6545d757', '2018-04-19T13:36:22Z', '2002-07-28T19:36:52Z', 'Tinker Bell and the Lost Treasure', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '649121c9-e222-4ec6-9cb9-9e0568a5803c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('27bf7e2e-b915-4036-8640-1f010746bb0e', '1983-02-12T02:13:58Z', '2003-11-05T00:15:52Z', 'In Old Chicago', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f9453ed0-136f-47af-b076-b832973a8773', '2018-06-24T22:19:34Z', '2001-04-30T14:50:19Z', 'Away from Her', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ba308f11-453d-4a9d-b8e3-2ba90b86c458', '1994-10-09T03:12:44Z', '1992-02-20T13:16:58Z', 'Silent One, The', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('10a9ca73-4a1c-432f-a1a3-a07f28be0b96', '2008-11-05T20:05:44Z', '1986-12-02T02:57:31Z', 'Satanas', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('18b7c740-d4d6-4a22-b03e-a15d9cf0ed64', '2003-12-12T20:01:14Z', '1998-09-17T12:08:10Z', 'Guard, The', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('feeac5ca-a202-4ece-8cc5-a99232bdf480', '2002-06-01T14:51:17Z', '1991-06-13T15:52:37Z', 'Squirm', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('87f7de47-4941-4481-883d-d8ae8fef4e33', '1995-06-16T13:09:44Z', '2005-03-01T09:12:20Z', 'Train', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8f3a915b-7757-4fa4-82a7-e58c03816bf7', '1993-06-17T16:25:52Z', '1999-03-19T15:44:25Z', 'My Man (Mon homme)', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('48d03a05-b51b-4d37-ba31-171af39d95e4', '1996-06-28T10:47:32Z', '1994-04-22T09:43:08Z', 'Hombre', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ab50484f-e407-4077-acd4-1b853663a6de', '1993-03-06T07:44:37Z', '1986-09-13T13:21:02Z', 'Magic Hunter (Büvös vadász)', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e2afb361-038f-4999-9116-5da7dd73879c', '2006-05-01T05:28:16Z', '1998-06-01T07:20:08Z', 'Harry Potter and the Sorcerer''s Stone (a.k.a. Harry Potter and the Philosopher''s Stone)', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('15bd2b3a-0be5-4b96-bf59-7d6fbb8a2824', '1992-12-20T21:43:57Z', '1972-07-22T23:26:07Z', 'Annie', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bf512dca-9462-47c0-9407-c766f51d3c88', '1977-08-15T17:37:58Z', '2022-06-03T14:26:50Z', 'Tim and Eric''s Billion Dollar Movie', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8a7aff75-2ddf-4dc6-8c6e-d8f5952a80f4', '1983-04-18T14:30:56Z', '2001-07-13T01:15:16Z', 'American Soldiers', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('117e4322-cdd7-4d52-a325-89c64a118357', '2017-12-23T18:23:40Z', '1985-02-09T02:31:23Z', 'Temple Grandin', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('882720a2-3e01-4a34-b20c-53c26f39de18', '2005-12-20T18:14:49Z', '2003-07-07T14:51:40Z', 'Europa Europa (Hitlerjunge Salomon)', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('db292a18-3633-4724-8c56-c676f0360dd4', '1991-01-11T01:59:57Z', '1985-08-21T06:59:33Z', 'The Boyfriend School', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f8580528-9d25-4be6-9664-83e020d5271e', '1987-05-09T18:09:23Z', '2024-01-08T15:29:44Z', 'Tapia', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e4c03dc8-1120-46dd-b589-1d79e22de95b', '1978-07-15T21:03:05Z', '2021-03-28T10:39:41Z', 'Go for Sisters', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c7649ba8-d379-4d84-923c-bd1581c6d7bc', '2001-12-23T06:10:56Z', '1980-10-09T05:24:02Z', 'Say It Isn''t So', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9cab980e-f3f9-48c1-ad2c-125c271dfa3f', '1978-12-04T23:13:19Z', '2002-12-01T14:35:37Z', 'Africa Screams', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('197c6a41-96d2-477e-a763-8332857f9e43', '1999-05-03T09:57:56Z', '1975-06-16T05:00:11Z', 'Sun Kissed', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9975868e-16bc-4045-969f-f27ac83f362a', '1987-04-03T00:27:01Z', '1980-09-25T03:21:53Z', 'Uncle Boonmee Who Can Recall His Past Lives (Loong Boonmee raleuk chat)', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b599aea5-a748-42e6-b820-fc49cde3f353', '1989-08-17T06:16:53Z', '1974-09-16T05:34:40Z', 'Traviata, La', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ececb749-bbf8-4f9c-86a3-4a2bd767b5dc', '2007-07-24T12:30:11Z', '2024-07-24T07:57:41Z', 'Wrath of the Titans', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('07a68541-f3e7-4d0f-8c09-6e367c15066e', '1974-09-26T20:17:08Z', '2007-04-09T23:10:12Z', 'Tables Turned on the Gardener', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e519609e-0ac6-4602-b24d-74bc60b16249', '1971-02-21T01:10:24Z', '1997-04-24T02:09:18Z', 'Kid, The', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('eb7c3c99-a9d8-413d-a0f4-134e076b6bc7', '2011-10-03T08:56:12Z', '1976-02-27T13:47:11Z', 'Sabrina', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e3dda8c6-be37-4608-b404-3f5434a9bb5e', '2005-04-05T01:50:18Z', '2015-08-12T08:37:28Z', 'Arbitrage', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fab9936c-ffc8-4423-b4ac-33f313e03a8d', '1978-10-22T01:53:28Z', '2008-07-18T10:28:58Z', 'Hulk', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3fda1d4b-cdb3-4ef4-8695-2a2d6632fcc4', '2018-03-17T16:37:34Z', '2002-06-25T15:33:39Z', 'Lorna''s Silence (Le silence de Lorna)', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d1251092-00de-46ec-b3c3-0c309d13fb8c', '2008-03-30T09:29:41Z', '2001-02-04T14:50:54Z', 'Benny Goodman Story, The', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2c94955a-bb91-4cc5-82df-8a20d4bb0dd8', '1982-10-25T10:32:30Z', '1981-11-09T23:46:58Z', 'Deuce Bigalow: European Gigolo', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bbb95042-3582-4eaf-8bc3-700eb2d01d71', '1981-12-26T13:30:53Z', '2023-05-06T18:12:12Z', 'Walkabout', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3baa45c3-6bdd-4050-a2f0-c04af6bbe83b', '2001-05-26T08:53:56Z', '2012-08-04T16:05:25Z', 'War, The', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b0f3658e-521b-4027-a8c9-a0e52d6ebcbd', '2000-05-16T03:36:48Z', '2000-07-16T09:44:30Z', 'Little Big League', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('31373aae-6f36-471d-8f0d-740c4f310e62', '1977-07-06T21:50:00Z', '2011-02-19T12:41:32Z', 'Giants and Toys (Kyojin to gangu)', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bd51b56f-e57a-4d03-915a-0fb57fb8cb04', '1970-02-06T01:49:16Z', '2006-06-02T14:08:34Z', 'Hurt Locker, The', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d61ab95b-1a2a-4bdd-86a5-b06883d45176', '2000-08-18T22:04:26Z', '1990-12-04T16:20:29Z', 'Flash of Genius', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8ff07ac2-4cd2-49e4-b41e-e88712162157', '2018-10-13T06:25:07Z', '1976-09-03T12:53:51Z', 'War Dance', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b9fe1e4f-496a-4355-b045-2610890cd156', '2011-05-10T01:16:07Z', '1980-03-21T02:15:00Z', 'Cheech and Chong''s Animated Movie', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6dafddc0-e4b0-48b7-91b5-0a3016231dff', '1996-01-24T19:06:03Z', '1990-06-25T07:02:19Z', 'Versailles', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6ca9c4bd-2343-4b08-bc67-7a2b81363c94', '1993-01-14T02:00:43Z', '1978-11-04T20:27:08Z', 'Racing Dreams', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1e55c674-1e54-4ffe-a34c-2c597f7b3ba9', '1975-09-04T01:12:43Z', '1983-11-30T15:32:07Z', 'Flight of Fury', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0feb1dc6-4db8-46a5-bf1b-839c747b26a1', '2000-04-21T06:23:09Z', '2002-10-16T20:20:48Z', 'Meetin'' WA', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a164774e-ebe9-4ea2-87a3-23d33a3748eb', '1988-07-31T14:05:15Z', '1993-02-15T02:38:16Z', 'Garfield: A Tail of Two Kitties', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e72af74b-42bd-4e0c-8eee-066a556beda6', '2002-02-18T01:40:16Z', '2001-05-08T04:37:38Z', 'Braveheart', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c4c04d15-21df-418a-9abe-09590b831f75', '2021-06-23T18:33:15Z', '1984-10-01T10:24:26Z', 'Freebie and the Bean', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('33661396-b095-4edb-b736-f0226cd23668', '1979-12-11T15:07:42Z', '1982-04-13T00:24:31Z', 'Say Anything...', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '16dcb168-225d-46b5-a353-70f37dbbb1a4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('25644b94-c437-4c7d-90c3-9557b72c7ee9', '1980-06-14T11:57:35Z', '1989-06-16T19:28:13Z', 'Destricted', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('11b2c947-89b2-4ecd-b66c-3e7b488210d4', '1976-09-11T15:15:09Z', '1981-11-30T07:19:33Z', 'It''s a Disaster', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('064de2e5-d9f3-4f15-9f94-b920905cb4fa', '1998-04-30T06:28:39Z', '1980-11-05T05:41:55Z', 'Five, The (Gonin)', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6ae446de-3a83-4557-b794-9b47687de21e', '1977-06-08T21:17:00Z', '1981-11-04T21:46:58Z', 'Wild Wild West', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cdb4a3e9-ebd1-48ca-bd6f-79359df3873c', '1976-03-07T22:37:18Z', '2015-01-30T21:09:17Z', 'National Lampoon''s Cattle Call (Cattle Call)', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('890e8fce-f179-4f3b-81bb-363a771cf354', '2022-12-24T16:38:23Z', '1994-02-16T07:59:48Z', 'Best of Times, The (Mei li shi guang)', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('39a9c8da-850f-4894-b274-9230333140ea', '1995-11-15T22:55:35Z', '1993-09-29T00:26:28Z', 'Early Spring (Soshun)', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '5c358c76-6199-4bb5-8451-f68b48cd53e4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b758d47c-f00e-4fa5-988f-343d761afe0b', '1980-08-27T21:30:47Z', '2010-11-13T12:12:32Z', 'Junk Mail (Budbringeren)', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '320384bb-f1b6-4dc3-adcb-b70c262e7dd6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fcd674ac-3c8a-4db7-9984-3358b6b7dc64', '2011-06-20T02:15:39Z', '1978-03-22T02:07:28Z', 'The Interview', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c81743ff-e28c-4909-80cd-8c0bdc3cdd86', '2003-06-14T15:33:18Z', '2014-08-08T02:18:46Z', 'Tea For Two', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d5d58a18-63ba-4683-89a4-1a6fb19d1309', '1976-07-06T05:58:44Z', '1997-11-23T19:27:57Z', 'Nameless Gangster (Bumchoiwaui junjaeng)', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '320384bb-f1b6-4dc3-adcb-b70c262e7dd6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('967c9bea-36f7-4fec-9fa5-9f8ff5eb3d44', '1999-08-29T17:26:14Z', '1989-02-20T06:36:28Z', 'Changeling, The', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '5fb87f4e-7997-45e8-9e2e-4cef322c99ac', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('87ae5345-ba1d-454b-84e4-f61b76b81e9a', '2019-01-29T17:42:32Z', '2014-10-25T00:50:34Z', '[REC]²', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7b5f69b3-7a17-43f7-bec0-3bcf5c76dd22', '1977-03-07T07:38:15Z', '1991-10-15T05:50:39Z', 'Believers, The', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0a9daed6-934e-4b4d-a9f4-3ff011ac191a', '1999-01-14T14:02:26Z', '1977-12-25T01:19:27Z', 'I Do: How to Get Married and Stay Single (Prête-moi ta main)', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b0268ad9-2337-4105-8399-1e195a80b494', '1975-11-29T03:34:50Z', '1975-01-07T14:53:02Z', 'Harmony and Me', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b42a56e9-bf88-4e0d-9a58-0b68dfd000b8', '2006-05-21T03:20:32Z', '1982-09-10T18:55:45Z', 'Rogue Cop', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fcd8f732-cc8b-443b-b7ad-923216442eed', '1978-12-27T13:24:51Z', '2018-01-16T08:51:19Z', 'Escobar: Paradise Lost', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1f21ff5e-642c-4d1f-a4c0-874d58dbdd33', '2015-05-16T18:42:27Z', '1997-11-13T07:05:26Z', 'Loving Annabelle', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('12baff74-19a5-4f6a-b97d-0bbb17c24f1b', '1989-12-01T20:39:16Z', '2017-06-10T09:11:15Z', 'Left Hand of God, The', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('25d00426-9b0c-4758-969f-0290a7d920aa', '1998-03-11T00:25:16Z', '1990-05-08T23:18:37Z', 'The Sea Chase', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8c652561-97cf-4d88-b4da-eb75f9ad00e4', '1993-02-24T11:56:18Z', '2001-05-16T09:52:25Z', 'Corto Maltese: Under the Sign of Capricorn (Sous le signe du capricorne)', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '649121c9-e222-4ec6-9cb9-9e0568a5803c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('92cad867-0250-4fd3-8f1b-f67526af1851', '2004-12-23T16:07:19Z', '1991-04-01T10:15:15Z', 'Dragonheart 2: A New Beginning', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'e76dab4a-4247-4da6-b218-aecfc99c5b86', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5c5c9748-1bf4-4749-b885-914be6a2bfa1', '2018-03-19T07:53:28Z', '2010-11-13T14:25:00Z', 'War and Peace (Voyna i mir)', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4e20677f-743e-46dd-883e-b46d64ed27e0', '2017-08-06T09:17:03Z', '1989-08-21T12:16:42Z', 'Transformers: Age of Extinction', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '1079356c-58a7-41d1-8727-785a3487d17c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('efebb9be-bf3f-498d-9b9b-98fb308eb192', '1981-12-24T10:34:07Z', '2001-07-12T07:23:07Z', 'My Sons (Musuko)', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ec8a9b3f-d26c-4cff-8fd9-c7d0274a2912', '2001-02-15T14:44:22Z', '2009-03-21T14:56:08Z', 'Matador, The', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0d0f3bde-346a-4292-a933-07bc0adb2c8f', '1990-08-29T05:43:19Z', '2023-11-05T10:30:36Z', 'Super Fuzz (a.k.a. Super Snooper) (Poliziotto superpiù)', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ab7ef3b8-fac8-47db-ae4b-f5135de3b2a5', '2006-01-03T05:02:52Z', '1992-03-21T00:38:21Z', 'Slackers', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e14fc392-3eb0-49f6-9e19-93edd9bb95a6', '1977-03-31T15:27:07Z', '1974-05-31T14:33:57Z', 'They Drive by Night', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('59aea807-bcc0-4f76-a355-0b37cf6ab843', '2015-11-20T04:45:02Z', '2021-12-18T19:34:49Z', 'White Chicks', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('23ce7670-818e-4ec6-a02e-560eb42532ba', '2017-07-13T03:50:25Z', '2001-05-08T11:26:11Z', 'Oath, The', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', 'a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('02f6d92f-9dc3-469d-bdf2-60776f455fbe', '1972-04-18T10:11:27Z', '1998-03-06T09:10:04Z', 'Behind the Screen', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '96aa6cdd-8eba-430c-856e-49deef3a22ad', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('169fb65d-534f-4086-b2f3-e515ee12ec0d', '2010-12-08T03:37:43Z', '2009-01-31T22:05:35Z', 'Dawn Patrol, The (Flight Commander)', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2dbbb6f9-8396-442c-b6c4-4ed5f0d5b412', '1973-02-26T08:23:33Z', '1973-06-13T11:10:24Z', 'Hell''s Hinges', 'Fusce consequat. Nulla nisl. Nunc nisl.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('13f02b97-6945-4164-b589-2e29d8b56f2c', '1986-08-10T13:34:53Z', '1991-02-04T03:52:51Z', 'How the Grinch Stole Christmas!', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('403d6ea4-aa5f-434f-848d-38b626da1c25', '1975-06-17T16:45:51Z', '2024-06-10T16:14:14Z', 'Visioneers', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ef1080a2-bb06-40ed-8e49-55799579b8d3', '1991-05-24T08:38:59Z', '2022-02-13T04:35:43Z', 'Outfit, The', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e1c99913-cf4f-423b-8107-3002bf0cded1', '1970-09-22T10:10:56Z', '1972-06-11T15:59:35Z', 'China 9, Liberty 37 (Amore, piombo e furore)', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('eb4d0548-48f8-4f13-ba2a-427c525ef11c', '1991-12-25T19:32:25Z', '2012-02-05T21:38:50Z', 'Unlikely Weapon, An', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5c78b165-1264-4341-9cc3-b343dc88f684', '2012-03-21T23:24:13Z', '1975-12-14T05:00:34Z', 'Tank', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d2d9fe4f-6ba7-4233-b501-08eb074be6e1', '1994-02-14T06:38:35Z', '1985-06-08T08:39:22Z', 'Outlaw and His Wife, The (a.k.a. You and I) (Berg-Ejvind och hans hustru)', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1350daf0-3263-4f59-babb-cc7ba880c304', '2002-04-21T20:31:55Z', '1999-12-10T07:51:02Z', 'Good Men, Good Women (Hao nan hao nu)', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4f4f8ab1-154b-47a5-a5a1-becdd80be341', '1974-02-28T02:54:17Z', '2018-05-29T00:03:04Z', 'Toast of New York, The', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('48b92dc2-d4db-4ec4-9f45-eee1e1ef2080', '2008-11-30T00:14:03Z', '1976-12-29T03:33:52Z', 'Halloween Tree, The', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c89253ac-5662-4d48-a4db-a92c63063afc', '2017-06-03T17:08:15Z', '2024-01-19T03:12:49Z', 'Ricky Rapper (Risto Räppääjä)', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('491bef83-bee0-46b0-8208-dda50714c3c5', '1980-01-17T16:35:11Z', '2007-02-24T09:42:36Z', 'World according to Ion B., The (Lumea vazuta de Ion B)', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d814cf3b-3aa0-4147-8147-3d50b6a486b1', '2009-09-28T12:09:18Z', '2017-07-14T15:52:22Z', 'Riot Club, The', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6f1cdc24-ee8b-4474-91e8-78192a576329', '2008-12-01T21:06:21Z', '1992-08-21T15:25:44Z', 'Paz!', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3928ec3d-a3a9-426a-b83b-349a1f7966be', '2023-10-21T22:43:14Z', '1970-11-09T16:35:03Z', 'Nice Guy Johnny', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fe592050-9ab1-4ea3-a492-2866ac981fae', '1997-03-03T12:57:01Z', '2005-11-01T19:22:09Z', 'Crumb', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '5c358c76-6199-4bb5-8451-f68b48cd53e4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('11b214af-727b-44e0-b496-f3c60c3fc14b', '2010-10-11T08:52:59Z', '2005-07-25T21:55:05Z', 'Client, The', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e3b70208-ec1d-4f97-b59c-e58911e7e69b', '2004-01-31T21:45:46Z', '2013-09-20T23:45:25Z', 'Bopha!', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2635dd97-0b26-42ef-a5f2-e5dbfc582f54', '2013-11-06T16:46:53Z', '1971-06-15T08:17:42Z', 'Happy Go Lovely', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c1369876-4bcc-4107-8ffc-b6ead5c9f18a', '1970-01-21T15:33:11Z', '1989-07-26T03:32:44Z', 'South, The (Sur)', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '320384bb-f1b6-4dc3-adcb-b70c262e7dd6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7817a8f0-10b1-48e0-93a5-c6188f846a10', '1982-01-10T23:47:49Z', '1994-12-06T08:20:29Z', 'Moon-Spinners, The', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '6311e405-c4c8-48ec-bf7b-64f99efe9606', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8b006ff1-d0ec-4d7b-818d-ef84b53acf11', '2014-07-20T12:20:59Z', '2018-07-16T13:55:35Z', 'Zatoichi in Desperation (Shin Zatôichi monogatari: Oreta tsue) (Zatôichi 24)', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('26b69cbe-b010-47a7-b1d4-2a1d930fe6d8', '1982-08-01T09:49:51Z', '2016-12-12T19:17:18Z', 'Never Let Me Go', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09aca026-569d-4d4c-877a-64b87bf96866', '1982-05-05T10:56:26Z', '1992-06-27T13:15:05Z', 'My Life So Far', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f9db54a1-2b01-4193-bf26-a6d0734cde3b', '2023-10-20T05:13:33Z', '2012-10-19T15:38:20Z', 'Dead Pool, The', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0d46e442-7ae5-462e-afa2-1ab9d2aa47e9', '2000-11-08T12:24:46Z', '1983-03-21T13:19:26Z', 'Maiden Heist, The', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6bb89387-c10d-4c83-a7e0-6d6a5eea533d', '2023-07-14T16:39:37Z', '1991-08-02T12:27:55Z', 'How to Make an American Quilt', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('155556bb-6dc0-4961-aac3-1b4fea38e821', '1978-12-31T00:47:29Z', '2010-05-22T02:00:25Z', 'Twin Sisters (De tweeling)', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a5ce2f23-cf8d-4c2c-b69b-1512480116b5', '2006-09-13T23:37:36Z', '1983-03-07T12:13:50Z', 'Critters 4', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('031845e3-ff5f-43b3-9118-9bb32c494da1', '2020-02-01T05:03:11Z', '1976-06-07T00:36:49Z', 'Planet of the Apes', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('481eedd4-fc17-42cd-a06f-d4af6b86f079', '2021-06-01T18:18:53Z', '2000-11-01T05:58:22Z', 'Tukkijoella', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('749cf52e-b9f2-43c7-85ef-eedc8785ad31', '1999-08-02T01:12:47Z', '2007-08-15T04:27:09Z', 'Always', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7bba5607-e4d6-4e20-88cb-f1d198d1138c', '1994-11-23T20:21:57Z', '1976-09-21T12:16:16Z', '30 Days of Night', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ab701b0e-6688-4bdb-95ea-cf4c260c51ac', '1998-10-21T17:43:37Z', '1996-02-07T19:58:57Z', 'Stranger Among Us, A', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3e82c700-3428-42e8-b57b-273c9b2d7463', '1974-06-05T16:36:20Z', '1976-05-10T07:07:47Z', 'Trick', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4514e6d5-8dca-4bf3-a1ad-c090b49387cd', '1977-04-15T07:27:50Z', '2000-09-12T17:50:43Z', 'Madame Bovary', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f2022e70-6a4a-4fb3-8c5c-f3ce7eb7269e', '1998-01-09T05:16:38Z', '1986-09-25T08:26:05Z', 'The Hellions', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('72ede685-ab60-4ea2-8a6d-8f74cc137df9', '2002-05-24T07:41:08Z', '2020-01-12T12:35:23Z', 'Celluloid Closet, The', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('87d49558-5eab-4832-99d6-1e36b1ddbbed', '1984-07-13T20:08:44Z', '1995-01-31T19:52:53Z', 'Six by Sondheim', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2c2f03db-6ec4-40ad-99b5-8648b5fe61a0', '1975-02-18T01:58:48Z', '2003-12-22T12:47:56Z', 'Skin I Live In, The (La piel que habito)', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3d76be3d-007d-4731-8fac-5a134016c150', '1986-09-04T22:03:19Z', '1978-03-02T01:08:15Z', 'City of the Living Dead (a.k.a. Gates of Hell, The) (Paura nella città dei morti viventi)', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cc1aafb4-86b8-48b8-8d09-1d43cad105bd', '2017-07-27T13:32:31Z', '1973-02-08T20:34:10Z', 'Last Hurrah, The', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0d4cba21-7080-4b0c-8df8-e5e2dca9b05f', '1988-06-02T00:35:43Z', '1991-09-23T21:28:31Z', 'Sense & Sensibility', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '9e93b8af-e534-4e45-8910-0dc6c74ab892', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2c30e4aa-0332-4312-b095-5a3f2b399d3c', '2024-01-30T16:21:26Z', '1981-08-07T10:37:24Z', 'Smoking/No Smoking', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1530e975-b2a6-4dd1-ac07-c12bafbb9065', '2003-07-05T02:15:18Z', '1985-05-16T01:34:11Z', 'Sins of My Father', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b9876d2e-b3bd-42a8-b0af-2fcbfe3ec127', '1993-01-16T19:30:33Z', '1986-12-27T15:16:01Z', 'Deadly Trap, The (La maison sous les arbres)', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cc954657-30fa-47d3-a827-6f3d6ad3b204', '1976-11-04T23:10:11Z', '1998-08-24T02:01:42Z', 'Lilya 4-Ever (Lilja 4-ever)', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '9e93b8af-e534-4e45-8910-0dc6c74ab892', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7ca08d50-c8fa-477f-8d48-36c1701c1283', '2019-12-21T08:43:17Z', '1991-10-14T03:09:49Z', 'Iron Man: Rise Of Technovore', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '1079356c-58a7-41d1-8727-785a3487d17c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('01982b9d-3c84-41ec-9dd7-17f9f30c31a5', '2014-01-20T06:56:42Z', '1989-03-07T03:04:36Z', 'Short Night of the Glass Dolls (La corta notte delle bambole di vetro)', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('50090880-61e8-47a5-a757-b1b280f587b2', '2004-07-14T00:32:28Z', '1994-10-06T07:41:57Z', 'Archangel', 'In congue. Etiam justo. Etiam pretium iaculis justo.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dce93b00-21a3-4457-8dae-05babc4f2c1b', '2023-08-12T19:01:54Z', '2011-04-30T20:18:07Z', 'The Dark Horse', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3e912df9-5d5c-427e-8221-38f706b8ebd2', '1980-08-30T14:31:53Z', '1982-10-25T12:19:00Z', 'Fun', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4eafe607-e766-4385-9b5e-42e0a4103367', '1973-04-01T11:39:14Z', '1984-03-13T01:35:11Z', 'Short Night of the Glass Dolls (La corta notte delle bambole di vetro)', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f316b7c6-5c64-47f5-a48d-5f28a99c2a82', '2012-09-16T20:01:06Z', '1990-06-24T02:55:53Z', 'Jam', 'Fusce consequat. Nulla nisl. Nunc nisl.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f00ef8f7-8457-455e-b30f-21eb28f07461', '1994-07-23T16:23:35Z', '1982-08-22T00:51:35Z', 'Cassandra Crossing, The', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b4600ca5-1d29-4fe5-95d8-51927503aa9c', '1995-09-03T08:47:07Z', '2005-04-27T15:43:37Z', 'Huey P. Newton Story, A', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cc346952-3cf7-4c6f-b27d-90c6d8dd3b14', '1993-02-21T22:01:54Z', '1978-04-29T09:55:03Z', 'Delivery Man', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('baaef738-73ff-4a5e-893b-deb182899cc6', '1970-01-07T15:09:45Z', '2019-02-26T05:42:38Z', 'Let''s Not Get Angry (Ne nous fâchons pas)', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8075dd1b-6cf5-48fc-b719-0624e4f569b4', '2022-08-11T16:02:24Z', '1993-12-08T13:06:59Z', 'Ladrón que roba a ladrón', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '29d88ab2-f364-420d-ae6c-bb0d99277fb0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('34829116-6008-457e-ad1b-0b0e56da8b64', '1981-11-02T01:53:15Z', '2011-03-18T14:37:39Z', 'Red Lights (Feux rouges)', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f2edcbb0-452a-4ca7-8a52-0102726bb4a9', '2000-08-06T12:33:29Z', '1983-03-10T12:50:37Z', 'Kuroneko (Black Cat from the Grove, The) (Yabu no naka no kuroneko)', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bcc24ca8-8d45-430f-925b-3243c7b26fcf', '1999-11-12T22:38:04Z', '2007-08-06T22:44:33Z', 'Great Debaters, The', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e94ec7ac-aa53-40ee-a090-087bc6693713', '1979-03-25T21:50:30Z', '1979-12-19T19:08:18Z', '100 Girls', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('922c70e5-43e3-4066-84db-a39f5c581fbe', '1992-05-26T06:59:35Z', '1974-11-05T19:51:03Z', 'Oxygen', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8a731387-5dda-43af-80cb-104ad011bec9', '1998-08-16T17:50:41Z', '2022-09-19T04:11:15Z', 'Pooh''s Grand Adventure: The Search for Christopher Robin', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f2f7e37d-6b58-4201-8c4d-cbd4e3494731', '2015-05-27T13:39:53Z', '2024-02-06T22:31:57Z', 'Intact (Intacto)', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('eacce4c5-f0bb-4da4-8628-8ff324442e01', '1972-09-05T00:19:19Z', '2024-04-18T08:04:22Z', 'BBOY for LIFE', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '320384bb-f1b6-4dc3-adcb-b70c262e7dd6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5bb48b73-a641-4808-b50b-8c9def5f09df', '1998-02-21T08:54:56Z', '1972-08-03T10:27:15Z', 'Made', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3ee6739f-b82d-47e9-94b5-fdac1f39f78f', '1983-09-22T09:49:18Z', '1978-12-28T16:34:33Z', 'Citizen Ruth', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('077981e6-ac8f-4cdb-90e5-dea09316deb6', '1984-09-24T14:17:37Z', '1984-05-31T16:19:46Z', 'See Spot Run', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ef1e06a0-dcd3-4447-83ea-94b2a1cf4531', '1977-07-24T15:49:25Z', '1984-09-29T03:58:42Z', 'Land Without Bread (Hurdes, tierra sin pan, Las)', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ce0ad70f-cb7f-488e-a05a-92012e7a5c9b', '1989-04-02T05:29:02Z', '1972-10-28T09:59:32Z', 'Virunga', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ed1daa90-4840-47d4-9483-d52968d9149c', '2014-09-26T12:04:30Z', '2022-10-28T04:08:30Z', 'Case of You, A', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('94e025f1-6ed5-412c-9b83-d2d373ffe521', '2015-01-26T04:53:36Z', '2017-03-11T05:49:10Z', 'Michael Clayton', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1eeb0b5f-b178-4deb-ab89-1a5cea4f4940', '1995-02-07T13:28:05Z', '2018-08-23T21:07:11Z', 'Wedding Photographer, The (Bröllopsfotografen)', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('29eaba4b-2c1c-4e77-8e22-ecdfa13be579', '1976-02-20T14:34:44Z', '1990-07-05T09:03:35Z', 'Fighter', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cbb68976-57df-4051-a83e-477031c7278c', '2000-10-06T19:40:07Z', '2003-07-01T09:15:59Z', 'Antz', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f193efbe-0669-4c33-bb7c-13b0065a4ae6', '2000-10-23T07:37:39Z', '2013-02-07T03:59:27Z', 'Tenderness (Hellyys)', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fa6d733d-2015-4023-b4aa-f8cba6d9e78e', '2013-06-23T20:43:42Z', '1984-05-08T13:22:25Z', 'Into the Woods', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f995d1e9-2679-451e-83eb-d783e071d042', '1984-07-07T07:20:07Z', '2011-07-17T23:09:36Z', 'Desert of Forbidden Art, The', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a25e6126-0743-40bb-ac83-1efc05dfd26c', '2008-08-01T04:59:21Z', '1991-08-18T11:45:07Z', 'Indian Summer', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cfc5a765-4527-4ca4-b1f7-635159c988fa', '1982-01-23T20:46:11Z', '2006-05-22T14:21:08Z', 'Chitty Chitty Bang Bang', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('13c0b1cb-a172-485b-b98c-1493755b6f16', '1986-09-07T06:35:31Z', '1973-09-23T07:30:38Z', 'Six Ways to Sunday', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('64d24b4a-84d9-4cf0-bab9-b1d6da759487', '2010-01-28T06:52:50Z', '1970-06-29T22:29:07Z', 'Play', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e34eb089-67a6-40c2-b49e-a6e548e92665', '1997-01-13T15:32:03Z', '1988-07-31T12:40:51Z', 'Desert Heat (Inferno)', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('80723d14-532d-44a9-a65e-77bfdbb475e3', '1986-03-13T12:44:53Z', '2003-04-01T20:18:11Z', 'My Wife is an Actress (Ma Femme est une Actrice)', 'Fusce consequat. Nulla nisl. Nunc nisl.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fe82cecd-1744-4714-9755-af12aff71997', '2002-09-20T02:18:04Z', '1998-06-13T15:29:24Z', 'Decoding the Past: Secrets of the Koran', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cbbb0539-e92f-4e83-88da-2fc38a86116b', '1992-10-06T09:43:54Z', '1993-09-25T04:52:06Z', 'Contagion / Bio Slime', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d2488f5a-e427-4e97-ae2a-b0b284f72a7c', '2009-06-19T18:58:42Z', '1987-09-29T04:25:03Z', 'H6: Diario de un asesino', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4173b73c-fd25-4e38-abf1-7b6e65e8bb64', '1992-06-08T15:36:23Z', '2020-11-08T01:37:35Z', 'Where the Red Fern Grows', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a7d285d4-ea24-4710-9e57-bad2c3739f8b', '2011-02-02T01:06:23Z', '1970-01-20T10:39:16Z', 'Tie That Binds, The', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('932a67dc-b09c-4212-9a12-a52d4d656e22', '2012-03-03T19:26:11Z', '1978-01-21T04:47:27Z', 'Four Rooms', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('76d4c774-f539-4923-8100-db9cb21e7192', '1995-08-23T20:34:20Z', '2024-04-06T13:11:13Z', 'River of Grass', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('aca11eaa-32fc-43c7-9665-9da6cc805fec', '1976-07-31T22:52:18Z', '2012-03-22T21:38:00Z', 'Three Ages', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '16dcb168-225d-46b5-a353-70f37dbbb1a4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('df7cda67-a0cb-495a-a864-8f5d29c779e9', '2004-06-25T07:28:54Z', '2018-04-10T19:57:48Z', 'Mexican Hayride', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2428c556-8f8b-497f-9842-3a7976e7f502', '2012-11-29T23:48:00Z', '1980-12-13T11:38:18Z', 'Devil Hunter (El caníbal)', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6d5e67fb-5b16-413f-8c00-bd9b25bcc4f3', '1996-08-15T12:08:44Z', '2014-06-18T20:11:12Z', 'Flash Gordon Conquers the Universe', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('934adef0-96ef-4112-8471-3c1f50a13f29', '2001-12-06T16:38:37Z', '2011-06-27T10:08:40Z', 'Wanted', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('15851754-028f-4395-b637-212b7694e5df', '1984-03-22T18:41:48Z', '2023-04-23T07:49:06Z', 'Below the Belt', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6d943440-065c-4154-aea0-102bb95590b7', '2006-09-27T13:30:26Z', '2005-05-12T03:31:06Z', 'Rocket Gibraltar', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '9e93b8af-e534-4e45-8910-0dc6c74ab892', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('30e4b732-477c-4ba2-b680-1e5831d6333b', '2007-03-13T02:43:16Z', '2001-07-01T06:39:47Z', 'Half Baked', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a3ea6703-53a3-4cff-8cc2-15214e94d80b', '1988-04-01T07:10:48Z', '1976-10-21T09:06:49Z', 'Pie in the Sky', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '9e93b8af-e534-4e45-8910-0dc6c74ab892', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a4809275-dfe1-4e56-8c6e-357c3a354eae', '2017-03-29T15:47:12Z', '1972-02-20T11:05:25Z', 'Tristan & Isolde', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8585af56-c288-4c24-8ae4-0e5127797900', '2018-07-22T14:11:44Z', '2012-07-30T17:53:20Z', 'House of Games', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7896502d-d01b-42b1-8b0e-7bea9e19133e', '2023-07-24T17:54:58Z', '2016-01-25T19:32:50Z', 'Institute Benjamenta, or This Dream People Call Human Life', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6b96947d-8bc3-4048-874a-57cf574d425b', '1970-08-26T17:14:51Z', '2021-10-07T01:37:57Z', 'Diana Vreeland: The Eye Has to Travel', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('adf72726-4580-4070-ba67-74026296a12d', '2014-10-14T01:36:59Z', '2002-10-07T17:30:51Z', 'Murphy''s Romance', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2a146403-f35e-49b9-8528-07cce0e76e01', '1999-05-30T09:35:09Z', '1997-02-16T18:43:06Z', 'Batman Forever', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '6ebaef59-ac50-4b95-9c4e-8b356d0c5ff0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8d68bb03-1707-40d7-be8d-80a1e9955e14', '1971-06-26T11:49:53Z', '1990-07-13T16:34:00Z', 'Brøken, The (a.k.a. Broken, The)', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('72c32baa-d890-44c9-9956-1f1822a3c6bb', '1997-02-20T05:59:00Z', '1971-01-08T05:50:55Z', 'One Week', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6b3ba14d-3a1a-457a-86a5-96c421f93617', '1973-10-29T13:57:51Z', '1974-06-28T20:17:35Z', 'Children of Hiroshima (Gembaku no ko)', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9f95c4e8-b436-4b9e-91ba-22e16a6a9ed7', '1991-03-30T19:37:50Z', '2016-08-10T04:46:01Z', 'Jerry Maguire', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('01bf2072-7c7e-4c5c-b5df-438d5fd351cb', '2011-09-17T07:32:28Z', '1992-07-06T17:01:45Z', 'Streetcar Named Desire, A', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9619e632-3b6a-4a6c-83f7-004d7ff4c289', '2008-10-02T21:39:50Z', '1984-09-07T03:41:06Z', 'Forrest Gump', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c6d39f43-d811-454b-a4b4-8e04bb3236a8', '2015-08-23T19:16:44Z', '2015-10-27T01:04:08Z', 'Blueberry', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7e767413-0ee7-4601-baee-f34803292a9d', '1984-08-22T20:45:32Z', '1980-07-19T19:38:04Z', 'Ganes', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('439755ac-cd33-486a-be6a-a068aede4cd0', '1984-09-23T01:32:32Z', '2014-11-15T06:54:57Z', 'Black Coffee', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c7e285dc-bd56-4a5f-967d-6fa22293f27e', '1974-02-12T22:04:43Z', '2019-09-16T03:29:40Z', 'Escape', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6f05d34a-e7ef-4e58-a05c-f5815c401e10', '1973-01-23T02:23:27Z', '1987-03-07T07:51:32Z', 'Shouting Fire: Stories from the Edge of Free Speech', 'In congue. Etiam justo. Etiam pretium iaculis justo.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1cb8cba1-d6a7-4f42-881b-7fa300de15cc', '1998-09-23T06:43:19Z', '2018-02-02T23:07:57Z', 'War of the Worlds', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('efb52e83-a43c-4d1d-bbc6-cc648c44f613', '1971-11-04T11:23:48Z', '2010-11-27T19:31:22Z', 'Dog Run', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('42f9da7f-1398-4f0f-9360-e9f779348652', '2009-11-10T11:46:09Z', '2004-03-06T17:15:16Z', 'Formula, The', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c2515bee-aeb3-4622-8f3a-f724b7c0c2a3', '1970-12-13T20:57:44Z', '2003-01-05T21:35:41Z', 'Gigi', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('008c46e5-b025-43f7-b9b5-d520b5082664', '1974-01-04T19:08:32Z', '2003-10-17T19:24:55Z', 'Seven Years Bad Luck', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '16dcb168-225d-46b5-a353-70f37dbbb1a4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e8284af6-1690-480d-822c-c6d40a138572', '1980-09-30T02:10:17Z', '2020-02-16T12:57:07Z', 'Reflecting Skin, The', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('48e8991e-861a-4c89-ab65-30d95d8f244d', '2011-05-01T05:29:30Z', '1998-04-23T12:05:32Z', 'Jar, The (Khomreh)', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '29d88ab2-f364-420d-ae6c-bb0d99277fb0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bf7ec4ea-7a77-42d9-81e7-b5eda6b37765', '1973-03-08T22:06:09Z', '2024-07-05T01:40:18Z', 'C.H.O.M.P.S.', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('499faf6e-a11d-43e6-aae4-f4b42bc6473f', '2022-08-30T22:05:34Z', '1988-03-17T06:56:54Z', 'Stealth', 'Fusce consequat. Nulla nisl. Nunc nisl.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b122cfc7-0dde-4ed5-ad98-cb19f34a62e7', '2019-01-09T02:45:53Z', '1985-02-01T08:42:37Z', 'WarGames: The Dead Code', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e11ccbb9-74b4-4896-a7aa-e16647b10531', '1990-05-29T17:37:03Z', '2006-11-16T23:51:15Z', 'The Paris Express', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fbe208fa-174f-442d-91d7-f174bc79ef45', '2006-09-05T08:08:01Z', '2023-01-28T19:10:22Z', 'Righteous Kill', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ff8b1c65-0462-4146-ad75-a749d690ca8a', '2017-08-01T07:35:34Z', '2004-08-30T14:40:29Z', 'Reluctant Astronaut, The', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a89e839b-3d5b-46e9-a9d2-12ebb91a23e7', '2017-03-07T03:44:45Z', '2005-03-02T10:38:01Z', 'What''s Up, Scarlet?', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '29d88ab2-f364-420d-ae6c-bb0d99277fb0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6bdd04e0-8a85-4d3e-a0ff-f285d5b1957d', '1972-09-24T02:52:19Z', '1985-12-06T00:13:02Z', 'Extraterrestrial (Extraterrestre)', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('435f0c06-f02e-40c0-8931-66a1e143dba8', '1988-11-11T07:26:14Z', '1992-05-06T07:11:02Z', 'Heartbeat', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4ff4ebd2-8098-4a3c-8408-68ff98d54348', '1983-01-11T22:29:07Z', '1998-12-04T16:43:01Z', 'Hands of Orlac, The (Orlacs Hände)', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ebb6be2f-991c-4ef3-8500-43a79c091ff6', '2013-09-16T02:14:52Z', '1998-12-22T04:01:57Z', 'Ronja Robbersdaughter (Ronja Rövardotter)', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('88e542d5-0bfd-4e88-b0bc-c4fe463ba9b0', '2001-02-07T15:16:24Z', '1976-11-26T01:00:26Z', 'Kings of Recycling (Kierrätyksen kuninkaat)', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('19b6e16e-395a-4e35-9811-0e7ac3a99493', '2007-06-23T13:14:10Z', '2008-04-10T00:50:47Z', 'Tarda estate', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('40f25411-301a-4014-bd42-7491c0eaa509', '1972-04-28T10:04:04Z', '1972-04-19T12:54:15Z', 'Juice', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('68ac5261-0dea-4b55-8509-2e17cf9f9fbe', '2019-06-19T09:52:53Z', '1995-11-29T06:10:16Z', 'Whirlpool', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('25e54b43-b4fb-48e9-aeb4-27ba6205a597', '1988-09-09T15:35:11Z', '1988-03-16T09:27:52Z', 'Windows', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6e54610f-3f5d-4ab1-a56d-db75c33c3d38', '2007-02-21T20:40:47Z', '2016-04-17T01:46:45Z', 'Scarlet Pimpernel, The', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a85ea4f7-5382-4e9d-9e3e-d27701c7cffc', '2015-02-01T12:48:37Z', '2000-01-28T12:51:54Z', 'Big Deal on Madonna Street (I Soliti Ignoti)', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8b3fcba6-bd49-4052-ae6b-6ad9c762c3ed', '2011-11-14T19:06:15Z', '2016-09-29T20:03:16Z', 'Queen to Play (Joueuse)', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0ed5aa6c-676c-4e3d-9f69-767559b756c2', '2019-11-21T09:21:24Z', '2011-11-17T17:10:15Z', 'Any Number Can Play', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('48702cca-45a0-4508-97c3-95271f8367d3', '2019-05-04T15:16:03Z', '1991-01-27T17:51:06Z', 'Boy Interrupted', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('335a805d-1ce9-4dbb-888d-44b5164ea8db', '1972-06-10T21:19:23Z', '2017-04-20T14:46:47Z', 'Rogue Cop', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('349a71f0-97b9-4b98-b879-04147dc52369', '2023-05-21T05:56:27Z', '2015-08-22T23:27:31Z', 'Along the Ridge (Anche libero va bene)', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('db38a3c8-e336-498d-bcd9-e6d86a331e47', '1989-05-11T03:23:04Z', '2023-12-30T13:47:54Z', 'Shall We Dance', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c25e16b9-7bce-4691-bd8d-3f02b6d437d6', '1988-01-25T07:57:01Z', '2003-05-24T20:56:15Z', 'Revenge of the Zombies', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('92c2510c-7a50-4c38-b31d-a7d440272088', '1974-04-07T18:31:43Z', '2015-10-12T04:34:17Z', 'Moving Out', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('adc15e96-5444-441f-b88e-f24ff859128a', '1992-02-01T11:40:59Z', '1987-10-29T11:31:11Z', 'Gun Crazy (a.k.a. Deadly Is the Female)', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2aa71275-e431-4b50-9735-31a367f36c95', '1978-03-15T19:44:21Z', '2022-01-31T13:45:41Z', 'Excalibur', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b8f68bef-3cf4-40e0-a73d-c93ae137d3a5', '2018-10-03T15:07:27Z', '1971-10-08T15:32:19Z', 'Mother of Tears: The Third Mother (Terza madre, La)', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('68f60b39-2f22-4a9c-b047-6a49b2aee707', '1978-11-22T19:36:24Z', '1984-07-09T19:10:09Z', 'Meet the Parents', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('879a651d-8162-475b-8c92-d99bfb968b3b', '2004-05-13T03:05:24Z', '2004-03-23T00:45:22Z', 'Harrison''s Flowers', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('39881cc9-73de-4a7a-909e-f0aebe5ade97', '2005-05-12T12:48:21Z', '2016-12-29T22:44:58Z', 'Pulling John', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cce85477-64aa-4e73-b77d-53ee41621cd4', '2019-09-05T17:59:54Z', '2001-11-27T11:52:09Z', 'Deadly Tower, The', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dfede847-4b9c-4e5a-8982-c4439c44da48', '2002-10-13T20:48:58Z', '2008-03-15T22:52:06Z', 'Cake', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fbe326d6-b751-40f5-9bcf-78128c8c3370', '1971-02-08T16:50:23Z', '2002-11-27T21:01:43Z', 'Cleanskin', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('46b2b2fe-e2a1-443c-8736-f73a6df453dc', '1982-04-26T15:29:39Z', '1987-12-07T04:53:54Z', 'Harvey Girls, The', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7e463f3a-8f0e-4f2d-b8d6-4324ba771c1a', '2015-04-07T06:09:10Z', '1973-02-14T03:11:20Z', 'Dans la peau d''une grande', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9efce663-ff95-4412-8e42-4c7de7d1fa5d', '1996-07-02T11:16:01Z', '1972-04-23T15:06:42Z', 'Ghoulies III: Ghoulies Go to College', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8f0617cf-8fa5-4e59-9ff4-11382fcd0557', '1999-01-02T10:51:41Z', '2004-04-10T09:34:14Z', 'No Man of Her Own', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09c95db6-0f86-4e71-8f1c-1ca02088b3ca', '2009-08-01T11:09:19Z', '2023-06-13T05:53:07Z', 'He Walked by Night', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '9047ea73-7b72-4834-8811-4d820a9b8f48', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dcfa7e04-4e55-4111-a900-493344983052', '2019-08-26T19:08:58Z', '2021-06-26T10:45:47Z', 'Civil Action, A', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '1079356c-58a7-41d1-8727-785a3487d17c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('db1b6e98-c6c3-45a9-9716-5c0be6d57030', '1982-07-07T22:31:55Z', '1993-05-26T10:10:27Z', 'Hangtime - Kein leichtes Spiel', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '1079356c-58a7-41d1-8727-785a3487d17c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b0bf1906-5479-4652-b9fa-17e300f2cf6e', '2022-11-25T08:17:41Z', '2008-08-10T17:37:15Z', 'The Gamma People', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('634cfdb4-56f0-44e7-b916-556f8266c2f7', '2002-08-23T05:09:47Z', '2013-07-07T08:38:16Z', 'Sport, Sport, Sport', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3c1501c8-70ec-4e05-8689-41bb6c2ce41c', '1998-06-11T13:32:48Z', '2011-08-31T08:33:31Z', 'Mohabbatein', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a9bb1c2c-713b-4443-996c-d38e30dab4ef', '1978-10-17T22:28:08Z', '2004-10-12T22:39:54Z', 'My Mother and Her Guest (Sarangbang sonnimgwa eomeoni)', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '649121c9-e222-4ec6-9cb9-9e0568a5803c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0b89fca4-8810-4441-b6a7-0010d0bf76ce', '1981-12-10T11:58:51Z', '2002-02-11T07:04:01Z', 'Papa', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b1d032de-cd78-4cde-b91b-045cc506f2e9', '1974-08-04T00:55:05Z', '1992-04-28T20:08:20Z', 'White Material', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('98916e7d-9421-4224-b883-1bdffad5e071', '1999-01-10T09:25:42Z', '1977-03-03T08:56:43Z', 'Oppai Volleyball (Oppai barê)', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fab837c2-f05c-4185-ba01-83bb26eaee50', '2022-01-11T23:46:51Z', '1979-12-01T14:47:37Z', 'Soul Survivors (a.k.a. The Killer Cut)', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ebd967fb-d95a-4b0b-8fd5-bc1d2a66e9eb', '1997-09-03T15:00:15Z', '1995-11-27T15:15:45Z', 'Halloween: Resurrection (Halloween 8)', 'Fusce consequat. Nulla nisl. Nunc nisl.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('819e273b-1ff5-4cce-9e1a-d1bd7bbba964', '1974-02-23T12:54:21Z', '2016-05-30T11:45:23Z', 'My Life So Far', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('20828b5d-bfc9-4ba6-9b5b-65715f82bfce', '2017-09-02T14:45:31Z', '2014-02-06T18:50:43Z', 'Abigail''s Party', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('beb74122-7c90-4037-a61c-3d56ef677b97', '2012-11-14T07:33:55Z', '1975-08-11T17:28:58Z', 'Anna Karenina', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ca648101-58e6-4c29-aeeb-68f2c6b81a4b', '2018-02-01T10:13:17Z', '1979-07-04T08:31:53Z', 'Little Princess, A', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a6554fc2-8f2c-444f-9bce-8781d31bd492', '2000-10-17T08:29:09Z', '1980-08-10T04:04:25Z', 'Pete ''n'' Tillie', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('52b3c71f-d0d3-4635-a7a7-5ee94d17b5cb', '2005-03-27T14:39:14Z', '2020-06-21T01:52:59Z', 'Sweeney Todd', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8100ba13-a1cb-46a4-868f-ebf9a9ddbc16', '1995-06-10T06:04:19Z', '1973-02-13T16:16:10Z', 'If Lucy Fell', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d90dc210-2985-499c-8b4e-1e0772cb6041', '2018-12-29T02:01:47Z', '1992-01-16T06:09:08Z', 'Dirty Mary Crazy Larry', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c9b10b09-5e2f-4e32-affe-b21349d5c557', '1999-06-21T23:22:06Z', '1992-10-18T13:43:55Z', 'Disappearance of Alice Creed, The', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', 'a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0193db32-32c0-4b7e-b740-dffe729600e0', '1976-12-10T12:48:56Z', '2011-08-27T04:11:27Z', 'Annie', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('06c2c62d-efc8-4299-8af3-bee18a4f6075', '1991-09-28T07:55:07Z', '2011-12-15T12:07:19Z', 'Chinese Zodiac (Armour of God III) (CZ12)', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7d9854ec-a006-4cba-a028-9d67506ac3ad', '2021-01-03T18:52:29Z', '2008-12-16T10:49:46Z', 'East Side, West Side', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a8ba87a4-4c90-4155-a5aa-8125f75a3681', '2006-05-22T07:01:32Z', '2017-01-29T01:56:57Z', 'Kaho Naa... Pyaar Hai', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e232de1e-568a-4cc4-b8d8-4fb2488e009e', '1973-07-10T18:36:20Z', '2024-07-20T19:17:54Z', 'Being Julia', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fa308a6a-b321-433c-94de-3478b1b8a81f', '2019-03-23T20:52:47Z', '1997-08-24T17:39:05Z', 'Gerontophilia', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('015341b6-4954-4712-a5ef-784accc49ef6', '1992-10-01T19:15:45Z', '2005-06-28T17:30:52Z', 'Possession of Joel Delaney, The', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1e9669ea-3abf-4a41-9bf3-7147589865a9', '2020-01-18T08:51:18Z', '1979-06-01T14:09:21Z', 'Simple Men', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('346c59a5-8bc5-44bc-a700-f775b431a2b3', '1985-08-12T00:24:06Z', '1977-05-26T04:22:59Z', 'Video Games: The Movie', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0fcd3970-0eb8-467b-b307-82e5f2f7ef46', '2004-01-12T08:29:28Z', '1974-07-14T06:42:16Z', 'Major League II', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('25349db4-277b-487b-ae7f-92d1fa7f86bd', '1973-07-12T03:56:23Z', '1993-05-07T03:40:19Z', 'Garfield Gets Real', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c977f320-0fc4-43aa-aa3e-80831cb4e57d', '1972-09-30T13:22:34Z', '2007-08-31T02:46:05Z', 'Partly Cloudy', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ac871892-e3f3-4811-b87a-532e554c2d22', '1985-02-08T23:33:11Z', '1979-11-15T05:40:57Z', 'Taxing Woman, A (Marusa no onna)', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0c5bdd67-b4fd-4b13-a2b2-ce5774af5d29', '2003-05-24T00:27:39Z', '2005-08-02T00:21:26Z', 'Straight Talk', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1f9b2282-ab73-4b28-a9a3-d476aa6afcd7', '2012-05-25T19:15:14Z', '2010-09-15T09:29:26Z', 'Free Fall', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('285ff4a3-2c3e-4a0a-9889-a4748be9c1c0', '1986-09-08T06:40:02Z', '2005-11-08T04:32:20Z', 'Underground', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('615fb8cb-37fd-4217-b36b-d1dd49b7178a', '2003-07-26T19:30:46Z', '2016-12-28T11:36:12Z', 'Capturing the Friedmans', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3f2783b4-e1b0-4d5f-baef-809d24812efd', '2000-07-17T20:30:20Z', '2002-12-25T05:40:03Z', 'Eye of the Storm, The', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('858f797c-dd90-485b-9c2b-ca0152d1157e', '2013-05-22T18:20:47Z', '2002-01-07T07:49:02Z', 'Only the Strong Survive - A Celebration of Soul', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('89ba2d96-6231-4970-97aa-2713b00f6ce1', '2022-01-07T18:42:44Z', '2003-01-14T15:18:54Z', 'Charly', 'Fusce consequat. Nulla nisl. Nunc nisl.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6a4dfa1a-731d-4320-b155-40831dc4db32', '2017-06-26T06:13:14Z', '2005-10-27T05:51:40Z', 'Peculiarities of the National Hunt (Osobennosti natsionalnoy okhoty) ', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b38221dc-2e25-4716-99e2-25ca4579d628', '1974-02-19T02:30:08Z', '2003-08-17T20:07:59Z', 'Quarantine 2: Terminal', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b3a3e3b3-e678-48da-9c57-e686ffa4f4b6', '1984-12-21T11:02:21Z', '1990-06-03T18:08:40Z', 'Tokyo Story (Tôkyô monogatari)', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a2f850fa-b1d4-4540-a01b-341be3a918d1', '2017-07-13T05:05:06Z', '2007-06-05T04:31:47Z', 'Waterboys', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '29d88ab2-f364-420d-ae6c-bb0d99277fb0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b8f6e55d-63c8-4428-8850-5ee9e6318f50', '2024-02-22T15:29:17Z', '1972-10-06T01:18:24Z', 'Karol: A Man Who Became Pope (Karol, un uomo diventato Papa) (Karol. Czlowiek, który zostal papiezem)', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5d06e1f5-a4db-4d04-8d12-7650bd589aca', '1988-10-15T11:13:15Z', '2012-12-04T19:02:44Z', 'Gable: The King Remembered', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3ff910fc-c092-4424-bf38-6c57a60a236e', '2004-09-04T10:41:20Z', '2000-12-20T23:08:55Z', 'Micmacs (Micmacs à tire-larigot)', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b28e40a0-e9e4-485d-a54f-7531c98d5b92', '2000-01-05T16:27:23Z', '2003-06-21T13:48:48Z', 'Tokyo Olympiad', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ff48b38f-be73-4f3e-bc4c-0e050e68ec25', '1980-08-07T09:28:20Z', '2017-08-27T02:56:14Z', 'Beast with Five Fingers, The', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2ede088e-56da-4e03-a8d5-dae282b137ac', '1998-02-26T15:39:29Z', '2005-01-04T12:10:19Z', 'Honey, I Shrunk the Kids', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7b03af04-04a7-4e9e-bf65-933de283b9ca', '1985-03-03T17:45:05Z', '2014-04-16T04:00:52Z', 'Rent: Filmed Live on Broadway', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ecf282c2-f0c2-4f4b-8fa4-717c44206d91', '2018-11-08T12:50:36Z', '2023-05-27T14:33:59Z', 'Even Dwarfs Started Small (Auch Zwerge haben klein angefangen)', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f4323a8f-f175-404f-b3f4-12e8331ba42d', '2011-03-29T20:03:14Z', '1994-11-28T20:45:19Z', 'Family Game, The (Kazoku gêmu)', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '6ebaef59-ac50-4b95-9c4e-8b356d0c5ff0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('50fe0ce1-3f16-4f59-8ae3-1e265e444e9e', '1994-08-15T15:41:14Z', '1980-07-20T07:38:29Z', 'Adventure of Sherlock Holmes'' Smarter Brother, The', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6257df67-fa86-4f12-98de-78fb3b293a7f', '1975-07-24T22:04:11Z', '1972-03-04T08:02:26Z', 'All About the Benjamins', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '9047ea73-7b72-4834-8811-4d820a9b8f48', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('68a9eab4-b6c6-4fb5-b959-a5beb2e61940', '2013-04-21T11:53:17Z', '1987-05-31T17:19:53Z', 'Never Take Candy from a Stranger (Never Take Sweets from a Stranger)', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3badd980-3a32-43c9-9601-1b4c019ddc81', '1990-04-23T14:29:56Z', '2003-10-28T17:52:52Z', 'Dance of Outlaws (Häätanssi)', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9e8d7978-be1a-4777-8b47-4e526dadccab', '2008-11-12T07:53:50Z', '2015-03-31T20:42:20Z', 'Time Machine, The', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('58c7fb4f-da53-4864-b56a-be094fc0f5e9', '2016-08-18T05:55:43Z', '1998-05-04T04:52:41Z', 'Jealousy', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('008b0b87-2702-4489-b373-473c6419ef25', '1996-02-03T23:29:43Z', '2016-04-12T15:00:57Z', 'Returner (Ritaanaa)', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('98ca3854-f570-4562-9ccf-21efa857fa94', '2008-05-12T20:04:17Z', '1989-06-30T14:39:29Z', 'Silent Action', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '96aa6cdd-8eba-430c-856e-49deef3a22ad', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('81042c69-71b3-415a-8501-a9729f69050c', '2015-01-29T08:21:27Z', '1992-03-08T20:05:33Z', 'Zorro, the Gay Blade', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dc01dfa3-028c-4f23-b70d-a93abfa24308', '2004-05-25T13:20:44Z', '1972-08-21T00:24:52Z', 'Zona Zamfirova', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('50b93237-3770-48be-a442-7007ba3f8e8f', '1973-08-16T21:05:25Z', '1987-09-02T12:18:00Z', 'Catching Hell', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6a15ffe3-1078-46df-9066-ee58d4489c73', '1999-11-02T14:26:05Z', '1988-12-31T15:17:59Z', 'Way of the Gun, The', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('37586e34-e402-48df-84af-7f35eb8ca794', '1991-04-14T16:09:50Z', '2021-10-14T11:32:33Z', 'Story of a Love Affair (Cronaca di un amore)', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d353eb51-431b-412d-990e-887321682f27', '2018-01-22T18:22:07Z', '1990-09-19T17:50:28Z', 'It''s Love I''m After', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9895c370-adc4-43d9-93ef-a9eb625f6981', '2009-08-14T09:13:16Z', '1975-11-22T15:35:18Z', 'Things Behind the Sun', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('630e543f-0205-478e-bab6-d8a5c3dd33c3', '2004-06-16T16:11:28Z', '1997-12-06T23:39:35Z', 'Tale of Zatoichi, The (Zatôichi monogatari) (Zatôichi 1)', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('af9f3297-0bd7-4e84-85b7-3a413821979b', '1972-12-20T11:03:38Z', '1982-06-01T07:20:50Z', 'Fear Over the City', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', 'd720890a-9417-478c-8114-dcd2242916ca', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a5936d51-b998-4462-b22a-0ffee6570746', '1999-08-20T18:43:33Z', '1996-11-04T23:35:33Z', 'Keep Your Distance', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c5b5e0f6-90e0-4145-8c07-f51656f1cf0f', '1993-12-06T09:11:42Z', '1994-03-13T00:15:31Z', 'Aliisa', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d717fc84-1773-406b-ac45-c9323b2f3cdf', '2001-11-18T06:24:01Z', '2019-12-12T10:35:56Z', 'Peep World', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a28705d4-c672-409d-a24f-70c2307aeec5', '2010-02-18T12:00:19Z', '2013-11-06T09:23:47Z', 'Kopps', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8cf62bcb-03ca-4986-9c34-24fed672f3f2', '1981-01-22T05:56:36Z', '1997-09-19T01:59:52Z', 'Place Beyond the Pines, The', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('16a57158-c5ce-498e-9978-814cde51182f', '1988-03-06T13:11:06Z', '1990-08-13T17:06:37Z', 'Ivanhoe', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b8f491eb-15c3-4b71-9f70-ca4a35945be8', '2007-10-23T09:47:05Z', '2011-10-11T22:01:35Z', 'Urban Legends: Final Cut', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9f0fcc9a-cd67-409c-9ea4-2cea3af3d8c0', '1983-05-21T00:18:11Z', '1984-12-12T23:47:14Z', 'Book of Stars, The', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2a28ce5d-ed43-40bb-9ec2-7e6f029ad984', '1998-12-25T07:14:07Z', '2022-01-20T17:49:57Z', 'Essex Boys', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('88eafe3d-6bcf-4b63-9c2d-ac1468d837e2', '2005-07-10T04:11:58Z', '1978-08-06T17:19:43Z', 'Chasing Papi (a.k.a. Papi Chulo)', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b01a2bb3-1957-4df8-ac64-1b6f9b3ffa35', '1987-07-08T18:51:34Z', '2000-03-02T21:38:09Z', 'Norwegian Wood (Noruwei no mori)', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5a8f549c-e801-4aa5-a295-b713fa072644', '1990-07-13T16:26:59Z', '1978-05-03T22:38:17Z', 'Prince of Egypt, The', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5f4e841a-4e3e-4746-b3c4-37a98d9ec72c', '1971-02-04T18:11:16Z', '1991-05-24T22:09:05Z', 'Five People You Meet in Heaven, The', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '320384bb-f1b6-4dc3-adcb-b70c262e7dd6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('16b7f8f9-9add-4bc3-9664-20157187690c', '1970-08-05T15:11:07Z', '1985-02-03T18:24:49Z', 'Universal Soldier: Regeneration', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1a99ed22-78af-48d2-a5ca-80844267ab38', '1970-12-01T16:21:53Z', '1990-02-13T07:40:52Z', 'Bliss', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9d466a11-6466-442f-89e3-2f9fa7005fe2', '2005-07-04T09:14:06Z', '2008-10-16T16:02:26Z', 'Sometimes Happiness, Sometimes Sorrow (Kabhi Khushi Kabhie Gham)', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2972b13f-68ad-4a1b-85d5-ab75e8ab3ebb', '1975-11-01T19:50:12Z', '2004-05-10T17:05:03Z', 'Treasure Island', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('45ff8812-cbaa-4958-881f-b7eb83266834', '2001-08-24T09:59:22Z', '2013-09-05T00:52:31Z', 'The Boy Who Cried Werewolf', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '16dcb168-225d-46b5-a353-70f37dbbb1a4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('833e5c13-ae68-4d63-ae15-56aa5eb43a8b', '2015-11-05T02:14:48Z', '1990-06-25T16:47:43Z', 'Wadd: The Life & Times of John C. Holmes', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8b5466fd-6070-4a14-9118-87ede5ec91c4', '1991-10-02T22:06:01Z', '1999-07-25T19:09:24Z', 'President''s Last Bang, The (Geuddae geusaramdeul)', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '16dcb168-225d-46b5-a353-70f37dbbb1a4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('26a261ed-eaca-4aa1-94b7-990d712371c8', '2011-02-19T06:21:42Z', '1971-10-02T18:46:47Z', 'More Dead Than Alive', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', 'e76dab4a-4247-4da6-b218-aecfc99c5b86', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cba5b517-b8f9-470f-a232-84139008285a', '2014-02-19T03:07:14Z', '1982-08-22T16:04:25Z', 'Shanghai', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '91c3b10a-cca1-4005-8421-4d55000dd7dd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8548b4bc-3fa8-4282-988c-d14d9e82f8fb', '2001-11-29T09:51:58Z', '2024-06-04T05:08:34Z', 'Dakota', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c9d7ec43-0ab5-413f-bbce-d928b1ab653b', '2019-11-02T23:36:39Z', '1989-08-21T03:09:40Z', 'State and Main', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('aa4ec4dd-3e52-437f-86e8-a0847a0986a3', '1994-11-20T02:40:43Z', '1979-12-05T00:49:28Z', 'Legend of the Red Dragon (a.k.a. New Legend of Shaolin, The) (Hong Xi Guan: Zhi Shao Lin wu zu)', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('da05b3c0-1eac-4601-b20a-1266da64ab8f', '1993-07-30T08:33:21Z', '2012-03-07T19:09:55Z', 'Wallace & Gromit in The Curse of the Were-Rabbit', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '1079356c-58a7-41d1-8727-785a3487d17c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('82709ab9-3be0-463c-a9c2-74d4e346dd4f', '2015-11-24T20:12:11Z', '1984-11-17T15:53:20Z', 'Totally F***ed Up', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e5dc16bb-61cb-4ce3-91a6-3e4dd020a658', '1998-02-13T19:54:00Z', '2020-08-28T07:10:52Z', 'The Sword and the Rose', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fa320ae6-6d9f-4d33-b7ab-a45b1ca56fa9', '1990-10-03T11:31:13Z', '1986-10-05T13:50:40Z', 'Any Given Sunday', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b0e983a4-0fbc-4d9a-8010-9a385a3775e7', '2006-10-01T06:51:11Z', '1973-12-13T23:56:12Z', 'Major League II', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1d87e5b4-b59c-459f-83a9-c7bd86dd2dfc', '1985-03-20T03:36:40Z', '1988-03-25T00:12:25Z', 'Congress, The', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0c1bc298-bd61-452d-9c02-c84dac59b196', '1986-08-19T22:51:53Z', '1986-07-21T10:47:18Z', 'Celeste and Jesse Forever (Celeste & Jesse Forever)', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fd11c636-70d2-4b8e-b78d-1e0d092e2657', '1992-01-27T14:00:20Z', '1978-04-11T20:47:44Z', 'Ciao, Professore! (Io speriamo che me la cavo)', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2a4c62ee-a4d9-4ba2-99c4-1ca699285b11', '1978-06-12T14:28:11Z', '2014-10-29T21:14:47Z', 'Batman: Mystery of the Batwoman', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9fc2822f-b963-4e04-b97f-5aeadf77cb53', '2010-03-28T01:48:01Z', '1997-11-03T07:26:39Z', 'Babylon 5: A Call to Arms', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d0fe6a64-42c3-481e-9152-2811d192d34b', '1996-07-08T22:14:00Z', '2005-01-13T01:52:41Z', 'Austin Powers in Goldmember', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8d7687a4-daa0-4ba0-bc89-1071375ef3d7', '1973-07-14T06:45:36Z', '1980-05-18T16:28:45Z', 'Horrors of Spider Island (Ein Toter Hing im Netz)', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3e0910bd-8a76-4d90-a064-ae208de880a5', '1979-01-04T05:41:20Z', '1984-12-25T04:45:24Z', 'Babymakers, The', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c3dfcea4-4d61-477e-b44e-c0f2759bef10', '2016-04-07T21:58:38Z', '1985-08-27T16:37:58Z', 'Lesson of the Evil (Aku no kyôten)', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('643a4d1b-6cce-4ca1-9228-92b18577fa1b', '2004-09-10T19:21:44Z', '2006-05-10T13:42:12Z', 'Zach Galifianakis: Live at the Purple Onion', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('38564cc2-a180-4387-b9c4-01a770e2fadb', '2007-07-05T12:23:57Z', '1985-01-20T08:58:48Z', 'The Floating Castle', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7c4e7a59-3ddc-4795-b852-a0947075e252', '2020-04-25T10:36:43Z', '1979-03-07T05:53:37Z', 'Djomeh', 'Fusce consequat. Nulla nisl. Nunc nisl.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4af1bdaf-47e7-4c47-b311-1e706cdeb519', '1976-10-18T21:59:41Z', '2015-11-26T05:58:31Z', 'The Living Idol', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c2975a01-19c6-4e2c-abc2-cad174a5082c', '1981-04-10T23:11:24Z', '1975-07-14T10:36:50Z', 'Grizzly Man', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c61c36dc-15d8-4605-bdf2-6445b143a728', '1983-10-08T11:43:14Z', '1983-10-16T22:15:42Z', 'Manta, Manta', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('adfc8016-209c-491a-a5af-c93184b4ff6b', '2000-09-10T18:22:22Z', '2023-08-10T21:27:28Z', 'Foreign Letters', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b03b4ca9-f4f1-4a0b-b5e8-7e61b46828cd', '1991-07-25T02:58:55Z', '2006-11-25T21:54:55Z', 'Superstar: The Karen Carpenter Story', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('41c4c059-d876-425b-8ad2-a5e8369a5ca7', '1975-12-07T20:03:31Z', '2013-09-06T07:01:01Z', 'Red Cliff (Chi bi)', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b552fd8e-592e-4ab7-8b15-8c82cf85ddf6', '2004-01-14T05:00:24Z', '1987-08-22T09:43:18Z', 'Kokowääh', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('059ab0ff-7e31-494a-8652-53f685d2be7c', '1973-08-03T00:36:41Z', '2009-04-06T16:44:41Z', 'Heart of a Dog (Sobachye serdtse)', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bf1b6e42-af72-4c5f-b4ed-764c08878615', '2006-01-13T17:03:49Z', '2015-08-28T14:33:20Z', 'Speed & Angels', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3589ec82-3cce-4c7e-af8d-276db0684d74', '2000-11-22T11:34:18Z', '2000-12-23T05:42:28Z', 'Revolt of the Zombies', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('519f98ba-5dee-44a1-9f0e-d20645d79f41', '1972-10-29T05:16:22Z', '1986-11-01T21:13:06Z', 'Vamp', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bde55796-907e-494f-877f-4e9160f9478d', '2001-10-13T16:46:37Z', '2005-11-04T21:54:56Z', 'Traitor', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('271537a7-93fc-4c34-93ff-fecee3b8b76f', '1980-07-22T16:07:47Z', '1974-11-19T07:10:58Z', 'Comme un chef', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('832b9e9c-99ed-4fbc-9904-daf55e2ee0d6', '2003-12-27T13:17:24Z', '2020-11-26T13:30:01Z', 'Body of Evidence', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9bf56f57-43ff-4548-bac6-deaf5d8d1cab', '2003-11-12T09:55:54Z', '1971-10-26T10:30:39Z', 'Score, The', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9dacc0c0-d040-470e-9fe1-e597af154289', '1982-06-13T03:33:40Z', '1997-05-03T01:43:01Z', 'Electroma', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('97137682-ed0b-499c-a9a2-1c801c5b83f8', '2017-03-25T08:52:45Z', '1997-12-08T11:34:46Z', 'Halfmoon (Paul Bowles - Halbmond)', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b161357d-fa70-4dd0-b4f2-fb30e81f45a5', '1977-11-25T14:01:22Z', '1998-06-08T02:01:31Z', 'French Twist (Gazon maudit)', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9ad542d1-6655-4200-86a8-914bbc6850e5', '1978-02-06T22:28:58Z', '2011-02-06T07:31:03Z', 'Deadly Blessing', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e8044d9f-a7df-44dc-87da-55207bc51dce', '1981-03-29T13:51:11Z', '2015-06-21T05:45:11Z', 'Acacia', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ecdce1ec-1079-47b0-be1b-820fb1c830a7', '1983-07-24T01:17:54Z', '2018-12-31T04:37:30Z', 'Julian Po', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2cd089ce-364d-4d60-8de7-029f27cf42d6', '1981-10-11T09:39:44Z', '1992-01-30T06:55:55Z', 'My Sucky Teen Romance', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a095c2ec-ffcd-4f8b-8fdc-c16b7d3caedd', '2015-11-20T15:46:37Z', '2015-04-24T17:36:19Z', 'Cosmic Monster, The', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7fadbe59-b998-43b1-a492-9d47bcb23026', '1989-03-27T14:49:25Z', '2024-05-18T06:15:49Z', 'Memoirs of an Invisible Man', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '96aa6cdd-8eba-430c-856e-49deef3a22ad', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d92f42ae-a2b6-47c2-9fed-033ed51e4b5f', '1983-03-26T15:27:22Z', '1994-08-05T10:01:42Z', 'Killing Kasztner', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e7776c05-e820-4e3a-a141-fccc15458aeb', '1982-04-14T01:13:48Z', '2008-12-18T18:59:09Z', 'Down Twisted', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8ac1b49c-a44f-4c96-a689-d16369f3c069', '2021-07-12T13:55:46Z', '1985-09-11T06:14:19Z', 'Babylon 5: Thirdspace', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dde5935e-3608-492e-89af-d5fd14b0076c', '2014-06-01T01:24:20Z', '2002-01-31T19:26:49Z', 'Serpico', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('90be7ef6-e897-4732-8c61-5073327f452f', '1981-04-21T17:51:17Z', '1980-08-23T19:53:16Z', 'Leningrad Cowboys Go America', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '5fb87f4e-7997-45e8-9e2e-4cef322c99ac', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('871785b4-95b4-4ddc-8685-fb5b41c918ac', '2004-11-17T04:41:41Z', '2012-10-03T13:54:23Z', 'Robin and Marian', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '91c3b10a-cca1-4005-8421-4d55000dd7dd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5229ea9a-72db-4426-a3ed-0243cbe9019c', '2017-01-20T00:12:54Z', '1997-01-25T17:30:31Z', 'Mighty Joe Young', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ef07d2fe-9b40-46ad-bd3e-acc5905dbb1e', '1991-12-02T00:44:22Z', '1990-06-10T22:47:12Z', 'Where Is the Friend''s Home? (Where Is My Friend''s House?) (Khane-ye doust kodjast?)', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2c60e94d-b555-4034-ae14-52698143fcfa', '2000-12-02T01:07:47Z', '1970-11-21T21:28:46Z', 'Kiss Me, Stupid', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5902c49b-891c-4857-acc8-6f844329c6ad', '2021-07-19T05:30:10Z', '1988-02-08T23:02:52Z', 'White Mountains (Belyie gory)', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('79fedd08-08b9-43e1-8696-c73dbc0a2589', '2000-11-12T17:14:00Z', '1999-04-22T09:34:51Z', 'Bad Timing: A Sensual Obsession', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('52a5674a-da91-42ce-8824-272fe53b4428', '1989-07-12T07:27:24Z', '1995-03-01T08:19:14Z', 'Lad: A Dog', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('61aa3ade-acc8-42b3-98d6-5a19985cb3a4', '1971-03-21T18:04:12Z', '1997-01-12T01:48:37Z', 'Blood Wedding (Bodas de sangre)', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c5346736-2e65-48d1-bf1b-7fb618cd2bf3', '1975-12-24T13:06:06Z', '2013-07-15T23:30:32Z', 'Lords of Salem, The', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('02c4b34d-dd80-479c-bc0c-b0883d86f92d', '1973-03-19T09:17:09Z', '2010-10-25T13:35:46Z', 'Chasing Mavericks', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '6ebaef59-ac50-4b95-9c4e-8b356d0c5ff0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cc0454d9-1110-447a-bebb-7c296f9d088f', '1987-12-10T09:34:34Z', '2002-07-08T00:18:00Z', 'The Visitor', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('20573860-3823-486e-849b-685b38b7410f', '2011-11-09T14:56:32Z', '2015-12-06T08:51:53Z', 'Broadway Serenade', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('37a7da08-da46-4860-bbfb-c2eeb703a2a0', '1991-03-02T19:16:01Z', '2015-06-17T01:29:18Z', 'Lucía, Lucía (Hija del caníbal, La)', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2f2963cc-020b-4a83-8fa4-5e2199b7e378', '2000-05-19T01:44:37Z', '2003-10-02T18:36:59Z', 'Girl of Your Dreams, The (Niña de tus ojos, La)', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7719f421-f094-4280-a427-d3c6a73c4dec', '2015-07-04T00:23:46Z', '1970-09-26T04:49:04Z', 'Quatre garçons pleins d''avenir', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8765e3c2-ac0e-4edb-b31a-4c51bad60b66', '2006-02-28T13:40:19Z', '2002-02-08T02:35:16Z', 'Street Mobster (a.k.a. Modern Yakuza: Outlaw Killer) (Gendai yakuza: hito-kiri yota)', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e0a0a9ff-3010-40ff-b8f2-3c0d8f2d8da6', '2016-06-10T08:46:46Z', '1986-10-22T00:17:17Z', 'Hunk', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4e0c3513-62c5-4ea6-98c8-650b70deb729', '2019-09-08T09:47:05Z', '2013-06-17T07:17:13Z', 'Excision', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7da11f46-e842-4bcd-9ee5-f36a52404726', '2005-07-01T22:27:28Z', '2003-09-15T21:58:40Z', 'The Big Sleep', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d2ed67a8-3af4-40a5-813a-664983cc79f3', '1976-04-02T15:19:00Z', '2000-08-02T15:24:48Z', 'From Time to Time', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('75f7d702-016d-4503-bfe8-cac3cbfdffca', '1992-08-03T03:04:57Z', '1992-01-31T16:17:22Z', 'Berlin Is in Germany', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3d167e26-0e22-4c66-a47b-54624a47e39a', '1978-10-28T17:11:54Z', '1984-01-27T09:39:36Z', 'Mais qui a tué Pamela Rose?', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9e805888-f9d3-4ce4-949e-26c830b5c359', '1992-10-09T22:48:22Z', '2013-09-06T07:20:40Z', 'Boys'' Night Out', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '9047ea73-7b72-4834-8811-4d820a9b8f48', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('add63af9-ea55-4c34-990b-8c6167c97aa9', '1983-01-15T22:07:33Z', '1998-01-25T20:22:02Z', 'Wonderful Crook, The (Pas si méchant que ça)', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('96dc73ca-9cab-4a92-84cd-946dea394223', '1984-05-15T01:27:26Z', '2022-04-17T10:17:51Z', 'Boys'' Night Out', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('503cceeb-5697-4b35-a8b2-52414fe5438d', '2009-01-24T10:48:00Z', '1985-11-12T23:38:38Z', 'Louis Theroux: The Most Hated Family in America in Crisis', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f37dd3e0-f4e0-446a-866a-8262b0bac9a9', '2022-03-10T19:50:48Z', '1989-12-04T21:35:43Z', 'Twelfth Night', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a6e96646-a8e7-455a-9056-c826f9278d66', '1985-08-24T12:41:28Z', '1985-12-17T07:17:21Z', 'Holding, The', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('74b2d58a-e8c3-483a-bc1c-e07581a94154', '2004-12-30T19:57:44Z', '1978-01-27T16:42:53Z', 'Consuming Kids: The Commercialization of Childhood', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('abd48f36-bdab-428e-b76d-3b23ba8c0250', '2014-07-06T23:59:40Z', '2022-11-15T03:09:27Z', 'Hole in My Heart, A (Hål i mitt hjärta, Ett)', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e9f052d6-23ff-4110-91fa-3f83630451f5', '1989-06-23T23:56:49Z', '1975-06-02T01:58:15Z', 'Endless Love', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '9e93b8af-e534-4e45-8910-0dc6c74ab892', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bd6e1501-04e1-42b8-bd0d-8e1343140d83', '2019-08-12T22:53:52Z', '1971-02-28T08:37:52Z', 'Time of Eve (Eve no jikan)', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('29bbb0f5-13ae-4fd7-bb84-ca3fc360921b', '1989-03-17T16:01:37Z', '2007-01-29T21:57:06Z', 'Reckoning, The', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e5720075-6cc9-4166-89a2-8b3c36dba22f', '2004-11-26T01:54:54Z', '2009-07-14T20:22:11Z', 'Something Real and Good', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d51fafde-aa19-4098-b8db-a3e708889b43', '1972-09-22T07:11:43Z', '2016-12-16T18:35:52Z', 'Arrowsmith', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09387e28-bf95-457f-ae3d-be2e0f1f1365', '1978-12-12T23:34:25Z', '1981-10-03T18:32:24Z', 'Scorpion King 2: Rise of a Warrior, The', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '9047ea73-7b72-4834-8811-4d820a9b8f48', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c8c85a05-ed18-47a6-9859-a7474e44926d', '2019-06-11T18:03:33Z', '1975-05-18T00:50:59Z', 'Ordinary People', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('43b2b46c-d7a4-4c5c-8a5e-383cad0fe334', '1972-01-20T03:15:59Z', '2015-07-08T13:15:58Z', 'Walking Dead, The', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('77e4d7df-ab4c-4df2-8ea8-11b8ff25276a', '1999-06-14T11:42:27Z', '2003-10-08T20:26:10Z', 'Brooklyn Rules', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('02f2b206-9ee6-4ddb-9c38-57915be4e011', '1994-03-18T17:56:17Z', '2015-12-19T03:34:09Z', 'No Blood Relation (Stepchild, The) (Nasanunaka)', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('deba9ec1-05ef-48f1-8f6f-450e62c669e5', '2009-09-13T17:03:33Z', '2009-10-13T23:29:54Z', 'Satan''s Brew (Satansbraten)', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6dc44164-db32-4e7d-9510-5cf1f2009864', '1997-07-04T14:39:30Z', '2005-08-08T15:56:14Z', 'Mist, The', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0aaea6e8-b682-4819-aaaa-81461ca6feeb', '2015-09-25T12:27:03Z', '2001-03-15T07:17:41Z', 'Pitfall', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2857bd0d-4ac2-4a52-aa0c-3e4af8e9dd13', '1999-05-14T06:34:01Z', '2004-07-11T06:57:27Z', 'Swedish Love Story, A (Kärlekshistoria, En)', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b2592977-fff8-4826-bca6-6e112c66799f', '2008-08-17T07:23:22Z', '1988-10-04T14:45:47Z', 'Cherry', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', 'e76dab4a-4247-4da6-b218-aecfc99c5b86', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8efd3dfe-f84e-4fe7-8f95-5eb22dc0502d', '1995-03-02T16:13:00Z', '1981-06-19T05:19:52Z', 'Solo Sunny', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('95b6b740-7789-4f57-a52c-13071f6db75e', '1972-05-20T17:22:30Z', '2000-01-07T16:00:43Z', 'Manolito Four Eyes', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('15d7c32d-9b48-4fb9-ae81-626727008c81', '2019-03-29T18:47:10Z', '1981-03-18T06:39:40Z', 'Doors, The', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f6853f07-3df1-4ecc-90c6-84a51a4c1f5c', '1997-11-21T06:39:47Z', '2004-03-05T07:13:13Z', 'This Property is Condemned', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fbcde2d5-7242-4a6f-a488-48c164f2a0bf', '2010-04-17T21:58:14Z', '1991-03-23T22:05:35Z', 'Tom Sawyer', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1db50d74-3c61-4f20-b8d0-d0648bcd9956', '1985-04-06T01:07:22Z', '1981-01-12T13:17:20Z', 'Pretty Bird', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bd5ba2b7-d355-431b-aed3-de81a30fc856', '2000-07-17T11:11:34Z', '2010-12-21T22:21:15Z', 'America, America', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '6311e405-c4c8-48ec-bf7b-64f99efe9606', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('959648d6-43b2-4c02-bf65-0a9552a2d888', '1991-12-22T01:20:26Z', '2006-12-01T23:38:44Z', 'Secret Life of Girls, The', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cde92c32-8561-460e-b38e-ffd3a7951576', '1984-04-24T20:12:53Z', '1986-12-11T19:43:39Z', 'Sea Hawk, The', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7e84b3e2-b395-4b07-9e9c-cf812370025a', '1979-07-20T17:34:17Z', '1977-06-17T05:09:10Z', 'Ego', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8f0b2e15-a413-4c95-b2ab-c448df4b49dc', '1974-02-07T05:37:06Z', '2001-03-30T20:47:23Z', 'My Sassy Girl (Yeopgijeogin geunyeo)', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ec2751d4-a659-40d7-afbf-6513b8cb6715', '2006-01-05T08:06:17Z', '2005-09-28T06:11:53Z', 'Jason Goes to Hell: The Final Friday', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dba6d262-bc48-405a-a15d-6e3b38e94614', '2014-07-23T01:15:44Z', '1984-12-23T09:37:43Z', 'Miss Julie', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e254f368-b6e6-4b9c-a478-8ff0cb52f23c', '1980-01-13T23:15:04Z', '2005-01-07T02:58:39Z', 'Forest for the Trees, The (Der Wald vor lauter Bäumen)', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7c03ddea-2a76-4b71-ad64-b93ab087c9d2', '1991-05-14T02:45:58Z', '1971-12-08T06:10:02Z', 'National Lampoon''s Van Wilder: The Rise of Taj', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bd4305d6-a35c-4c4e-8be3-229da5ffb4eb', '2012-05-14T02:58:04Z', '2019-06-25T09:30:21Z', 'Trash', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('abac0758-c4da-4be1-b3e1-3540b5c519f7', '1987-04-12T11:50:02Z', '1996-05-13T15:38:00Z', 'Bartok the Magnificent', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8bbeb374-7f96-4787-83bc-5df5aea3beab', '1986-05-27T05:02:35Z', '2012-10-30T11:05:02Z', 'Quebrando o Tabu', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4236e62e-bace-497c-b6fc-012b8855c54e', '1998-01-14T05:13:52Z', '2017-02-08T04:58:37Z', 'Waltzes from Vienna', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '9e93b8af-e534-4e45-8910-0dc6c74ab892', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1230728d-9a3e-417c-be94-8fb4024aa469', '1986-02-03T03:31:31Z', '2008-09-29T23:45:49Z', 'Begotten', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('efff21fd-45de-423f-af6b-42201dee8eab', '2014-09-17T17:45:19Z', '1992-06-26T13:06:34Z', 'Ghost Machine', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09300d2a-83ec-48ec-8bbf-e94641623018', '1976-01-04T15:35:49Z', '1982-06-10T17:29:40Z', 'Road House', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cf25dcf5-4ab5-4b18-a1d7-a5771dfdf854', '2006-01-18T15:49:32Z', '2020-05-15T02:51:51Z', 'While You Were Sleeping', 'In congue. Etiam justo. Etiam pretium iaculis justo.', 'd720890a-9417-478c-8114-dcd2242916ca', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('93625f65-b439-4855-a909-7b1ca8f88178', '1985-09-03T08:46:23Z', '1991-06-02T03:23:33Z', 'Breathless', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('86e76155-25ca-47e1-bc4c-9db9eb9b7179', '2022-05-08T00:45:54Z', '2011-06-05T03:24:11Z', 'Letter from Siberia', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e7dac5d1-1b70-4c91-8cc4-cf698c85197b', '1990-07-17T09:58:14Z', '1989-05-26T14:13:52Z', 'Clubland (a.k.a. Introducing the Dwights)', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('07bf33d8-ef5c-4d00-894a-169b2bc1d4e4', '1990-10-18T22:21:06Z', '2008-05-01T13:18:51Z', 'Stir of Echoes', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('40546949-1e0e-4a21-8813-49c1597b4180', '1985-12-22T21:04:30Z', '2017-05-29T21:14:14Z', 'Grandfather, The (Abuelo, El)', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('33d218de-9ef2-4772-beff-b08116ba3af3', '2010-02-01T19:42:13Z', '2023-06-13T00:59:49Z', 'Fearful Symmetry: The Making of ''To Kill a Mockingbird''', 'Fusce consequat. Nulla nisl. Nunc nisl.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('69ddbad3-cfeb-4742-870d-6503aa6273e8', '2020-06-13T15:27:48Z', '2008-09-04T15:11:03Z', 'The Seven Males', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3855f697-af29-4370-aef6-bc9a259dd3c4', '2019-08-24T20:20:38Z', '2018-01-11T16:52:47Z', 'For Heaven''s Sake', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('42ce42aa-57db-4518-bd3f-46e65f7b4000', '2000-01-29T16:57:00Z', '1970-09-11T10:06:51Z', 'Eloise at Christmastime', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('45639ca5-47a3-4689-bf2e-a7d188ec994f', '1994-02-20T05:26:52Z', '1995-11-13T04:00:06Z', 'Def-Con 4', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e365c104-c432-4d1f-88bb-9ac091af5338', '2020-07-20T20:47:35Z', '1980-07-28T13:58:44Z', 'Jack the Giant Slayer', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '96aa6cdd-8eba-430c-856e-49deef3a22ad', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('17c1301a-3328-48d3-80ac-50a32603da8f', '2009-02-20T03:31:09Z', '1990-03-17T05:57:32Z', 'Internet''s Own Boy: The Story of Aaron Swartz, The', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9d8ea495-09df-4a49-a41f-ee804d60f91b', '1974-05-22T20:24:57Z', '2003-03-06T07:05:48Z', 'Crime of Monsieur Lange, The (Le crime de Monsieur Lange)', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a624b701-da38-4809-879d-731b119737d3', '1979-03-28T06:02:52Z', '1984-01-19T05:06:19Z', 'Texas', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c9c8b242-f620-44b7-9dd1-b46e6e81dbe0', '2001-02-16T02:00:24Z', '2020-04-19T09:51:11Z', 'Veronica Mars', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1fdd60c9-78f9-4183-af7e-2c4a90e71715', '1977-06-09T01:19:26Z', '1994-01-22T04:10:18Z', 'Lila Says (Lila dit ça)', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('de196f40-8799-465a-8121-fd4319ede90e', '2017-03-11T04:59:47Z', '2016-04-02T02:08:00Z', 'Amazon Women on the Moon', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fe63eec2-ac1a-4e6c-b437-d0668dad6c66', '1979-08-09T05:06:36Z', '1993-03-19T01:27:12Z', 'Healing', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e0cf1fd4-c5d8-4261-b789-f73ff54eba20', '2023-03-09T23:38:03Z', '2003-06-30T11:08:09Z', 'Asterix in America (a.k.a Asterix Conquers America) (Astérix et les Indiens)', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('40aa752b-fe6e-40c7-bdc6-641361156a95', '1973-07-01T08:43:43Z', '1981-06-18T15:07:44Z', 'And Your Mother Too (Y tu mamá también)', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '2927d4f1-eb2c-43d9-9cc2-9ecf61e70019', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a5f74378-9069-41f4-872c-403e9e548ff4', '1977-06-18T02:43:42Z', '2007-08-10T00:30:31Z', 'Doughboys', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c38069f6-e0e5-43f5-a4a0-2cb4254c563a', '2011-12-31T22:45:07Z', '1973-11-09T21:11:06Z', 'Fool for Love', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e1ee5762-e871-49ce-b8f9-4869cabaf509', '1970-10-28T12:00:13Z', '2007-11-22T03:53:48Z', 'Always Outnumbered', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3712efd5-8318-4128-8bde-4ee4ddad222f', '1990-10-30T04:30:40Z', '1996-02-13T00:59:31Z', 'Spiders Part 1: The Golden Lake, The (Die Spinnen, 1. Teil: Der Goldene See)', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0594d6ab-a630-4f81-9390-9dc9b083df4d', '1983-07-05T22:01:29Z', '1993-09-19T10:20:32Z', 'Morgan Pålsson - världsreporter', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '29d88ab2-f364-420d-ae6c-bb0d99277fb0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8be0c66b-224a-4a45-8a3e-8b831cf00f6d', '1998-09-25T15:14:29Z', '2023-01-25T04:48:30Z', 'War Made Easy: How Presidents & Pundits Keep Spinning Us to Death', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '6311e405-c4c8-48ec-bf7b-64f99efe9606', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0fbe93e0-f410-4edd-935f-15720b5144dd', '2014-10-24T16:00:41Z', '1974-07-25T11:31:34Z', 'Wind', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('958cf8c6-2b0e-4e68-853e-e1af86683839', '1997-03-26T05:08:58Z', '2001-12-31T23:32:32Z', 'Jump Tomorrow', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '55169d49-d084-4cb2-a119-edb0246394dc', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('727feed6-bebf-46d8-bbfa-62887a2d0c78', '2023-11-30T19:52:35Z', '2001-02-06T07:37:00Z', 'Interkosmos', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8a6eaa5d-4857-49d4-8d52-32a355ea38b4', '1977-12-02T07:57:12Z', '1990-08-04T08:22:27Z', 'Jo Jo Dancer, Your Life is Calling', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3333d0a5-f7ab-4bdc-83af-8cf773d46f1f', '1997-02-04T13:35:59Z', '1981-01-03T22:33:10Z', 'Buried Alive', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f85679bf-5b72-4f78-bdfb-1d06b72254e9', '2003-02-09T10:50:12Z', '2007-08-12T20:34:34Z', 'Meltdown: Days of Destruction', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5d8ea6cb-043a-4e61-9953-6e95bc91e32a', '2023-10-24T15:58:37Z', '1991-09-29T19:49:55Z', 'Batman & Robin', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('33866a68-cc21-405f-afd2-56f30003d847', '1972-04-26T09:37:13Z', '2017-11-22T12:09:06Z', 'Abbott and Costello in Hollywood', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cfb17315-1de2-46a6-9388-46160b12295c', '2010-12-13T22:41:26Z', '2015-04-18T16:56:14Z', 'Hustlers, The (Veijarit)', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5b971468-45a7-4fe3-9dbe-97f5eb9cd535', '1985-06-09T13:49:48Z', '2000-05-17T04:14:38Z', 'Straight Time', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ff3c015b-d435-4421-8edf-8c8eaa83f766', '2002-06-06T10:14:31Z', '1998-09-20T16:16:42Z', 'Town & Country', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7d914732-1ca4-424b-900d-8a35a1430c43', '2001-08-02T02:20:41Z', '2018-08-02T09:02:01Z', 'You''re Missing the Point', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('483afa6d-6601-43f7-916d-bd9ad4553ca8', '1989-08-10T11:51:57Z', '1999-09-29T00:08:31Z', 'Statue of Liberty, The', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fe76e1c9-b074-478b-ae6f-dda749860d10', '2000-01-23T23:04:07Z', '2022-09-19T09:47:53Z', 'White Hunter, Black Heart', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cf391af4-fa22-49f5-9768-3b38e37838e2', '1972-04-03T04:15:53Z', '1996-09-07T01:04:17Z', 'The Hunchback of Paris', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '5fb87f4e-7997-45e8-9e2e-4cef322c99ac', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('66680315-24bf-4f5b-b00e-cb7f166245de', '1997-08-15T01:38:51Z', '1988-08-18T21:22:09Z', 'The Conrad Boys', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0140f40e-7dbb-4d00-84c7-7b7f7a8e39db', '1971-06-25T08:52:18Z', '1998-11-03T20:29:24Z', 'Schooled: The Price of College Sports ', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('51392208-f0c7-4f62-a314-9f6b10f82d27', '1980-02-12T21:48:33Z', '2015-12-03T18:55:21Z', 'Devil to Pay!, The', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('55d8e3b4-dbc7-4ffd-be27-721a55d16594', '1972-05-31T04:03:24Z', '1973-03-02T06:21:13Z', 'American Pie', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c412f9be-f753-41bd-86f3-caa5ce226974', '1991-02-10T12:35:38Z', '1993-05-23T12:03:55Z', 'Sydney White', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3286e521-2de5-440a-8595-575a04d63488', '1988-07-11T06:19:15Z', '2003-06-30T00:06:17Z', 'Counterfeiters, The (Le cave se rebiffe)', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('49d0d704-7ab9-448b-bc91-9c2ee06683f0', '1973-01-14T18:17:10Z', '1993-01-18T09:15:28Z', 'Las Vegas Story, The', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6368fb87-3f57-45c7-8f53-d82c6a54a4e8', '2013-05-22T17:08:25Z', '2000-03-06T01:34:36Z', 'Lebanon, Pa.', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('43aa5a96-7027-41b2-96d9-e615910e47a6', '2008-02-03T17:11:54Z', '2005-02-13T13:46:04Z', 'My Sassy Girl (Yeopgijeogin geunyeo)', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b4603349-8770-4d4d-949e-0bf2cadb571a', '2014-03-24T21:41:23Z', '2005-11-18T13:13:12Z', 'Judge Priest', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4a044fd8-e102-4de2-9bf1-9d5b86557b9c', '1992-01-09T05:35:20Z', '1996-07-31T07:13:31Z', 'Last Seven, The', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9b31a643-8469-4599-a0eb-41a1ff9da2e8', '2020-12-21T06:11:01Z', '2019-06-28T17:21:11Z', 'Underground Comedy Movie, The', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3cd4f8c1-2d32-4f94-8d48-086251580e08', '2016-11-07T02:18:26Z', '2021-06-28T07:12:34Z', 'Princess', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('54f40f4a-a32f-4210-9442-dd76feac311f', '2010-03-22T04:57:48Z', '2023-07-25T01:20:36Z', 'Spring Breakdown', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('85a351fe-5a50-4abd-b735-c6d76ed7bce0', '2019-03-16T15:13:07Z', '1976-09-12T17:20:02Z', 'Gore Gore Girls, The', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ed9c1916-4124-47cb-b18f-9bf95a059fad', '2003-04-10T00:21:47Z', '1993-04-23T04:20:24Z', 'Mystery on Monster Island', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d66015be-4e50-4034-908d-11d31bb5414f', '2015-04-24T23:52:44Z', '1989-10-05T13:01:04Z', 'Longest Yard, The', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2ba14620-cdb1-4c0d-8dba-cdda3459166e', '2019-11-08T19:40:07Z', '1971-07-04T01:37:39Z', 'All Cheerleaders Die', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('303f2c9e-e324-45a2-a3be-3a1ce2465289', '1981-08-03T14:45:12Z', '2000-06-10T20:45:25Z', 'Winter Passing', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('27716a3b-d106-4695-9454-64794ed247e9', '1973-07-05T05:40:38Z', '1983-04-08T23:27:49Z', 'Adventures of Pinocchio, The', 'Fusce consequat. Nulla nisl. Nunc nisl.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9629a03a-d2b1-40b8-bd4a-8f6f10d9c3a2', '1995-06-20T04:37:52Z', '1998-07-29T23:36:12Z', 'Game of Chance (Onnenpeli)', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c9be691a-fa0a-4054-91dc-f9c228a3c929', '1970-05-05T12:42:49Z', '2006-01-03T19:57:53Z', 'Divine Secrets of the Ya-Ya Sisterhood', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('629f359d-b980-4793-9d07-99794fe3c1c8', '1995-01-02T23:54:43Z', '2022-10-09T02:39:21Z', 'Freshman, The', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1050037d-f114-4fff-9c3b-a7edfe102a56', '2004-02-08T09:52:13Z', '1989-08-12T01:10:57Z', 'Houseguest', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', 'e76dab4a-4247-4da6-b218-aecfc99c5b86', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2fb7f95c-7556-4ae4-8ea9-014fc7fbd594', '1979-07-27T04:16:19Z', '1989-07-02T20:32:06Z', 'Bank Job, The', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f4deefea-4473-47b2-8fa5-2251fdde5b89', '1994-03-27T08:14:36Z', '1973-01-03T12:15:37Z', 'Reclaim Your Brain (Free Rainer)', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dafdcb78-fd3d-4d00-8494-e083eae393f3', '1973-03-01T02:36:39Z', '2001-11-21T07:35:12Z', 'It''s Love I''m After', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4e36941b-fb2b-43c5-bb34-e092f3b81817', '2020-09-05T05:59:41Z', '1986-05-21T03:42:11Z', 'Bar at the Victoria Station, A (Bar na Victorii)', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('24b3f645-75a4-4bc9-a461-0bae97faafe7', '1972-09-11T02:23:51Z', '2003-03-04T21:27:25Z', 'Break-in', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a750fefe-c990-474d-9a14-3757ed59d497', '1979-04-11T12:50:03Z', '1996-07-20T20:56:36Z', 'Nasty Girl, The (schreckliche Mädchen, Das)', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1a26ec01-2323-4774-9ec7-af1617ec6672', '2005-12-12T12:39:48Z', '1998-02-10T23:40:46Z', 'Following', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('efe9fd21-deab-4356-adad-c369d957c5db', '1986-01-05T23:48:03Z', '1975-10-08T13:34:43Z', '3some (Castillos de cartón)', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8006e24e-47ef-4515-b82f-3eaa8845b0b9', '1982-02-01T20:28:05Z', '1983-04-18T16:19:40Z', 'Perestroika', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ab475fb4-b7ee-459a-a388-b5eb8be65577', '1997-09-13T17:04:27Z', '1996-07-19T10:25:14Z', 'Adam & Paul', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('96bda1c3-a543-4dac-9a5d-62f2d49f54f7', '1980-09-30T01:38:09Z', '1998-07-12T11:06:12Z', 'Memory Keeper''s Daughter, The', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d475cd95-787e-44b9-a185-c0d2cc31e89b', '1997-10-31T20:01:49Z', '1972-10-18T02:25:36Z', 'The Trap', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('62d0b842-9b1f-4d22-9347-9c0c8f1a05d7', '2021-11-30T19:30:38Z', '1998-10-24T01:44:17Z', 'Seven Days in May', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', 'a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2acfb975-838c-4f84-8f26-d2cb98315554', '2005-10-31T03:27:37Z', '2020-04-30T07:58:13Z', 'Jesse Stone: Thin Ice', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ed1685ed-f79f-4f23-b53e-1d5b2a403435', '2008-01-02T17:30:35Z', '2006-04-20T00:21:58Z', 'Frailty', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('83606838-d864-408d-87b2-3cf4af6b6f37', '1974-07-07T05:54:42Z', '2013-08-05T06:59:14Z', 'Puss in Boots (Nagagutsu o haita neko)', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('85c804e1-2452-4099-a3bf-2cdb759f1047', '1992-02-15T22:29:53Z', '1981-01-02T01:52:54Z', 'How to Make Love to a Woman', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8cf287b4-3f6c-4011-83d7-6a5596c53b03', '1979-03-21T17:12:04Z', '1980-11-22T05:49:07Z', 'God Is the Bigger Elvis', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('193b8b9e-6252-4d23-8184-d2dcce5b2c14', '1979-11-15T04:23:01Z', '2009-02-18T20:10:32Z', 'The Land Before Time XI: Invasion of the Tinysauruses', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('51f4df29-a54d-46c0-8baa-e28fb6003a46', '2022-02-24T02:18:44Z', '1994-10-26T04:14:14Z', 'Masked & Anonymous', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('65e0dc65-ec49-4ccd-a78c-7fab95e00846', '1976-04-09T16:36:22Z', '2018-06-15T18:42:01Z', 'Hot Rods to Hell', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9160506c-9dc7-4502-b970-74435bbd2106', '2007-04-10T12:35:22Z', '1980-11-29T11:24:31Z', 'Butcher Boys (Bone Boys)', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9683188b-9ea7-42ca-9f2d-b1969e5a4bb4', '1984-07-21T00:05:47Z', '1975-03-31T21:18:46Z', 'Ethan Mao', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ba6305d2-53ce-4fdc-936c-6909cb3fa462', '2021-04-11T03:15:05Z', '1975-09-14T11:35:31Z', 'Repo Man', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9c6c976b-7b9a-4c79-827f-ac1e4257724d', '2006-12-30T20:28:49Z', '1992-10-23T14:45:46Z', 'My Son John', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('282b877e-acfc-42af-a592-41c7c7e7f3bf', '2012-11-01T01:15:08Z', '1997-08-24T03:54:19Z', 'Role/Play', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6e908f32-9714-40ba-9328-2bfb87054b98', '2011-08-02T00:43:38Z', '1991-03-17T22:40:29Z', 'Things Change', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('10607bd4-85c5-49d3-8526-8d5baa4ad210', '1979-04-23T06:34:46Z', '1990-02-25T15:01:03Z', 'Coquette', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('35156b5a-8f58-4868-b035-532acddf6528', '2021-06-06T21:23:21Z', '2022-07-28T22:35:03Z', 'God Save My Shoes', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d87c4f7a-e02f-492c-92bc-3f295fda2cb2', '1977-07-25T12:15:41Z', '2021-06-20T07:49:23Z', 'Hamlet', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e454f720-81c3-42b4-8b38-00c6b52666c3', '1993-06-09T18:38:15Z', '2014-07-31T19:42:13Z', 'Raising Helen', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4656a6c7-6018-4f8c-b8dd-04874adc1844', '2012-06-17T08:59:32Z', '2003-05-27T17:30:48Z', 'Better Life, A', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2b778986-cf61-462a-aedf-84d3c6b6f77a', '1979-04-08T18:39:43Z', '2009-09-11T04:29:50Z', 'Red Tent, The (Krasnaya palatka)', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '91c3b10a-cca1-4005-8421-4d55000dd7dd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2713d8f7-0e20-4573-bc84-7e4b518f208b', '1980-04-14T02:43:06Z', '1997-11-13T08:49:38Z', 'Oil, the Baby and the Transylvanians, The (Pruncul, petrolul si Ardelenii)', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ec129068-5df3-4c74-81d4-165ff11bbede', '2015-11-04T15:43:07Z', '2010-02-20T07:57:47Z', 'Dark Circles ', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('718bf20f-9f21-46a6-8e04-f7325fd01799', '1989-07-20T17:59:01Z', '1980-12-03T00:57:56Z', 'Bonheur, Le', 'Fusce consequat. Nulla nisl. Nunc nisl.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a8aeef16-6324-4a96-9d36-d752ee56a0a8', '1979-04-22T22:36:30Z', '1971-09-17T06:24:39Z', 'Groundstar Conspiracy, The', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('867b1447-3da0-4004-8908-37dcee4c02dd', '2020-04-25T11:34:31Z', '2012-10-02T19:02:11Z', 'Man with One Red Shoe, The', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('04277937-c7ab-4ee3-b7e4-8bbaf39861eb', '1994-06-01T13:52:59Z', '2017-01-17T21:10:16Z', 'I''ll Do Anything', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b7bae9f9-a175-4fe4-acff-35061837ecce', '2005-09-12T00:10:35Z', '1980-02-22T22:39:59Z', 'There''s a Girl in My Soup', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5b59d2a7-6f13-4a5f-9590-eb8f26a5ab8e', '1978-07-30T08:25:11Z', '2020-03-19T18:59:08Z', 'To Kill a Mockingbird', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('561301f6-57bd-4cb5-a691-ccef1a485a8a', '2010-02-07T00:36:09Z', '2008-05-24T16:35:16Z', 'The Wild World of Lydia Lunch', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('66a0852d-ef88-49a5-a985-144443abf409', '2021-09-18T11:37:21Z', '2000-08-07T10:53:29Z', 'Empire', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f1c20e1d-d7c7-45af-8bb2-883bed10f51c', '2002-04-24T07:03:23Z', '2023-03-24T17:55:24Z', 'City Zero', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('532e5a72-0eb4-4355-85f5-542af081c76e', '1982-08-14T04:17:35Z', '1989-03-22T05:38:35Z', 'The Cyclone', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3dd100d4-c78e-41dc-954a-3f28ada5d93f', '1994-12-15T00:07:21Z', '2017-05-18T14:28:01Z', 'Princess and the Pony', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bb4caa30-0e97-4af5-bdca-69fc8b9452d9', '1971-01-29T18:35:09Z', '1979-06-11T01:03:52Z', 'Rocky Horror Picture Show, The', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('41e5f4ce-fd86-4759-8bc3-7e03b9d372af', '1998-08-26T18:54:17Z', '2007-03-22T03:29:21Z', 'Miss Sadie Thompson', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b318735b-c26e-448e-a0eb-e1708d892a5e', '2016-03-01T20:08:13Z', '1998-07-15T17:59:44Z', 'Behind Enemy Lines: Colombia (Behind Enemy Lines 3: Ghost Watch)', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('806706ff-16df-4cb1-ba2a-ae0545868d65', '2021-04-12T19:02:43Z', '1977-02-07T10:06:50Z', 'Tickle in the Heart, A', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '6ebaef59-ac50-4b95-9c4e-8b356d0c5ff0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2af84417-0446-403f-8e40-0546ddab1a00', '1995-03-19T03:49:12Z', '1971-06-02T21:04:43Z', 'Vampires', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('81b089dc-6924-4e0b-97b1-18ed74f2ab28', '2023-01-02T04:02:00Z', '1974-05-28T11:00:37Z', 'Man of No Importance, A', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c662e3e1-4fa2-4354-8d27-d2d7017fa9c6', '2005-08-13T02:34:21Z', '1973-07-07T17:12:47Z', 'Fear', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4813395d-57a3-4796-85c9-1a3a4a78ea34', '2020-10-01T16:17:00Z', '2020-09-03T20:16:39Z', 'House of Wax', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e83a7386-4849-4a38-9dc8-c34582bd985b', '1984-03-15T21:31:00Z', '2001-01-10T22:05:25Z', 'Gracie''s Choice', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('86d0b786-2172-41ad-a4a7-5fca4ae1953d', '1997-01-09T17:02:19Z', '2006-10-31T09:20:07Z', 'Shadowboxer', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('226d2c0f-d08a-43a4-a818-264f03956a94', '1992-10-30T16:17:54Z', '2002-04-22T13:50:29Z', 'Adventures of Ford Fairlane, The', 'Fusce consequat. Nulla nisl. Nunc nisl.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('826e31ba-e0a3-4669-ba47-1a1ef5127a20', '1997-12-15T20:30:03Z', '2008-09-12T07:07:44Z', 'Pit and the Pendulum, The', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('23161d34-598b-428a-981a-fd68630479da', '2017-05-29T10:32:50Z', '1970-03-05T01:35:08Z', 'Fever Pitch', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fe13c648-698d-4462-950f-defcaa6084dd', '1996-07-01T00:16:23Z', '1990-09-28T22:43:19Z', 'Lady of Chance, A', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('94882cae-e67d-4114-8e69-c08343a118f2', '1988-05-07T10:00:52Z', '1994-02-04T17:41:50Z', 'Gentlemen Broncos', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('47eee850-5100-44cb-8ff4-078fe84c3a94', '1990-12-09T22:07:51Z', '2006-12-17T19:13:42Z', 'Buck Privates', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2eb6cccd-e13f-4498-87f5-cfdb4d2fd888', '2017-05-01T02:55:20Z', '1989-05-30T13:43:06Z', 'Prisoner of Zenda, The', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '7c9d39f6-8b24-4c69-bd73-acab3642f801', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5fbbce07-23bf-4b6b-9c02-89fa5c61d93f', '2024-04-03T22:35:26Z', '1972-12-18T21:09:24Z', 'Such Good Friends', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '2927d4f1-eb2c-43d9-9cc2-9ecf61e70019', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7ea135c8-a52d-4f0f-a4a9-aaed49cb6674', '2001-04-05T08:21:12Z', '1976-02-11T12:50:06Z', 'Little Women', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('94701cbe-b092-40b5-8c5f-c746a38e8263', '2001-08-18T04:28:22Z', '2017-04-19T06:00:17Z', 'Ten Minutes Older', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b1cf3ee6-c38c-428e-bd4a-90881e7b0f5f', '2006-10-04T01:10:20Z', '2021-10-29T12:30:28Z', 'Beauty and the Beast: The Enchanted Christmas', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '29d88ab2-f364-420d-ae6c-bb0d99277fb0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0451c332-3f47-4eb1-9d63-1c9a82558d9d', '2018-08-31T20:40:37Z', '2018-08-07T06:21:23Z', 'Sweethearts', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bd8a207b-4ee1-425d-aefc-5fba03d51e3f', '2009-06-09T13:24:22Z', '1995-11-30T03:38:00Z', 'Dreamer: Inspired by a True Story', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('aee638d6-b789-4181-b4dc-98f3cbdc5430', '2006-08-31T20:05:49Z', '1995-10-21T14:27:32Z', 'Spider', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('645f1dc6-6e25-4c90-87df-1d15e22833f6', '1971-10-13T10:16:49Z', '1984-10-23T04:05:20Z', 'Woo', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5e7cffe1-1262-4927-b21f-c5e78a501e21', '1972-10-08T16:26:34Z', '1986-08-18T10:47:52Z', 'Pompeii', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('903c5cec-24c8-45bd-862f-bef782aab8ce', '1977-07-21T03:44:14Z', '2009-01-04T07:17:22Z', 'One Potato, Two Potato', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b5cc378c-0c88-46cb-b588-621ad1e70c26', '1992-04-18T00:48:55Z', '2009-07-24T22:09:58Z', 'Taxi zum Klo', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('232a8da8-32f8-4ec3-8f49-2234f4d5ab25', '1998-09-26T11:21:17Z', '2004-06-16T20:08:38Z', 'Human Race, The', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('796f498d-4ae5-4072-a3ca-884d5f83b47c', '2005-09-13T02:13:51Z', '2013-11-03T00:28:19Z', 'Dreamer: Inspired by a True Story', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ea28856b-c6cd-491b-94e2-679c845f782e', '1977-08-18T19:03:19Z', '1991-12-29T16:28:42Z', 'Another Country', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '320384bb-f1b6-4dc3-adcb-b70c262e7dd6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('14d26462-5056-4f50-9b2d-8abe3776932c', '1976-01-02T09:36:50Z', '1982-11-09T13:39:55Z', 'The Legend of Mor''du', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('38666d74-c049-4a27-ad83-f3eaf72e9104', '1989-12-23T21:40:12Z', '1978-05-30T14:44:57Z', 'Two Little Boys', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('10d3259d-78bc-4d2e-986b-b0b82c4096e2', '2004-10-12T07:04:28Z', '2014-05-09T11:20:39Z', 'Strange Case of the End of Civilization as We Know It, The', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0cee1b12-11a2-4517-acb1-7f7089c92fb3', '1984-03-08T20:11:35Z', '1990-08-19T15:03:51Z', 'Dark Blue', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b2ffa183-96b1-4dc2-95af-4f703f5d773e', '1972-03-02T12:40:58Z', '2004-01-25T10:28:37Z', 'Amos & Andrew', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', 'a3c6bb59-bc38-4d85-82b2-c5407132ba75', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0aee9e45-ab1d-466e-b59e-44c8bc76d3f1', '1985-01-21T12:43:05Z', '1998-01-03T04:09:57Z', 'Eyes of the Mothman', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '96aa6cdd-8eba-430c-856e-49deef3a22ad', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('33b05098-dc69-467a-b0df-00a9959fc877', '2021-08-05T21:06:51Z', '2008-10-18T20:05:37Z', 'Losers, The', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', 'a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('322a089f-c504-4187-bbc8-2bd0e696fd69', '1983-01-04T23:07:59Z', '2007-05-03T02:30:15Z', 'Marci X', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '6311e405-c4c8-48ec-bf7b-64f99efe9606', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c830d7eb-f322-4dcb-9aaa-aeacf4149dc7', '1994-10-22T20:57:53Z', '1989-12-19T21:17:39Z', 'Gilles'' Wife (La femme de Gilles)', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0138a061-2e8b-429f-9c3d-1635d291031c', '2007-10-14T09:19:28Z', '1971-11-18T15:52:39Z', 'The Radio Pirates', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f1d760ef-9c6b-4713-b6c6-7bcbf9620363', '1988-02-24T23:24:22Z', '2001-10-21T21:46:11Z', 'Firaaq', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('32f5d9c0-9651-419f-8686-dcc50cad1f6a', '1979-02-15T01:23:30Z', '1999-11-21T22:39:05Z', 'State and Main', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1bf16b19-b2c4-47f4-a0ad-ed9c0d1f83b1', '1990-01-29T12:37:24Z', '2008-06-27T12:08:09Z', 'Certain Kind Of Death, A', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2ac3b3da-be3d-412e-b23a-29a45d5102aa', '1984-12-22T23:57:08Z', '2010-08-30T15:12:23Z', 'Home of Our Own, A', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f02deb9d-0400-48ae-87ec-384f2bb9c3fa', '2004-06-29T03:02:19Z', '1980-05-03T09:20:32Z', 'Still Life', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b82a858d-0efb-4673-89a4-a360b5a96ba6', '1999-09-12T11:33:22Z', '1976-05-04T05:27:30Z', 'The Boy Next Door', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('aa7e727e-f543-4986-aa9f-370b0bf77247', '1988-12-26T12:49:53Z', '2017-06-29T22:01:13Z', 'My Life Without Me', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '6ebaef59-ac50-4b95-9c4e-8b356d0c5ff0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('86780d95-85f2-47e6-9e5a-42cc84215d9e', '1985-02-21T20:45:09Z', '2024-03-11T23:27:47Z', 'Task, The', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b3b3760c-300f-406e-94f4-869f3f811393', '2013-11-01T13:54:14Z', '2005-06-04T22:37:28Z', 'Lights Out', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fbaa6e68-5120-4826-8dac-a154e1f886f3', '1982-10-25T15:15:52Z', '1970-09-21T21:54:15Z', 'Makai Tensho: Samurai Reincarnation (Makai tenshô)', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bd7e7efa-5068-4472-bdd7-3558ecee2df7', '1976-07-30T15:43:27Z', '1985-04-14T15:59:12Z', 'North Country', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b3a433ed-9b3f-4379-b23a-59f0be87eec2', '1978-02-22T07:59:55Z', '1988-02-19T00:49:43Z', 'My Daughter, the Socialist (I kori mou, i sosialistria)', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '96aa6cdd-8eba-430c-856e-49deef3a22ad', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('134c87a0-6ebc-4505-a596-ae6d0dce7003', '1984-08-11T12:26:11Z', '2002-09-22T20:52:57Z', 'Singin'' in the Rain', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b86fde58-bea3-431d-ac11-7b8533aafaaa', '2017-11-02T20:53:43Z', '1972-05-10T03:29:13Z', 'If You Could Only Cook', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c43208f4-b87a-4e0e-9f97-c2179ab0673a', '1974-04-14T07:32:12Z', '1989-10-31T06:09:40Z', 'Breaking News (Daai si gin)', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0ffd2928-d963-4d40-8484-989d5ba64819', '2004-12-19T04:27:19Z', '2007-05-23T03:55:04Z', 'Once Upon a Time in China (Wong Fei Hung)', 'Fusce consequat. Nulla nisl. Nunc nisl.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('030c929b-d3e4-47d3-966d-76e2d45e780c', '1983-06-30T10:09:48Z', '1982-10-09T21:38:27Z', 'Journey of August King, The', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('15efa2af-e3da-4148-8806-9d63d327a4b5', '2017-01-04T14:49:14Z', '1974-12-26T02:19:02Z', 'Bar at the Victoria Station, A (Bar na Victorii)', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '5c358c76-6199-4bb5-8451-f68b48cd53e4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a9e3bb36-867f-4f29-b4ef-0ddef5c2e61a', '1996-01-15T01:58:04Z', '2000-10-23T19:47:00Z', '''Human'' Factor, The (Human Factor, The)', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('480e25c0-5719-4fd1-a2b7-140e9987f8c1', '1990-03-01T20:58:43Z', '2000-12-21T02:25:32Z', 'Unstrung Heroes', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('240be2f4-8c7c-4e36-b3af-a5b111671ab3', '2015-08-05T09:35:34Z', '2011-11-29T08:57:42Z', 'Bay of Angels (La baie des anges)', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d0ffd249-5764-4600-8839-0bfe480a7432', '2013-01-11T19:38:59Z', '1985-10-15T23:56:38Z', 'Treasure of the Sierra Madre, The', 'In congue. Etiam justo. Etiam pretium iaculis justo.', 'af720bbd-0522-41b8-a35f-ef72092f544a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('617582b6-5aa8-4f62-b898-6fa616338313', '1971-04-16T16:19:06Z', '1977-12-20T08:29:55Z', 'Daddy Nostalgia (Daddy Nostalgie)', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b9d54c57-ae2f-455b-a291-09a9a97ca432', '2012-05-16T19:17:09Z', '2019-05-28T11:02:37Z', 'Silvestre', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c3d4fa72-858e-4f8c-9159-b2ec26813af0', '1998-03-21T10:20:02Z', '2017-11-05T12:27:18Z', 'Beavis and Butt-Head Do America', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '0ece2ffc-0568-40b3-917b-ffb44b76b6bf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('89f04c77-364d-469c-80f3-86e049be43f3', '2002-09-10T10:29:15Z', '2005-10-28T13:34:13Z', 'You Can Count on Me', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a0707f98-7dd0-44bf-81fb-70e8a45db472', '2004-01-16T23:12:41Z', '2018-11-09T18:51:06Z', 'Star Wars: Episode II - Attack of the Clones', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('94aa14dc-ec2a-42c7-91b4-6c8183ef46fa', '1997-04-25T04:21:01Z', '1971-02-16T22:51:30Z', 'Next of Kin', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', '37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d4ca5a85-af50-4942-8ebc-6800f3897e7c', '2007-02-06T12:28:48Z', '1985-05-12T10:05:36Z', 'White Diamond, The', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a31551d0-e497-494e-9b63-d59d232f3d46', '2011-11-12T12:15:38Z', '2017-11-29T10:51:03Z', 'Freebie and the Bean', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', 'a1cb66c1-ecca-4c80-8bc4-04e7bdd321b2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5c2b768a-0053-4006-bd37-7765a03a7344', '2012-05-07T07:52:05Z', '1989-05-10T05:34:31Z', 'Mein Leben - Marcel Reich-Ranicki', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a72e5a29-ac63-4882-9cb3-d6674ca61a18', '1989-01-12T17:13:00Z', '1987-11-28T20:26:20Z', 'Naked Civil Servant, The', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fa9cd2d2-eb90-4a25-ba33-629188249f4f', '1974-11-20T08:45:47Z', '1984-09-27T14:29:10Z', 'Jurassic Park III', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4527042b-e5cd-4dcf-9c41-5962e4cb9b89', '1980-09-04T23:52:45Z', '1981-02-19T04:54:50Z', 'Arrested Development Documentary Project, The', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9e9ee2c1-ca60-4a4b-a5cb-bacc627eb479', '1974-02-20T06:35:41Z', '2017-03-21T08:33:45Z', 'Harsh Times', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b645ec05-7e12-4d4e-85d0-a8fa7c463e0a', '2007-12-30T19:16:34Z', '2013-05-27T09:32:34Z', 'Play House, The', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('02ca3529-d418-48bf-b50b-a7d1d604cf7a', '2024-02-12T13:49:32Z', '2014-10-23T12:15:19Z', 'Mr. Moto''s Gamble', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9f8ef87c-8124-4840-b558-f36823308584', '2000-07-08T09:52:19Z', '1998-05-04T10:39:27Z', 'Greatest Show on Earth, The', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c9738766-7df9-4159-92a6-fe84202ad231', '1980-01-31T19:00:55Z', '1982-04-22T10:41:30Z', 'Thriller: A Cruel Picture (Thriller - en grym film)', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f47808fe-e4c7-4194-aa1b-44617b7328c8', '2014-03-19T15:43:03Z', '1993-06-17T07:39:19Z', 'The Case of the Lucky Legs', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '5c358c76-6199-4bb5-8451-f68b48cd53e4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('04da8e81-88b6-4278-b1ff-4252ea798a24', '2011-01-18T09:48:09Z', '2023-10-05T19:11:46Z', 'Mirrors', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bc54d2f7-8684-4922-90c4-e0037a2147f3', '1997-11-12T05:13:02Z', '1974-12-14T09:04:18Z', 'Roadie', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c8f2b2d3-dcf9-44d3-b559-48b708f69712', '1973-05-29T14:27:42Z', '2012-12-21T11:25:13Z', 'Paris', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4bd4526c-bd6d-47c8-a46a-efc33cf52aca', '1980-11-30T14:17:01Z', '2007-10-10T03:56:22Z', 'Rabbit Test', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', 'b89b79d6-ee7f-47eb-8779-a908a110e556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1d5f47b2-4de8-4e13-a0a2-bc8be7daabcc', '1985-07-22T10:35:45Z', '2001-11-04T09:11:09Z', 'Crime and Punishment', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f58ae88b-8812-4343-82fd-fd68f9e3de23', '2019-06-21T15:19:11Z', '2010-03-08T16:55:49Z', 'Order, The', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0799a48b-8760-49c1-b1b3-3ca57a8bacb5', '1980-06-23T10:56:39Z', '2002-01-20T11:04:38Z', 'Man with the Golden Arm, The', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('347141d1-688d-4447-9919-5604e20bf81b', '2009-04-26T09:25:20Z', '2024-05-29T18:18:50Z', 'Big Bully', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8380c6e7-2872-4c92-8a20-8478f374d94a', '1981-08-09T15:37:17Z', '1978-11-22T14:17:09Z', 'Private Affairs of Bel Ami, The', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('88c9ff71-bf6a-43d1-b6f3-6ebc49deb9e8', '2011-01-06T11:39:17Z', '1997-07-26T13:27:03Z', 'Page Eight', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('eb92493f-2e14-4ef5-a6e2-f3f85a51c7fd', '2007-01-31T06:37:44Z', '2021-12-01T02:28:50Z', 'Whisky Galore', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '12f29e4a-64a1-4554-9354-185fbc8f9521', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('dc57f8a5-0dfe-44b7-9e4e-bdf08cec0448', '1970-03-07T03:54:06Z', '1991-11-04T22:21:57Z', 'Shipwrecked (a.k.a. Haakon Haakonsen)', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('70a82da9-561d-400c-b5af-f298ef3441f3', '2008-06-25T15:30:18Z', '2002-05-28T12:54:43Z', 'Diggers', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c7522606-a12e-4c2b-86eb-4d41dc8a68eb', '2003-03-04T01:27:36Z', '2015-10-13T16:00:32Z', 'Gilded Lily, The', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c891dfb2-ef4c-4c34-b840-12acd4fa7f76', '1984-01-27T09:59:24Z', '2011-01-29T11:26:23Z', 'Dark Knight Rises, The', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a3ed3e5e-ef74-40cc-b2a4-e14d4528fef3', '1998-06-07T07:35:03Z', '1975-05-12T22:02:49Z', 'Sekirei', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a36b17b2-30bf-4f36-b6b1-587fb8377beb', '1999-09-30T09:36:35Z', '1995-01-28T21:04:17Z', 'Le crocodile du Botswanga', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4ce5f2e6-9a28-498c-b08d-d50dbf629899', '1998-12-24T04:41:14Z', '2008-10-07T10:47:30Z', 'Umberto D.', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', '6311e405-c4c8-48ec-bf7b-64f99efe9606', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('82c1cb00-ed68-47bf-9fa2-6688c9e3e008', '1979-08-11T20:37:49Z', '1972-06-14T22:56:42Z', 'With Fire and Sword (Ogniem i mieczem)', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '90d14a76-2d54-4842-81b5-5e2b12c5ae53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('af3acb4d-7354-4d21-bf0f-98203c4fb80e', '1984-09-28T04:14:50Z', '2015-10-20T19:05:50Z', 'Château, The', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2e91daed-1f9d-469e-a4d2-7ce37d024985', '2014-10-15T03:54:59Z', '2012-02-29T01:34:23Z', 'It''s Pat', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('07a70de2-5b5f-40ac-bb22-468cde09f2de', '1974-12-08T14:38:09Z', '1988-11-12T16:14:11Z', 'City Zero', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', 'd720890a-9417-478c-8114-dcd2242916ca', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e111b94c-9d13-4c9a-9a32-b76e4f23ae30', '2009-04-08T01:04:22Z', '1972-06-09T14:00:05Z', 'Last Metro, The (Dernier métro, Le)', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0f034ac8-7f2f-4a0c-a790-33de92165945', '1988-02-26T18:04:33Z', '1973-08-04T06:02:47Z', 'Around the World Under the Sea', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b90816ff-4f2f-41ad-a132-71f4ce83539f', '1972-12-13T01:00:34Z', '2009-02-12T11:31:34Z', 'East Palace West Palace (Dong gong xi gong)', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('12d88327-31c5-4b6d-a2d9-3b8c8d023532', '1975-03-03T21:05:00Z', '1976-06-14T14:49:04Z', 'G.I. Jane', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('39eacf01-f833-4ad0-93d9-3a5d6da6d61d', '1986-06-17T04:34:27Z', '2014-08-12T17:56:46Z', 'Good Mother, The', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('74f26000-f172-4a7a-91b4-ffcc842f4be7', '1999-06-07T20:34:06Z', '1977-08-04T14:13:48Z', 'Embrace of the Vampire', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('25d24353-f6dc-406c-bf34-5cdfc81d7f4e', '2015-08-18T21:02:00Z', '1992-05-18T02:16:04Z', '10th Victim, The (La decima vittima)', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', 'b6993a8b-7e74-40d1-bff6-18409bcb1cf4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8bc6ffd5-152e-4cb9-a866-65c34616579d', '1975-11-27T05:47:17Z', '1985-01-10T00:35:47Z', 'Timbuktu', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '95034daa-928b-49e6-a93a-fd5d6b16ea19', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bb2324f8-d73f-4919-891a-3d1d761e5d66', '1978-01-21T23:56:42Z', '2010-10-05T21:46:25Z', 'Order of Myths, The', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '12e11f0a-3612-474a-b39c-19bb25c615ae', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('17b8d010-de4b-4e62-940e-2a462f05fc24', '1990-02-22T10:59:51Z', '1992-05-28T22:08:51Z', 'Rape of Europa, The', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09d9ed44-4ff2-49d1-94af-fc1b89af8696', '1975-08-28T02:17:39Z', '1986-12-07T12:55:20Z', 'Preaching to the Perverted', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0a6e7717-dc8e-4b12-aec1-6950fcd2c1eb', '1992-01-25T13:15:48Z', '2001-07-23T12:32:05Z', 'Browning Version, The', 'Fusce consequat. Nulla nisl. Nunc nisl.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a06a5699-147e-4082-974e-c62018834ce7', '2003-12-30T06:38:13Z', '2010-02-17T04:12:43Z', 'Rocket Gibraltar', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e226592e-c004-49e8-96bf-04cf626174e1', '2014-07-21T03:29:08Z', '2019-03-20T03:09:57Z', 'Tess', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8a3462ec-d870-4fe6-ac74-5c3a4497a2ff', '2018-10-06T10:19:23Z', '1975-01-12T04:19:53Z', 'Metalstorm: The Destruction of Jared-Syn', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f79fa84b-a4db-4003-ba4a-5f063176e06a', '2003-03-28T07:35:14Z', '1975-04-24T02:16:51Z', 'Naked Weapon (Chek law dak gung)', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b0fd4fd9-ecb3-4cee-b86a-6609973428c3', '2001-01-13T18:05:26Z', '1980-02-27T14:41:15Z', 'On Tour (Tournée)', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '586480a1-b8d5-4764-bdd0-dad9f701f8e3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3c1192a2-25f4-49e0-8718-243c9b527d53', '1994-03-19T01:25:40Z', '1985-12-16T23:09:57Z', 'I''m Here', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '1079356c-58a7-41d1-8727-785a3487d17c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7836a6fb-adda-4a8e-88a8-ac1f6c412103', '1996-04-19T16:02:35Z', '2003-09-30T04:49:47Z', 'Heroic Ones, The (Shi san tai bao)', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('eda39334-6109-476e-ba77-6e8dc35fc1e8', '1991-01-23T04:25:09Z', '2000-06-19T12:33:50Z', 'Garfield''s Pet Force', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e6d5b184-7e21-46de-af58-45fbc93d9e08', '2014-08-15T02:44:39Z', '1992-01-29T13:37:34Z', 'Elena and Her Men (Paris Does Strange Things) (Elena et les hommes)', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('64de9992-cb50-4cde-a2fa-c3b6efdccc05', '1981-12-15T10:01:23Z', '1984-12-30T13:52:03Z', 'OH in Ohio, The', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c052160e-3b76-458a-bef7-d20d6979974d', '2023-10-06T08:53:00Z', '2003-04-28T18:32:25Z', 'Open Water 2: Adrift', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9b535bb9-0033-428e-991e-f972d7ae70ff', '1977-10-08T07:38:33Z', '2015-06-14T05:11:22Z', 'Angel at My Table, An', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1cdf49d6-c7b9-4cb3-ada0-94a975ab3602', '2010-11-25T11:57:55Z', '2013-09-14T03:36:54Z', 'Tortured, The', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a9685931-ed83-44e8-acdd-67fb2cd6892c', '1971-08-20T22:59:44Z', '1979-08-23T23:40:13Z', 'When I Walk', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('87ea3013-3a80-4b6f-a6a6-c78a01cb97de', '2019-05-08T09:57:47Z', '2024-07-01T13:17:15Z', 'One on One', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2596122b-5714-4e6a-8c0b-4f25bd2c99fb', '1998-10-17T15:38:23Z', '1986-09-14T18:11:28Z', 'Hey Arnold! The Movie', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2ffd2053-9a82-4702-8724-7cdcdb83f94f', '1988-03-03T05:58:27Z', '2001-02-16T09:39:48Z', 'Talk to Me', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '5c358c76-6199-4bb5-8451-f68b48cd53e4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cdc4fa95-9291-44e4-b339-e3788c9b402c', '1981-10-10T08:35:52Z', '1972-03-02T13:13:53Z', 'Wittgenstein', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '649121c9-e222-4ec6-9cb9-9e0568a5803c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('43a42ea2-e493-45cf-8d7b-95cd1e9c7977', '1983-03-01T08:29:40Z', '2023-01-28T22:51:41Z', 'Lovely Molly', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b3275882-b6b6-48d4-bc0d-9c77bb8fd4f9', '2009-03-18T18:40:02Z', '2024-03-01T22:17:48Z', 'iSteve', 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1f9e06f4-f1de-48d6-a140-99760baca6f9', '2012-04-06T15:36:51Z', '2016-09-05T00:55:03Z', 'Spanish Apartment, The (L''auberge espagnole)', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('19e3b40e-6204-4382-8ffc-eb70c3c80151', '1999-11-24T11:04:34Z', '1994-10-09T14:23:47Z', 'The Bloodstained Butterfly', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e08f9e34-ba77-4495-9315-d67145b9584a', '1971-08-23T22:36:05Z', '1994-01-11T17:14:04Z', 'Good Fairy, The', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f233279d-a303-456b-a89d-c6c11154387a', '2022-08-22T02:57:52Z', '2015-06-09T14:03:08Z', 'Sambizanga', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('09163d4a-c3e3-454a-8b6d-9ee06ec452e1', '1992-06-25T21:23:32Z', '1978-10-02T22:53:46Z', 'Widows', 'Fusce consequat. Nulla nisl. Nunc nisl.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3c133562-d18e-4905-8e3a-40e02011dda3', '2010-11-19T07:08:39Z', '2010-01-16T21:23:50Z', 'Odd Couple, The', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', '57daf96e-360e-44e1-a65a-954dd1da31a6', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('98bc37a0-8ba8-4f87-b5fc-18eca55e6047', '2000-06-11T20:42:01Z', '1977-12-30T01:56:38Z', 'Russian Ark (Russkiy Kovcheg)', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b318c79e-9cf1-4c9f-9607-90de328e4906', '1980-12-04T19:30:55Z', '1970-04-05T11:22:50Z', '40 Guns to Apache Pass', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f975bb56-8378-4f8f-b26a-66789afd4270', '2011-07-14T04:23:35Z', '2012-10-28T07:51:32Z', 'Maniac', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('b04bf332-e524-4f3e-86ee-27216c2ebf91', '1981-04-26T17:59:43Z', '1981-08-05T11:59:20Z', 'Scooby-Doo! WrestleMania Mystery', 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('75d68c86-8d61-4fa0-b8bf-664d00669416', '1995-03-24T13:40:44Z', '1994-10-05T00:47:47Z', 'Norte, El', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('95bb8562-90ff-4c3d-921b-5a8bd24cc3fc', '1995-05-16T18:47:17Z', '2000-10-02T08:43:56Z', 'Wicker Man, The', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2ae602b9-8dc5-4d8a-bf84-697766b1b6f8', '2014-10-24T05:46:20Z', '2020-05-20T00:21:44Z', 'Another Day, Another Time: Celebrating the Music of Inside Llewyn Davis', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '5b9be6f5-4887-49e9-8bf0-980f7ad42ad9', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('184a097f-5e2b-4a60-9522-d302112a42d5', '2015-03-15T08:15:00Z', '1993-01-14T13:58:11Z', 'Slingshot, The (Kådisbellan)', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '96db7efb-5d64-4509-aace-e8ed22abffaf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8872ddf8-58b2-4830-ac73-3b1fe178058c', '2002-04-23T01:10:31Z', '2018-08-11T08:46:33Z', 'Radio Rebel', 'In congue. Etiam justo. Etiam pretium iaculis justo.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('060a4e94-e328-4ee2-b6ea-c94bf2349f18', '1996-08-26T23:15:13Z', '1987-02-06T22:05:18Z', 'Human Scale, The', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', 'f2d2785a-6dc9-4005-9397-2e1b08f78450', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4c018ee9-91b8-44b0-a3b2-fc79384b5afc', '1996-11-23T14:52:46Z', '1978-12-09T14:03:20Z', '52 Pick-Up', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7bbdcd80-d686-445b-b83c-00731a52c24c', '2004-08-17T23:45:49Z', '1988-06-10T23:20:08Z', 'Thunderball', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '9047ea73-7b72-4834-8811-4d820a9b8f48', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('be1a0906-2a9c-4131-b13c-742aaae30ae6', '1988-02-26T20:04:03Z', '1998-11-27T03:08:14Z', 'Youth Without Youth', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('24feeced-82aa-4a06-948c-fa9ad8d8bcad', '1978-10-01T12:01:19Z', '1974-05-27T15:17:55Z', 'Yes Men Fix the World, The', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ad3c0bfb-2d61-4887-b013-78bbaa2678c6', '1989-05-28T17:57:03Z', '1978-05-20T23:21:28Z', 'Gangs of New York', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e51452a0-acc0-4910-a7f0-f9e95802f038', '1993-01-13T15:02:57Z', '1972-06-05T06:11:41Z', 'People Will Talk', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('fad11b51-09fe-4491-9499-af3fe5491e9c', '1973-07-20T02:01:21Z', '1997-03-31T05:24:22Z', 'Moon Over Parador', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0c43ba8a-9173-43c5-8754-bd0550a344ab', '1994-12-30T05:21:37Z', '2012-12-08T12:50:20Z', 'Mother India', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('50c19ec6-5d20-447a-a47c-cb2551fb13cf', '2009-06-05T22:36:19Z', '1984-03-27T18:17:30Z', 'Boogeyman, The', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6f1c565b-010b-496c-b6b9-8b9a1580811b', '1981-06-05T13:43:29Z', '1984-11-15T09:41:54Z', 'Woman''s Face, A (En kvinnas ansikte) ', 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5ec849cf-fa78-45e2-bffe-e6e69bf94a9a', '2002-07-28T20:37:44Z', '1982-02-05T22:09:44Z', 'Stuart: A Life Backward', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f1150f4c-1abc-45eb-8317-a23698ade1c6', '1993-08-27T09:16:38Z', '2015-05-05T19:56:41Z', 'Walk on the Wild Side', 'Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. Suspendisse potenti.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ec190afc-e7d1-4f03-b272-cbc138a7bb74', '1994-02-25T19:48:26Z', '1981-12-10T08:48:13Z', 'Jimmy Show, The', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('01939f6c-b25b-423c-aa8e-2e9250d7205a', '2017-05-14T17:06:25Z', '2004-01-07T01:05:35Z', 'Deep Rising', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4dc6c38c-b149-4d86-a19f-7b243d53278b', '2001-11-16T15:05:57Z', '2013-12-31T01:44:25Z', 'Syrinx', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '061f93c9-6aa0-43f3-a1ca-d4d26e6c1c1b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7337e052-c6a3-49b7-a365-ff025e82b9ff', '2007-05-18T05:47:19Z', '1981-09-27T00:02:30Z', 'Brooklyn Bridge', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e175a5ca-5e7f-4503-8458-bf292450cb2d', '1999-01-04T22:40:33Z', '1995-08-18T07:58:57Z', 'The Finzi Detective Agency', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c8c4efdb-eb72-435c-97a5-ad9d1cf8be23', '1980-05-18T11:18:46Z', '1979-05-27T05:12:40Z', 'Precious Find', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'a919d9ab-38a8-46b2-842c-fe39af9f5679', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('79383411-a641-47eb-8e3b-45cb2ec27f2d', '1977-03-20T13:24:33Z', '1995-07-08T20:35:09Z', 'Cream Lemon (Kurîmu remon)', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '9e93b8af-e534-4e45-8910-0dc6c74ab892', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0858b51d-fc02-43ae-808c-be97e007f539', '2009-10-12T19:32:13Z', '2003-03-27T17:50:41Z', 'Autumn Heart, The', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f8050f21-9d50-47cc-aaa5-d6ed7209e839', '2016-11-23T02:26:53Z', '1979-10-16T05:09:12Z', 'Hellraiser: Revelations', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('60bcc478-bb91-4b6e-b561-1435e7e29be0', '2022-05-15T04:08:46Z', '1971-09-09T19:34:38Z', 'Foon', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('32c6642e-d233-4df2-906e-861dc396c3cc', '1976-12-11T01:22:52Z', '1970-12-14T00:32:20Z', 'Legion', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3ccd8157-ded3-4185-bb68-48b085b05fa2', '2020-10-10T04:54:10Z', '2020-05-14T02:36:12Z', 'Keeper of Lost Causes, The (Kvinden i buret)', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', '89b31029-b22c-4ed3-aaf7-f96d30266556', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('475ce85e-6440-4f39-91cd-27b05f3d3219', '1991-07-18T03:18:20Z', '2009-01-15T02:20:28Z', 'Moment of Innocence, A (Nun va Goldoon)', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6a84c5cf-a2a3-4176-84f6-9286443d48e9', '2017-11-17T05:26:07Z', '2004-12-24T08:39:30Z', 'American in Paris, An', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '91c3b10a-cca1-4005-8421-4d55000dd7dd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3266c71b-3034-4a86-92fa-10174d0a52e6', '1993-04-28T06:39:15Z', '2020-05-22T15:59:20Z', 'Among Us (Onder Ons)', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '02e81b3d-97de-4f96-99d0-7f1b94813e1e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1a9b4fd5-41c0-4550-818d-b3952d3f4e73', '1996-03-03T20:08:48Z', '1998-12-09T00:24:49Z', 'Four Seasons (Seasons, The) (Vremena goda)', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ed4fdeee-116f-42d2-8c4a-c012e571ceb6', '2001-09-10T09:55:38Z', '2013-10-05T11:53:51Z', 'Gambler, The (Játékos, A)', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '5c358c76-6199-4bb5-8451-f68b48cd53e4', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7dd6ed56-a113-4c2a-b012-6ae9a66762af', '1977-12-29T10:01:45Z', '1997-09-13T02:19:52Z', 'Temptress, The', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '89d16d02-7874-420d-b9d3-e2709af18728', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('49aa9f07-a0ee-474f-a598-f64bcbd11a11', '1996-02-28T01:54:35Z', '2024-05-07T20:53:25Z', 'Muck', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '25d0a43d-45bd-42e2-9b87-57c91d3a19fe', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d41480cd-61a6-43c5-b611-4d841b5a03a4', '1977-03-05T03:26:06Z', '2019-08-05T18:06:18Z', 'Wheelmen', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d10944a2-611b-4189-9b39-1f7b1d19754b', '1973-07-21T14:08:03Z', '1973-12-24T15:29:08Z', 'City on Fire (Lung fu fong wan)', 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.', 'f281920d-0b88-4d0d-b300-80cea13dfeb5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1efd85f1-b425-403a-88a7-8e914806f2f8', '2003-07-19T12:54:30Z', '2020-10-06T20:41:27Z', 'A Thousand Times Goodnight', 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.', '2927d4f1-eb2c-43d9-9cc2-9ecf61e70019', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('20589027-9243-4e08-8524-ef13fb77ed52', '2017-08-16T20:10:19Z', '1985-08-06T03:27:29Z', 'Bombay Beach', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('63724be0-a799-4621-b541-292483cd5b2a', '1996-10-27T07:56:42Z', '1982-04-08T05:50:29Z', 'We Feed the World', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '3c3e029c-a071-4ac5-bbb3-3ee09223dd12', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('120393eb-db56-4f08-b71c-4ca3ca7b00e6', '2016-02-07T21:28:42Z', '2018-06-01T16:55:46Z', 'Attack of the Puppet People', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a058ed63-100a-448f-aa5a-aba651c3f40e', '2011-04-20T15:24:05Z', '2015-10-11T18:27:15Z', 'Dear Wendy', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('386bb0ad-5d89-440f-a463-5f2055f8e0ca', '2018-02-26T16:59:36Z', '2013-01-07T00:54:53Z', 'Ghoulies II', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d7a60e50-29f9-498a-9255-8a1a38ebd112', '2010-11-14T10:32:00Z', '2012-07-20T23:15:06Z', 'Snapper, The', 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6185d6d8-d243-49ec-958c-8ab00f6726a8', '1971-02-13T18:25:59Z', '2020-05-24T15:19:33Z', 'Breaking the Surface: The Greg Louganis Story', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 'f9de052a-f42f-4d2c-bd46-f5fef6e3d009', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0e9d88fc-a168-4de8-b806-b9c4fdc4c508', '2018-10-28T10:37:58Z', '1977-06-28T01:35:10Z', 'Ex Drummer', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('971834d4-5b82-4061-a976-b57746c6c519', '2013-05-30T20:13:07Z', '1972-02-03T01:58:13Z', 'Spanish Prisoner, The', 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d4c890c5-11b7-43ff-927b-6826184331c9', '1971-04-15T08:27:55Z', '1976-10-28T03:15:37Z', 'French Roast', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '6311e405-c4c8-48ec-bf7b-64f99efe9606', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('23b98240-cb6a-47d0-83d0-ed1a2f61226f', '2004-07-13T00:06:43Z', '2022-09-03T19:33:00Z', 'Perfect World, A', 'Fusce consequat. Nulla nisl. Nunc nisl.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4219a9b6-e662-4578-87cf-b3cb584fcd00', '2012-08-22T13:14:48Z', '2006-08-31T09:40:16Z', 'Godzilla', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('993a54e2-50c4-4a7b-a224-ccb86a7e0b62', '1989-07-03T02:22:52Z', '2016-03-30T19:16:32Z', 'Sparrows Dance', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '2ff70dcd-ba2e-4629-91c8-5bc0543b6d35', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('506ae346-a653-43d8-901f-9fe9e30b01d5', '2013-02-12T07:20:54Z', '2016-03-12T09:41:00Z', 'The Road to Glory', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5e24e267-4cd5-4093-af28-e86a631961e8', '1980-01-31T05:20:56Z', '1974-08-23T07:54:50Z', 'I''ll Follow You Down', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a242b038-218e-4e8e-a19d-18d0341c75a2', '2011-11-13T11:09:41Z', '2001-03-31T03:49:50Z', 'House of Yes, The', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('15b11e43-0d92-4d30-8765-42b83ec83359', '1993-04-07T21:53:31Z', '1986-12-04T13:24:03Z', 'Walter', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '7e8bcb3e-47dc-4fb6-a157-8a6dc7308015', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9e52587a-fa72-4748-b50a-a13a9d548b01', '1973-08-28T19:27:35Z', '1990-06-25T21:05:50Z', 'Film Geek', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '9ef50fb4-70d7-4c23-82d5-56803ccbc2a0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('52e50883-4577-4f9e-ad25-3a553d95bcfa', '1985-04-12T06:43:40Z', '2013-03-23T04:04:00Z', 'Far Country, The', 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.', '60dd4d0d-e94d-4f0a-a54d-228644805f79', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e08edbef-4007-4e58-a2a1-743814404d30', '2005-08-30T08:10:38Z', '1993-02-17T10:57:18Z', 'Turkish Dance, Ella Lola', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('61eda496-e198-4762-a556-b37c7653f275', '1983-09-02T16:10:20Z', '2021-04-23T22:01:42Z', 'Bad Boy Bubby', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d42f1694-7ebb-4f7a-89b8-8b2232c7e269', '1976-08-01T11:46:15Z', '2012-01-26T23:02:42Z', 'Pageant', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', 'feacd5d9-16d0-425d-beab-5173e63fcbb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e21488e6-5bea-461a-8769-9923cded84b1', '1983-05-10T19:55:45Z', '2007-11-05T17:49:23Z', 'Afterburn', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', 'c8a05f25-a7cc-44a8-be6f-94ae88ebafbf', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('06a34242-513e-4912-b87c-72fdc88e5c51', '2015-09-24T23:52:44Z', '1985-03-17T23:31:31Z', 'Siberia', 'Fusce consequat. Nulla nisl. Nunc nisl.', '14ada151-b657-4ddd-ba27-9afbdda538a7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('df94a252-d804-4e01-8ade-64a51d9cfc80', '2015-03-01T04:56:34Z', '1970-01-05T10:10:15Z', 'Mabel''s Married Life', 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0f68127d-741b-480e-a155-90f693e0ea65', '2017-08-07T19:22:53Z', '1975-04-14T06:52:27Z', 'Magic of Belle Isle, The', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', 'c92acbe2-fc9b-4a3a-8b52-6445d3b7e528', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ee44a903-a3cd-48c6-8e85-423e0b3f4f7d', '2006-09-23T17:24:10Z', '1984-07-25T16:46:55Z', 'Freezer', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a426e9e7-91c1-4c30-8c31-f2c683c01d1b', '1970-08-09T04:32:52Z', '2005-03-01T11:40:05Z', 'Mumford', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('87207e01-89c9-4e4b-aee1-dd91fd5dca8e', '2017-09-25T01:24:21Z', '2020-12-08T09:00:35Z', 'Euphoria (Eyforiya)', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '1c4f1320-7dce-484c-97a1-cdbb6cfa3f84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e559ca44-6673-4c16-8349-cb32e7c89e9b', '2019-12-07T21:04:39Z', '1978-08-02T06:22:52Z', 'Zelig', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d5227585-42d5-4678-9fcd-91d577e5db6a', '2014-05-03T15:38:58Z', '1992-11-13T10:26:12Z', 'Luna, La', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '28298130-1102-48af-a620-c08de1af38d0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f9493f52-4d8a-45f4-b84b-528e69379949', '2000-11-09T17:42:24Z', '2003-12-13T22:22:58Z', 'Nightmare on Elm Street 2: Freddy''s Revenge, A', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', 'd9cd9ada-7807-4a39-bdab-678ab10da845', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('00009a57-f299-41fc-8dd9-414ae181f69c', '1982-05-20T13:16:28Z', '1997-01-15T18:33:00Z', 'Tomorrow We Move (Demain on déménage)', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', '64e24b7f-61dc-434f-b150-5ade2448638d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d6bf5aae-97bf-49c6-ae2f-8998aa5a4ac9', '1991-06-05T14:00:23Z', '1981-10-28T15:10:22Z', 'Rio Sex Comedy', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '4c84d5e6-312b-473a-b046-7c8ee2b133f3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1c415d7e-0148-4c45-a659-5df62f7c5a49', '2004-05-13T21:00:32Z', '1984-02-18T22:57:25Z', 'Touching the Void', 'Phasellus in felis. Donec semper sapien a libero. Nam dui.', 'c0a0693e-b961-4531-b8e4-3799d49775c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e280c71b-d107-4ef8-811d-3a7121a214da', '2008-06-29T08:30:44Z', '2002-03-18T10:30:28Z', 'Can''t Hardly Wait', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7bb9e4b6-39c7-400c-9eaf-5b5e0b3c5488', '1981-07-29T11:49:37Z', '1972-03-07T18:06:27Z', 'Bottle Shock', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '342a2c55-d571-490f-8464-3430917cad96', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c4f696f7-d9ee-49b2-96e3-cc2ea34ed212', '1973-06-14T07:40:40Z', '1977-12-18T05:48:44Z', 'We Steal Secrets: The Story of WikiLeaks', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '6d9d5dda-c8bd-4415-b2a3-b40780e3d1ce', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('30f19220-0df6-4281-b738-6ec7b3b19d39', '1982-01-05T20:51:55Z', '2003-04-25T02:33:52Z', 'It Came from Beneath the Sea', 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('28930b9a-5fb8-40e3-80ce-ba0a7822fa00', '1977-12-13T02:46:11Z', '2012-04-17T20:03:37Z', 'The Beehive', 'In congue. Etiam justo. Etiam pretium iaculis justo.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('3ddcf305-a176-4bc4-b82e-9d7fa81f8ee4', '1982-02-17T07:11:03Z', '2004-02-24T02:04:18Z', 'Werewolves on Wheels', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d24d53ad-1c4b-4eab-a411-0cf3e89ca667', '1992-11-01T07:15:39Z', '1992-05-04T22:59:15Z', 'Bugsy Malone', 'Nullam sit amet turpis elementum ligula vehicula consequat. Morbi a ipsum. Integer a nibh.', '69985d4b-3c16-43be-b728-8b578d16dbe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4b8560bd-8dfd-4399-af2f-26123651a25c', '2009-12-21T22:53:20Z', '2020-10-26T05:19:29Z', 'Inglourious Basterds', 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.', '760565aa-fb09-4026-89bf-83b9203c494d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7115ec7b-2430-419b-a360-77db1becfea9', '2019-12-19T22:02:04Z', '1976-05-21T03:47:24Z', 'All Tomorrow''s Parties', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', '0afd0802-6cd1-431d-b36d-8d6977322777', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('666faaf0-bea6-4cff-9a7d-2497a6bce1ee', '1973-04-19T17:22:08Z', '1979-05-14T03:02:17Z', 'Open House ', 'Fusce consequat. Nulla nisl. Nunc nisl.', '3eadee28-661a-476d-81b5-844fe0e4a1e8', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('08427d47-5bc5-4a91-ad38-9891651af3b7', '2006-11-26T22:16:00Z', '2020-01-18T10:35:45Z', 'Lean on Me', 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7d01707d-b53c-48d6-a853-77aa7b3f6367', '1989-04-22T22:44:02Z', '1970-02-14T05:25:20Z', 'Sweet Evil (L''enfance du mal)', 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('49120ed0-8205-40bd-9f2f-c988277d5c7e', '1974-07-08T06:21:16Z', '1986-04-01T14:36:12Z', 'Year of the Comet', 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9d8a1207-8784-43e2-a939-3adcc0f3de81', '1996-05-13T21:08:00Z', '2019-08-27T10:40:09Z', 'Treacle Jr.', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('de8fe928-2ded-4fb0-947b-f513c887dc80', '2009-03-10T23:04:38Z', '1985-01-19T00:31:33Z', 'Jekyll + Hyde', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9de351f1-22d5-412b-89c3-7a221f7e692d', '2014-05-14T14:38:54Z', '2007-02-07T03:15:32Z', 'One False Move', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', 'ea54da15-08fd-4e32-8145-2dcd5f5ba799', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cbc43d48-1858-44f8-bd47-fac198f83d77', '1996-11-09T16:03:10Z', '2005-03-24T06:37:37Z', 'Sacrifice, The (Offret - Sacraficatio)', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '5b7941b2-f4f6-4db7-a2ff-4b245ab3e950', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('0ca80c72-14a1-483b-9885-bbd4743fde9c', '2005-03-25T14:34:37Z', '1999-06-03T21:11:14Z', 'Faces of Death', 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.', '51303c00-5f8b-46df-ae9f-a0b9e5f6852e', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('4fbbd1c0-24af-4508-a300-f38d51bdfcfb', '1997-01-09T10:32:00Z', '1983-02-24T22:38:59Z', 'Ten North Frederick', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('94fdc302-3a50-4b73-a32d-ec4dfd7fa574', '2019-10-17T04:52:53Z', '2015-07-08T11:57:30Z', '3 Little Ninjas and the Lost Treasure', 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('77005e53-801c-41af-9fec-c7bca60bd823', '1980-09-25T06:28:09Z', '1970-02-04T12:36:22Z', 'Parade, The (Parada)', 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.', '25b968c1-8b78-4543-a8a5-406b85ef2f78', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6328c4ca-0d79-4f1d-a43d-4fea5127614a', '1997-04-09T20:26:58Z', '1997-08-25T20:48:14Z', 'Letters from a Killer', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2276a92b-7469-4f7d-b98e-40970021a019', '1989-03-20T02:06:55Z', '2010-12-16T00:26:53Z', 'Hadersfild (Huddersfield)', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '649121c9-e222-4ec6-9cb9-9e0568a5803c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f3b58642-0d83-4615-a436-f73fd1d39e7d', '2012-02-01T19:05:42Z', '1985-04-13T06:23:15Z', 'Semper Fi', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ae11c0ee-e887-4fc6-bb81-999b4ce43213', '2009-11-06T20:08:44Z', '1981-12-12T18:51:41Z', 'Fear X', 'Proin eu mi. Nulla ac enim. In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.', '1079356c-58a7-41d1-8727-785a3487d17c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7f942ef0-fcac-4612-b91a-8904eb395e3b', '1989-06-05T23:44:39Z', '1975-07-13T01:25:28Z', 'Messenger, The (Ulak)', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('cabe82c4-c544-46dd-a8da-068e94751df2', '1995-11-03T20:51:25Z', '1983-06-23T04:35:00Z', 'Passenger 57', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '59587c91-3de1-419b-b932-0a51531c6e0a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('6fc67d5a-56c7-4e91-bba0-a0a6ec2b1f79', '2014-07-14T17:35:01Z', '1987-12-22T18:44:00Z', 'St. Elmo''s Fire', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '37a41cce-fcdd-47e5-a4e2-ffc33720ebe0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('631d8228-8d98-4dd5-a45e-0766a6ed4e52', '1991-11-13T11:51:11Z', '1972-01-25T04:32:53Z', 'Three Days of the Condor (3 Days of the Condor)', 'Fusce consequat. Nulla nisl. Nunc nisl.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('df50abcc-05dc-4162-8c3d-54e5d3124fbe', '1983-12-17T11:08:41Z', '2000-09-16T10:46:03Z', 'Hypocrites', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '972106af-041c-486f-9fe7-299592281988', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e71ff473-abed-4bb3-ade0-75c09a004138', '2020-01-18T02:09:16Z', '1994-05-31T20:12:39Z', 'Camelot', 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.', '126918bc-5491-442c-8e7d-16f248cd9782', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('9026d848-f8f1-493f-ad41-b90e97bbf8c3', '2017-02-03T20:59:31Z', '2009-07-18T19:40:10Z', 'Born Yesterday', 'Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. Integer ac neque.', '1ea3ad7c-28ca-47f9-8137-ac5c514a7116', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('54b8b69e-021f-4a22-a21b-a9258368a288', '1998-10-26T05:42:57Z', '2005-03-22T23:03:25Z', 'Eloise at Christmastime', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', '0b370598-ed68-45e4-807a-fea3c40ca44d', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('45531689-ad4b-4f7f-ae8a-38e8de70fe7d', '2017-06-28T11:43:43Z', '1999-06-27T08:59:54Z', 'Indochine', 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.', 'd720890a-9417-478c-8114-dcd2242916ca', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d57a8dd9-87b4-4e4f-8fef-4b79a9e657e0', '2013-09-08T18:04:11Z', '1975-05-07T01:18:12Z', 'Michael Collins', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '1191069b-a532-4430-9e6c-b0e726bd6796', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('84d6a6ee-b6c3-4ff4-bc4c-f54c79dcd0db', '1995-04-23T04:59:38Z', '2002-10-31T15:01:01Z', 'George Washington', 'Sed sagittis. Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. Nullam molestie nibh in lectus.', 'dee14cf0-a3f0-41f8-b847-54a2994a1b53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2d8e7248-80e3-408e-9b39-0cad9f66f2fb', '1984-02-25T18:39:05Z', '1999-03-20T13:55:19Z', 'Cat o'' Nine Tails, The (Gatto a nove code, Il)', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '9cc0da1a-9b40-45b3-8775-5fa6fb7c71a2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5607a10a-ba8c-4658-8279-d496b1f648ce', '2008-06-17T01:20:18Z', '1974-09-07T01:22:00Z', 'Super Mario Bros.', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('e28652d1-e98d-4c37-bfad-e21ed5cc059f', '2021-04-15T10:41:03Z', '2023-09-01T17:34:09Z', 'That''s Entertainment', 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.', '48f2a6dd-b112-4ff9-a5b5-c30df9eba847', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('98027fcf-8f81-49b8-8958-1a911dcddcd9', '1999-11-01T17:05:06Z', '2022-02-25T15:09:45Z', 'Crazy Horse', 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('73faf01c-63d2-4ba4-b581-ce5d2c581d64', '1972-10-15T15:40:31Z', '2014-07-08T02:50:46Z', 'Measuring the World (Die Vermessung der Welt)', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', '8331bf06-5cb2-41c5-b49d-b1b9b0dbaca2', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f9bb8859-de99-44d0-af94-cd46c53b5465', '1986-11-06T17:59:54Z', '1981-11-22T09:42:58Z', 'Happy-Go-Lucky', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', 'd84df41a-6d76-4ad6-8fd4-5ea6388b32a3', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('2e228663-a4be-418c-8584-a5656f21ea26', '1970-10-29T10:29:11Z', '1989-04-12T21:48:30Z', 'The Last Outpost', 'Fusce consequat. Nulla nisl. Nunc nisl.', '1d386c29-aa53-465b-9742-edd67a807a53', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('deb6ffcf-0276-4239-aeb8-4d27443629d2', '1983-11-20T12:23:43Z', '2017-11-16T03:28:59Z', 'Money Pit, The', 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.', 'ed5894c2-065f-405e-8ed4-05b176a66b8b', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1a29ac5a-51a8-44b1-a968-deedace5d16c', '2019-11-22T08:44:28Z', '2000-09-15T11:02:58Z', 'Taste of Honey, A', 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.', '26d56b1e-0ca6-4563-8c64-cb298b7ad7de', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('8767678f-26e2-4564-addf-21fe888eaa2a', '1988-11-05T13:51:10Z', '1982-10-01T11:57:14Z', 'Searchers, The', 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('1d620a40-0c89-42dd-974a-9db9d3d21898', '1981-11-21T12:37:23Z', '2024-06-21T03:32:07Z', 'Eden of the East the Movie II: Paradise Lost (Higashi no Eden Gekijôban II: Paradise Lost)', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '6311e405-c4c8-48ec-bf7b-64f99efe9606', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('ea5bd26a-8ed7-4269-81b9-6ea897f5e0f6', '1991-08-11T09:52:08Z', '2020-05-19T04:06:53Z', 'Color Me Blood Red', 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', 'b97b63f1-b226-4d50-bf70-6a378b7fb345', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('7e7982ed-15ee-40d7-91cf-c74f9746db5f', '1973-11-26T11:18:55Z', '2018-08-07T12:45:51Z', 'Lightning Jack', 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.', '317f831f-4670-43a8-b5e6-65531e056f64', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('05d2aace-7cd3-4899-bfb8-2be18e0a7029', '1975-02-25T20:36:13Z', '2013-01-10T07:42:42Z', 'Wheelmen', 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.', 'f63772fb-33c7-485b-a42e-74ac9c91b353', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f1e4ca30-1159-432c-bdbf-3d297c907afd', '1985-03-08T05:47:52Z', '1993-06-30T09:43:46Z', 'Dead Leaves', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', '7a6b9e90-ad20-440e-ab8d-0925a64b3a51', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('88c758be-1d56-4fec-af05-ec7948f9666a', '2024-04-18T17:40:14Z', '2022-02-18T01:10:58Z', '3 Worlds of Gulliver, The', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', 'b09b649e-cc1e-4972-8eb6-48709fde32c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('84cbeced-1900-49eb-9cd3-8c247990899f', '1982-07-29T22:00:23Z', '1993-11-29T02:51:49Z', 'Late Chrysanthemums (Bangiku)', 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.', '731e462e-c730-4434-9daf-598b457feeb7', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('a3e9f037-420f-4070-ac1b-dc1b5cd42cf5', '1994-07-19T07:51:52Z', '1988-04-30T00:43:25Z', 'Command Performance', 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.', '03146c03-1545-4757-b504-109e59d00d84', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('62e09323-26d2-4d5d-a5df-122db5b7c800', '2015-07-21T15:34:03Z', '2001-05-31T08:05:06Z', 'Search for the Beast', 'Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. Mauris lacinia sapien quis libero.', 'f7ee4b0c-8dd4-4633-b6d8-ec5d58cd7aeb', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('5913d9ba-f603-4023-90ad-629bb4a8950b', '2003-03-21T10:54:43Z', '2000-04-17T15:35:14Z', 'Kiki''s Delivery Service (Majo no takkyûbin)', 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.', '349b8a36-d1de-41f9-a857-726f26ce9208', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('93f6698a-26f7-484c-b2cb-774246d8dd5f', '2005-02-20T19:24:58Z', '2002-07-13T16:25:24Z', 'Perfect World, A', 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.', '24ec5848-b164-4c0d-bf8c-62f9c9d36fa5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d34f3635-e6d0-4eb1-8bf7-2832c1790d52', '1975-12-26T17:04:09Z', '1973-05-08T18:24:47Z', 'Something for Everyone', 'Sed ante. Vivamus tortor. Duis mattis egestas metus.', '43b207aa-d79f-4285-a543-08ca7a7ebd3c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('14d4eaef-6b03-4265-b59c-219a42d3acfc', '1982-02-21T14:12:46Z', '2008-04-27T16:07:17Z', 'May I Kill U?', 'Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. Pellentesque viverra pede ac diam. Cras pellentesque volutpat dui.', '2010cc0a-746b-47bb-bd7e-27b52a0671af', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('78da8c3e-91ea-4ed4-b911-1a3f53c7ddd1', '2017-03-02T17:02:21Z', '2012-06-15T05:13:38Z', 'Collection, The', 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', 'af3dcf3f-faa7-4e1f-a434-f3741105dffd', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c0769b99-1fe2-4f2c-af14-a4bdd9d42d6d', '1987-09-15T03:56:24Z', '1990-04-16T05:14:37Z', 'Miss Firecracker', 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('d8a50ee1-dc18-4e08-ab75-54068bed704c', '2019-11-27T20:07:36Z', '1998-04-26T00:19:38Z', 'Tell Them Willie Boy is Here', 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.', '1b144e21-d545-4660-a8d2-a7c5c5b9d9c0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('c75fef1d-6e6d-4bfa-8b8e-b3a34406e115', '2006-01-12T20:00:20Z', '2006-10-04T16:59:53Z', 'Professional Gun, A (Mercenary, The) (Mercenario, Il)', 'Duis aliquam convallis nunc. Proin at turpis a pede posuere nonummy. Integer non velit.', '071a7e59-724d-4ed9-aeee-fae6797546b0', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('bbe8964c-5058-4d94-8959-eda2472b7c3d', '2011-10-15T21:18:33Z', '1989-12-28T11:29:20Z', 'Silence of the Lambs, The', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', '76238f6a-c9b5-4e92-8761-04b85268f07a', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('f10c12e1-818c-4f21-b387-2c1f8d12c76f', '2002-03-07T23:01:08Z', '1970-12-15T11:17:47Z', 'Train of Life (Train de vie)', 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.', '8d304df4-2fcb-47b3-b7db-2f1d31ed338c', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('11666a3d-562f-4cc1-a41f-523a51ed2e50', '1998-09-30T14:41:05Z', '1985-09-14T00:17:22Z', 'Sex Is Comedy', 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.', 'fb7c7da4-5f1c-4214-b2bd-910d508e40c5', 0); +insert into "Post" (id, "createdAt", "updatedAt", title, content, "authorID", points) values ('03366a87-d3ed-4e29-89a7-58d9e7cf5721', '2006-06-11T18:04:43Z', '2003-12-31T02:38:38Z', 'Brother', 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.', 'abe71d2a-edff-4e93-a2f0-081a98938209', 0); + + +COMMIT; \ No newline at end of file diff --git a/backend/prisma/migrations/migration_lock.toml b/backend/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..fbffa92 --- /dev/null +++ b/backend/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" \ No newline at end of file diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma new file mode 100644 index 0000000..1145ee5 --- /dev/null +++ b/backend/prisma/schema.prisma @@ -0,0 +1,62 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? +// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init + +generator client { + provider = "prisma-client-js" +} + +generator typegraphql { + provider = "typegraphql-prisma" + output = "generated/type-graphql" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +model Post { + id String @id @default(uuid()) + createdAt DateTime @unique @default(now()) + updatedAt DateTime @unique @updatedAt + title String? // ? means that title is nullable + content String + authorID String + author User @relation(fields: [authorID], references: [id]) + points Int @default(0) +} + +model User { + id String @id @default(uuid()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + username String @unique + password String + email String? @unique + Posts Post[] +} + +model Upvote { + userID String + postID String + + @@unique([userID, postID]) +} + +model Downvote { + userID String + postID String + + @@unique([userID, postID]) +} + +model ResetPasswordToken { + id String @id @default(cuid()) + userID String + value String @unique + + @@unique([userID, value]) +} diff --git a/backend/src/configs/index.ts b/backend/src/configs/index.ts new file mode 100644 index 0000000..4e3be25 --- /dev/null +++ b/backend/src/configs/index.ts @@ -0,0 +1,2 @@ +export * from './prisma' +export * from './redis' \ No newline at end of file diff --git a/backend/src/configs/prisma.ts b/backend/src/configs/prisma.ts new file mode 100644 index 0000000..5175476 --- /dev/null +++ b/backend/src/configs/prisma.ts @@ -0,0 +1,4 @@ +import { PrismaClient } from '@prisma/client' +export const prisma = new PrismaClient({ + log: ['query', 'info', 'warn', 'error'] +}) diff --git a/backend/src/configs/redis.ts b/backend/src/configs/redis.ts new file mode 100644 index 0000000..e3d23b5 --- /dev/null +++ b/backend/src/configs/redis.ts @@ -0,0 +1,5 @@ +import { createClient } from 'redis' + +export const redis = createClient({ + url: process.env.REDIS_URL +}) \ No newline at end of file diff --git a/backend/src/constants.ts b/backend/src/constants.ts new file mode 100644 index 0000000..2edd24a --- /dev/null +++ b/backend/src/constants.ts @@ -0,0 +1,2 @@ +export const __prod__ = process.env.NODE_ENV ==='production' +export const SESSION_COOKIE_NAME = 'qid' \ No newline at end of file diff --git a/backend/src/index.ts b/backend/src/index.ts new file mode 100644 index 0000000..8b08435 --- /dev/null +++ b/backend/src/index.ts @@ -0,0 +1,102 @@ +import { prisma, redis } from '@/src/configs' +import { __prod__, SESSION_COOKIE_NAME } from '@/src/constants' +import { createUserLoader } from '@/src/loaders' +import { PostResolver, UserResolver } from '@/src/resolvers' +import { Context } from '@/src/types' +import { ApolloServer } from '@apollo/server' +import { expressMiddleware } from '@apollo/server/express4' +import { ApolloServerPluginDrainHttpServer } from '@apollo/server/plugin/drainHttpServer' +import RedisStore from 'connect-redis' +import cors from 'cors' +import express from 'express' +import session from 'express-session' +import http from 'http' +import { buildSchema } from 'type-graphql' + + +const main = async () => { + + const app = express() + app.use(cors({ + origin: [process.env.FRONTEND_ORIGIN, 'https://studio.apollographql.com'], + credentials: true + })) + + await redis.connect() + await redis.flushDb() + + app.set('trust proxy', true) + + // It is important that the session middleware runs before expressMiddleware(apolloServer, { ... }) + // as we'll be using session inside Apollo's resolvers. + app.use( + session({ + name: SESSION_COOKIE_NAME, // This is the name of the cookie that will be stored on the client (usually a browser) when a new session is created, i.e., when the user logs in. + store: new RedisStore({ // This is the key-value database where active user sessions will be stored. + client: redis, + disableTouch: true // This ensures that the session cookies have no TTL, i.e., they will not automatically expire. + }), + cookie: { + httpOnly: false, + sameSite: 'none', + secure: true + }, + secret: process.env.SESSION_SECRET, + saveUninitialized: false, // Officially recommended setting + resave: false // Officially recommended setting + }) + ) + + + /* + 1. Create an Apollo server + 2. Start that Apollo server + 3. Expose that Apollo server to the /graphql endpoint with the following middleware: + - express.json(): Ensures that Express intercepts all requests and only passes the ones containing valid JSON to Apollo. + - expressMiddleware(): Extends the context object which every resolver has access to. + The context object includes the req and res objects by default, and we are extending it to include the prisma and redis clients as well. + */ + const httpServer = http.createServer(app) + const apolloServer = new ApolloServer({ + introspection: true, + schema: await buildSchema({ + resolvers: [ + PostResolver, + UserResolver + ] + }), + plugins: [ + ApolloServerPluginDrainHttpServer({ httpServer }), // Officially recommended plugin to ensure that once the server shuts down, it does so correctly + ] + }) + await apolloServer.start() + app.use( + '/graphql', + express.json(), + expressMiddleware(apolloServer, { + context: async ({ req, res }): Promise => ({ + req, + res, + prisma, + redis, + userLoader: createUserLoader() + }) + }) + ) + + + app.listen(parseInt(process.env.API_PORT), () => { + if (!__prod__) { + console.log(`Server started on localhost:${process.env.API_PORT}.`) + } + else { + console.log(`Server started at ${process.env.BACKEND_ORIGIN}.`) + } + }) + + app.get('/', (_, res) => { + res.send('Start querying at /graphql.') + }) +} + +main().catch(e => { console.error(e) }) diff --git a/backend/src/loaders/createUserLoader.ts b/backend/src/loaders/createUserLoader.ts new file mode 100644 index 0000000..fa61316 --- /dev/null +++ b/backend/src/loaders/createUserLoader.ts @@ -0,0 +1,13 @@ +import { User } from '@/prisma/generated/type-graphql' +import DataLoader from 'dataloader' +import { prisma } from '../configs' + +// https://youtu.be/I6ypD7qv3Z8?si=Pm9PfzpDfRVV-KY3&t=40600 +export const createUserLoader = () => new DataLoader(async (userIDs) => { + const users = await prisma.user.findMany({ where: { id: { in: userIDs as string[] } } }) + const map: Record = {} + users.forEach(u => { + map[u.id] = u + }) + return userIDs.map(id => map[id]) +}) diff --git a/backend/src/loaders/index.ts b/backend/src/loaders/index.ts new file mode 100644 index 0000000..9f5ebdb --- /dev/null +++ b/backend/src/loaders/index.ts @@ -0,0 +1 @@ +export * from './createUserLoader' \ No newline at end of file diff --git a/backend/src/middlewares/index.ts b/backend/src/middlewares/index.ts new file mode 100644 index 0000000..e9cfb77 --- /dev/null +++ b/backend/src/middlewares/index.ts @@ -0,0 +1 @@ +export * from './isAuth' \ No newline at end of file diff --git a/backend/src/middlewares/isAuth.ts b/backend/src/middlewares/isAuth.ts new file mode 100644 index 0000000..b035240 --- /dev/null +++ b/backend/src/middlewares/isAuth.ts @@ -0,0 +1,10 @@ +import { MiddlewareFn } from 'type-graphql' +import { Context } from '@/src/types' + +// https://typegraphql.com/docs/middlewares.html +export const isAuth: MiddlewareFn = async ({ context: { req }}, next) => { + if (!req.session?.userID) { + throw new Error('Unauthenticated!') + } + return await next() +} \ No newline at end of file diff --git a/backend/src/resolvers/index.ts b/backend/src/resolvers/index.ts new file mode 100644 index 0000000..ca611d7 --- /dev/null +++ b/backend/src/resolvers/index.ts @@ -0,0 +1,2 @@ +export * from './post' +export * from './user' \ No newline at end of file diff --git a/backend/src/resolvers/post.ts b/backend/src/resolvers/post.ts new file mode 100644 index 0000000..1a52950 --- /dev/null +++ b/backend/src/resolvers/post.ts @@ -0,0 +1,284 @@ +import { Post, User } from '@/prisma/generated/type-graphql' +import { isAuth } from '@/src/middlewares' +import { Context, PostInput, PostResponse } from '@/src/types' +import { Arg, Ctx, FieldResolver, Int, Mutation, Query, Resolver, Root, UseMiddleware, GraphQLTimestamp } from 'type-graphql' + + +@Resolver(Post) +export class PostResolver { + + @FieldResolver(() => User) + async author( + @Root() post: Post, + @Ctx() { prisma, userLoader }: Context + ): Promise { + return (await prisma.user.findUnique({ where: { id: post.authorID } }))! + + // Using DataLoader is no longer necessary as Prisma already supports automatically batching requests together + // https://www.prisma.io/docs/orm/prisma-client/queries/query-optimization-performance + // return await userLoader.load(post.authorID) + } + + @FieldResolver(() => String) + snippet( + @Root() post: Post + ): string { + return post.content.split(' ').slice(0, 25).join(' ') + '...' + } + + @FieldResolver(() => Boolean, { nullable: true }) + async upvoted( + @Root() post: Post, + @Ctx() { req, prisma }: Context + ): Promise { + if (!req.session?.userID) { + return null + } + return !!(await prisma.upvote.findUnique({ where: { userID_postID: { postID: post.id, userID: req.session.userID } } })) + } + + @FieldResolver(() => Boolean, { nullable: true }) + async downvoted( + @Root() post: Post, + @Ctx() { req, prisma }: Context + ): Promise { + if (!req.session?.userID) { + return null + } + return !!(await prisma.downvote.findUnique({ where: { userID_postID: { postID: post.id, userID: req.session.userID } } })) + } + + @Query(() => Post, { nullable: true }) // nullable means this query can return null + async post( + @Ctx() { prisma }: Context, + @Arg('id', () => String) id: string, + ): Promise { + return await prisma.post.findUnique({ where: { id } }) + } + + @Query(() => [Post]) + async posts( + @Ctx() { req, prisma }: Context, + @Arg('limit', () => Int, { nullable: true }) limit: number = 5, + @Arg('cursor', () => GraphQLTimestamp, { nullable: true }) cursor?: Date + ): Promise { + // https://www.prisma.io/docs/orm/prisma-client/queries/pagination#cursor-based-pagination + if (!cursor) { + return await prisma.post.findMany({ + take: limit, + where: req.session.userID ? { + authorID: req.session.userID + } : undefined, + orderBy: { + createdAt: 'desc' + } + }) + } + return await prisma.post.findMany({ + take: limit, + skip: 1, + cursor: { + createdAt: cursor + }, + where: req.session.userID ? { + authorID: req.session.userID + } : undefined, + orderBy: { + createdAt: 'desc' + } + }) + } + + @UseMiddleware(isAuth) + @Mutation(() => PostResponse) + async createPost( + @Ctx() { req, prisma }: Context, + @Arg('input', () => PostInput) { title, content }: PostInput, + ): Promise { + if (!title) { + return { + errors: [{ + field: 'title', + message: 'Title cannot be empty!' + }] + } + } + if (!content) { + return { + errors: [{ + field: 'content', + message: 'Content cannot be empty!' + }] + } + } + return { + post: await prisma.post.create({ data: { title, content, authorID: req.session.userID! } }) + } + } + + @Mutation(() => PostResponse) + async updatePost( + @Ctx() { req, prisma }: Context, + @Arg('id', () => String) id: string, + @Arg('title', () => String) title: string, + @Arg('content', () => String) content: string, + ): Promise { + + const post = await prisma.post.findUnique({ where: { id } }) + if (!post) { + return { + errors: [{ + field: 'id', + message: 'Post doesn\'t exist!' + }] + } + } + + if (!title) { + return { + errors: [{ + field: 'title', + message: 'Title cannot be empty!' + }] + } + } + + if (!content) { + return { + errors: [{ + field: 'content', + message: 'Content cannot be empty!' + }] + } + } + + return { post: await prisma.post.update({ where: { id }, data: { title, content } }) } + } + + @UseMiddleware(isAuth) + @Mutation(() => Boolean) + async deletePost( + @Ctx() { req, prisma }: Context, + @Arg('id', () => String) id: string + ): Promise { + try { + const post = await prisma.post.findUnique({ where: { id } }) + if (!post) { + throw new Error('Post not found!') + } + if (req.session.userID != post.authorID) { + throw new Error('Unauthorised!') + } + const transactions: any[] = [] + if (await prisma.upvote.findUnique({ where: { userID_postID: { userID: req.session.userID, postID: id } } })) { + transactions.push(prisma.upvote.delete({ where: { userID_postID: { userID: req.session.userID, postID: id } } })) + } + if (await prisma.downvote.findUnique({ where: { userID_postID: { userID: req.session.userID, postID: id } } })) { + transactions.push(prisma.downvote.delete({ where: { userID_postID: { userID: req.session.userID, postID: id } } })) + } + transactions.push(prisma.post.delete({ where: { id } })) + await prisma.$transaction(transactions) + return true + } + catch { + return false + } + } + + @UseMiddleware(isAuth) + @Mutation(() => Post, { nullable: true }) + async upvote( + @Arg('postID', () => String) postID: string, + @Ctx() { req, prisma }: Context + ): Promise { + const post = await prisma.post.findUnique({ where: { id: postID } }) + if (!post) { + return null + } + const existingUpvote = await prisma.upvote.findUnique({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + if (existingUpvote) { + return post + } + // https://www.prisma.io/docs/orm/prisma-client/queries/transactions#interactive-transactions + return await prisma.$transaction(async tx => { + await tx.upvote.create({ data: { postID, userID: req.session.userID! } }) + let currentPoints = post.points + 1 + const existingDownvote = await tx.downvote.findUnique({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + if (existingDownvote) { + currentPoints += 1 + await tx.downvote.delete({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + } + return await tx.post.update({ data: { points: currentPoints }, where: { id: postID } }) + }) + } + + @UseMiddleware(isAuth) + @Mutation(() => Post, { nullable: true }) + async downvote( + @Arg('postID', () => String) postID: string, + @Ctx() { req, prisma }: Context + ): Promise { + const post = await prisma.post.findUnique({ where: { id: postID } }) + if (!post) { + return null + } + const existingDownvote = await prisma.downvote.findUnique({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + if (existingDownvote) { + return post + } + + return await prisma.$transaction(async tx => { + await prisma.downvote.create({ data: { postID, userID: req.session.userID! } }) + let currentPoints = post.points - 1 + const existingUpvote = await prisma.upvote.findUnique({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + if (existingUpvote) { + currentPoints -= 1 + await prisma.upvote.delete({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + } + return await prisma.post.update({ data: { points: currentPoints }, where: { id: postID } }) + }) + } + + @UseMiddleware(isAuth) + @Mutation(() => Post, { nullable: true }) + async removeUpvote( + @Arg('postID', () => String) postID: string, + @Ctx() { req, prisma }: Context + ): Promise { + const post = await prisma.post.findUnique({ where: { id: postID } }) + if (!post) { + return null + } + const existingUpvote = await prisma.upvote.findUnique({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + // https://www.prisma.io/docs/orm/prisma-client/queries/transactions#sequential-prisma-client-operations + if (existingUpvote) { + const [_firstOperationResult, secondOperationResult] = await prisma.$transaction([ + prisma.upvote.delete({ where: { userID_postID: { postID, userID: req.session.userID! } } }), + prisma.post.update({ where: { id: postID }, data: { points: post.points - 1 } }) + ]) + return secondOperationResult + } + return post + } + + @UseMiddleware(isAuth) + @Mutation(() => Post, { nullable: true }) + async removeDownvote( + @Arg('postID', () => String) postID: string, + @Ctx() { req, prisma }: Context + ): Promise { + const post = await prisma.post.findUnique({ where: { id: postID } }) + if (!post) { + return null + } + const existingDownvote = await prisma.downvote.findUnique({ where: { userID_postID: { postID, userID: req.session.userID! } } }) + if (existingDownvote) { + const [_firstOperationResult, secondOperationResult] = await prisma.$transaction([ + prisma.downvote.delete({ where: { userID_postID: { postID, userID: req.session.userID! } } }), + prisma.post.update({ where: { id: postID }, data: { points: post.points + 1 } }) + ]) + return secondOperationResult + } + return post + } +} \ No newline at end of file diff --git a/backend/src/resolvers/user.ts b/backend/src/resolvers/user.ts new file mode 100644 index 0000000..889befc --- /dev/null +++ b/backend/src/resolvers/user.ts @@ -0,0 +1,223 @@ +import { User } from '@/prisma/generated/type-graphql' +import { SESSION_COOKIE_NAME } from '@/src/constants' +import { Context, ResetPasswordResponse, UsernamePasswordInput, UserResponse } from '@/src/types' +import { sendEmail, validateEmail } from '@/src/utils' +import argon2 from 'argon2' +import { Arg, Ctx, FieldResolver, Int, Mutation, Query, Resolver, Root } from 'type-graphql' +import { v7 as uuid_v7 } from 'uuid' + + +@Resolver(User) // It it necessary to pass User into @Resolver() for @FieldResolver() and Root() to work. Whatever is passed into @Resolver() is gonna be a GraphQL object whose fields we can customise. Customising means using @FieldResolver() to determine what gets returned for those fields instead of the database values returned by Prisma. +export class UserResolver { + + @Query(() => [User]) + async getUser( + @Ctx() { prisma }: Context, + @Arg('username', () => String) username: string + ): Promise { + return (await prisma.$queryRawUnsafe(`SELECT * FROM "User" WHERE username = '${username}'`)) as User[] + } + + + @Mutation(() => UserResponse) + async register( + @Ctx() { req, prisma }: Context, + @Arg('input', () => UsernamePasswordInput) { email, username, password }: UsernamePasswordInput + ): Promise { + + const errors = [] + + if (username.length < 8) { + errors.push({ + field: 'username', + message: 'Length must be at least 8.' + }) + } + else if (await prisma.user.findUnique({ where: { username } }) ? true : false) { + errors.push({ + field: 'username', + message: 'Username already exists!' + }) + } + + if (email) { + if (!validateEmail(email)) { + errors.push({ + field: 'email', + message: 'Invalid email!' + }) + } + else if (await prisma.user.findUnique({ where: { email } }) ? true : false) { + errors.push({ + field: 'email', + message: 'Email already in use!' + }) + } + } + + if (password.length < 8) { + errors.push({ + field: 'password', + message: 'Length must be at least 8.' + }) + } + + if (errors.length > 0) { + return { errors } + } + + const user = await prisma.user.create({ data: { username, password } }) + + // Logs in after successfully registering + req.session.userID = user.id + return { user } + } + + @Mutation(() => UserResponse) + async login( + @Ctx() { req, prisma }: Context, + @Arg('input', () => UsernamePasswordInput) { username, password }: UsernamePasswordInput + ): Promise { + const user = await prisma.user.findUnique({ where: { username } }) + if (!user) { + return { + errors: [{ + field: 'username', + message: 'That username doesn\'t exist.' + }] + } + } + if (user.password == password) { + req.session.userID = user.id + return { user } + } + else { + return { + errors: [{ + field: 'password', + message: 'That password is incorrect!' + }] + } + } + } + + @Query(() => User, { nullable: true }) + async me( + @Ctx() { req, prisma }: Context + ): Promise { + if (typeof req.session.userID == 'undefined') { + return null + } + return await prisma.user.findUnique({ where: { id: req.session.userID } }) + } + + @Mutation(() => Boolean) + async logout( + @Ctx() { req, res }: Context + ): Promise { + return new Promise(resolve => { + req.session.destroy((err: any) => { // Delete the session object from Redis + res.clearCookie(SESSION_COOKIE_NAME) // In the HTTP response, unset the session cookie from the client's browser. + if (err) { + console.error(err) + resolve(false) + } + resolve(true) + }) + }) + } + + @Mutation(() => ResetPasswordResponse) + async forgotPassword( + @Ctx() { prisma }: Context, + @Arg('email', () => String) email: string + ): Promise { + const user = await prisma.user.findUnique({ where: { email } }) + + if (!user) { + return { + errors: [{ + field: 'email', + message: 'No user with that email exists!' + }] + } + } + + const token = await prisma.resetPasswordToken.create({ data: { value: uuid_v7(), userID: user.id } }) + + const resetURL = `${process.env.FRONTEND_ORIGIN}/reset-password/${token.value}` + + try { + await sendEmail(email, 'Password Reset', `Visit the following link to reset your password: ${resetURL}`) + return { message: `A password reset email has been sent to ${email}. Please follow the instructions inside the email to reset your password.`, messageType: 'success' } + } + catch (err) { + console.error(err) + return { message: 'An error has occurred. Please try again later.', messageType: 'error' } + } + } + + @Query(() => Boolean) + async checkResetPasswordToken( + @Ctx() { prisma }: Context, + @Arg('token', () => String) token: string, + ): Promise { + const tokenItem = await prisma.resetPasswordToken.findUnique({ where: { value: token } }) + if (!tokenItem) { + return false + } + return true + } + + @Mutation(() => ResetPasswordResponse) + async resetPassword( + @Ctx() { prisma, redis }: Context, + @Arg('token', () => String) token: string, + @Arg('newPassword', () => String) newPassword: string, + ): Promise { + + const tokenItem = await prisma.resetPasswordToken.findUnique({ where: { value: token } }) + if (!tokenItem) { + return { message: 'Invalid token!', messageType: 'error' } + } + + const user = await prisma.user.findUnique({ where: { id: tokenItem.userID } }) + if (!user) { + return { message: 'Invalid token!', messageType: 'error' } + } + + const errors = [] + + if (newPassword.length < 8) { + errors.push({ + field: 'newPassword', + message: 'Length must be at least 8.' + }) + } + + if (errors.length > 0) { + return { errors } + } + + // const hashedPassword = await argon2.hash(newPassword) + await prisma.user.update({ where: { id: tokenItem.userID }, data: { password: newPassword } }) + + // Delete the reset password token + await prisma.resetPasswordToken.delete({ where: { userID_value: { userID: user.id, value: token } } }) + + // Destroy all existing sessions + const keys = await redis.keys('*') + for (const key of keys) { + const value = await redis.get(key) + const jsonValue = JSON.parse(value!) + if (jsonValue.userID === user.id) { + await redis.del(key) + } + } + + return { + message: 'Password successfully updated!', + messageType: 'success' + } + } +} \ No newline at end of file diff --git a/backend/src/types.ts b/backend/src/types.ts new file mode 100644 index 0000000..e7d2175 --- /dev/null +++ b/backend/src/types.ts @@ -0,0 +1,85 @@ +import { Post, User } from '@/prisma/generated/type-graphql' +import { PrismaClient } from '@prisma/client' +import { Request, Response } from 'express' +import { createClient } from 'redis' +import { Field, InputType, ObjectType } from 'type-graphql' +import { createUserLoader } from '@/src/loaders' + +export interface Context { + prisma: PrismaClient + req: Request & { session: Request['session'] & { userID?: string } } + res: Response + redis: ReturnType + userLoader: ReturnType +} + +@InputType() +export class UsernamePasswordInput { + @Field(() => String, { nullable: true }) + email?: string + + @Field(() => String) + username: string + + @Field(() => String) + password: string +} + + +@ObjectType() +export class FieldError { + @Field(() => String, { nullable: true }) + field?: string + + @Field(() => String) + message: string +} + +@ObjectType() +export class UserResponse { + @Field(() => [FieldError], { nullable: true }) + errors?: FieldError[] + + @Field(() => User, { nullable: true }) + user?: User +} + +@ObjectType() +export class ResetPasswordResponse { + @Field(() => [FieldError], { nullable: true }) + errors?: FieldError[] + + @Field(() => String, { nullable: true }) + message?: string + + @Field(() => String, { nullable: true }) + messageType?: 'success' | 'error' +} + +@InputType() +export class PostInput { + @Field(() => String) + title: string + + @Field(() => String) + content: string +} + + +@ObjectType() +export class PostResponse { + @Field(() => [FieldError], { nullable: true }) + errors?: FieldError[] + + @Field(() => Post, { nullable: true }) + post?: Post +} + +@ObjectType() +export class PostsResponse { + @Field(() => [Post], { nullable: true }) + posts?: Post[] + + @Field(() => Boolean) + hasMore: boolean +} \ No newline at end of file diff --git a/backend/src/utils/index.ts b/backend/src/utils/index.ts new file mode 100644 index 0000000..7b15360 --- /dev/null +++ b/backend/src/utils/index.ts @@ -0,0 +1,2 @@ +export * from './sendEmail' +export * from './validateEmail' \ No newline at end of file diff --git a/backend/src/utils/sendEmail.ts b/backend/src/utils/sendEmail.ts new file mode 100644 index 0000000..7d950d3 --- /dev/null +++ b/backend/src/utils/sendEmail.ts @@ -0,0 +1,23 @@ +import nodemailer from 'nodemailer' + +const transporter = nodemailer.createTransport({ + // @ts-ignore + host: process.env.SMTP_HOST, + port: process.env.SMTP_PORT, + secure: process.env.SMTP_SECURE === 'true', // Use `true` for port 465, `false` for all other ports + auth: { + user: process.env.SMTP_USER, + pass: process.env.SMTP_PASS + } +}) + +export const sendEmail = async (to: string, subject: string, html: string) => { + const info = await transporter.sendMail({ + to, + subject, + html + }) + + console.log('Message sent: %s', info.messageId) +} + diff --git a/backend/src/utils/validateEmail.ts b/backend/src/utils/validateEmail.ts new file mode 100644 index 0000000..5700f77 --- /dev/null +++ b/backend/src/utils/validateEmail.ts @@ -0,0 +1 @@ +export const validateEmail = (email: string): boolean => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email) \ No newline at end of file diff --git a/backend/tsconfig.json b/backend/tsconfig.json new file mode 100644 index 0000000..0cb8199 --- /dev/null +++ b/backend/tsconfig.json @@ -0,0 +1,48 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "baseUrl": ".", + "emitDecoratorMetadata": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "lib": [ + "ES2023", + "ESNext" + ], + "module": "CommonJS", + "moduleResolution": "Node10", + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "paths": { + "@/*": [ + "./*" + ] + }, + "removeComments": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "target": "ES2021" + }, + "exclude": [ + "node_modules" + ], + "include": [ + "env.d.ts", + "./src/**/*.ts" + ], + "ts-node": { + "require": [ + "reflect-metadata", + "tsconfig-paths/register", + "dotenv-safe/config" + ], + "swc": true + } +} diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..47346ce --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,8 @@ +Dockerfile +.dockerignore +node_modules +npm-debug.log +README.md +.env +.next +.git diff --git a/frontend/.env.example b/frontend/.env.example new file mode 100644 index 0000000..14918c9 --- /dev/null +++ b/frontend/.env.example @@ -0,0 +1,2 @@ +PORT= +NEXT_PUBLIC_BACKEND_URI= diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a84107a --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,37 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..39fcb1d --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,9 @@ +FROM node:24.4.1-alpine3.22 +WORKDIR /app +COPY . . +RUN npm ci +RUN npx next telemetry disable +RUN npm run build +RUN adduser -D appuser && chown -R appuser /app +USER appuser +CMD npm run start diff --git a/frontend/Providers.tsx b/frontend/Providers.tsx new file mode 100644 index 0000000..f0b2927 --- /dev/null +++ b/frontend/Providers.tsx @@ -0,0 +1,14 @@ +'use client' +import { apollo } from '@/lib' +import { ApolloProvider } from '@apollo/client/react' +import { ChakraProvider } from '@chakra-ui/react' + +export const Providers = ({ children }: { children: React.ReactNode }) => { + return ( + + + {children} + + + ) +} diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..32ce784 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1 @@ +# Frontend for WreckIt ⚒️ diff --git a/frontend/app/NavBar.tsx b/frontend/app/NavBar.tsx new file mode 100644 index 0000000..710646b --- /dev/null +++ b/frontend/app/NavBar.tsx @@ -0,0 +1,64 @@ +'use client' +import { LogoutDocument, MeDocument, PostsDocument } from '@/generated/graphql/graphql' +import { useMutation, useQuery } from '@apollo/client/react' +import { Link } from '@chakra-ui/next-js' +import { Box, Button, Flex, Text } from '@chakra-ui/react' +import { usePathname, useRouter } from 'next/navigation' + +const NavBar: React.FC = () => { + const { data, loading, refetch } = useQuery(MeDocument) + const { refetch: refetchPosts } = useQuery(PostsDocument) + const [logout] = useMutation(LogoutDocument) + const router = useRouter() + const pathname = usePathname() + + return ( + + + + + + + + { + loading && + Loading... + } + { + !loading && !data?.me && + <> + + + + + + + + } + { + data?.me && + + Logged in as {data.me.username}! + + + } + + + ) +} +export default NavBar diff --git a/frontend/app/create-post/page.tsx b/frontend/app/create-post/page.tsx new file mode 100644 index 0000000..aef941c --- /dev/null +++ b/frontend/app/create-post/page.tsx @@ -0,0 +1,49 @@ +'use client' +import { InputField, TextareaField, Wrapper } from '@/components' +import { CreatePostDocument, PostInput, PostsDocument } from '@/generated/graphql/graphql' +import { useAuthenticate } from '@/hooks' +import { errorMapper } from '@/utils' +import { useMutation, useQuery } from '@apollo/client/react' +import { Box, Button, Flex } from '@chakra-ui/react' +import { Form, Formik } from 'formik' +import { useRouter } from 'next/navigation' + + +const CreatePostPage: React.FC = () => { + useAuthenticate() + const router = useRouter() + const [createPost] = useMutation(CreatePostDocument) + const { refetch } = useQuery(PostsDocument) + + return ( + + { + const response = await createPost({ variables: { input: values } }) + const errors = response.data?.createPost.errors + if (errors) { + setErrors(errorMapper(errors)) + } + else if (response.data?.createPost.post) { + refetch() + router.push(`/post/${response.data.createPost.post.id}`) + } + }} + > + {({ isSubmitting }) => ( +
+ + + + + + + +
+ )} +
+
+ ) +} +export default CreatePostPage diff --git a/frontend/app/edit-post/[id]/page.tsx b/frontend/app/edit-post/[id]/page.tsx new file mode 100644 index 0000000..90125de --- /dev/null +++ b/frontend/app/edit-post/[id]/page.tsx @@ -0,0 +1,65 @@ +'use client' +import { FormSuccessMessage, InputField, TextareaField, Wrapper } from '@/components' +import { PostDocument, PostInput, UpdatePostDocument } from '@/generated/graphql/graphql' +import { useAuthenticate } from '@/hooks' +import { errorMapper } from '@/utils' +import { useMutation, useQuery } from '@apollo/client/react' +import { Box, Button, Flex, Text } from '@chakra-ui/react' +import { Form, Formik } from 'formik' +import { use, useState } from 'react' + +interface Props { + params: Promise<{ + id: string + }> +} + + +const EditPostPage: React.FC = ({ params }) => { + const { id } = use(params) + useAuthenticate() + const { data, loading, refetch } = useQuery(PostDocument, { variables: { id } }) + const [updatePost] = useMutation(UpdatePostDocument) + const [showSuccessMessage, setShowSuccessMessage] = useState(false) + + if (loading) { + return Loading... + } + + return ( + + { + const response = await updatePost({ variables: { id, title, content } }) + const errors = response.data?.updatePost.errors + if (errors) { + setErrors(errorMapper(errors)) + } + else if (response.data?.updatePost.post) { + refetch() + setShowSuccessMessage(true) + setTimeout(() => { + setShowSuccessMessage(false) + }, 10000) + } + }} + > + {({ isSubmitting }) => ( +
+ + + + + + {showSuccessMessage && } + + +
+ )} +
+
+ ) +} + +export default EditPostPage diff --git a/frontend/app/favicon.ico b/frontend/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/frontend/app/forgot-password/page.tsx b/frontend/app/forgot-password/page.tsx new file mode 100644 index 0000000..777b468 --- /dev/null +++ b/frontend/app/forgot-password/page.tsx @@ -0,0 +1,52 @@ +'use client' +import { FormErrorMessage, FormSuccessMessage, InputField, Wrapper } from '@/components' +import { ForgotPasswordDocument } from '@/generated/graphql/graphql' +import { errorMapper } from '@/utils' +import { useMutation } from '@apollo/client/react' +import { Button } from '@chakra-ui/react' +import { Form, Formik } from 'formik' +import { useState } from 'react' + +const ForgotPasswordPage: React.FC = () => { + const [forgotPassword] = useMutation(ForgotPasswordDocument) + const [message, setMessage] = useState('') + const [messageType, setMessageType] = useState<'success' | 'error' | ''>('') + + return ( + + { + setMessage('') + setMessageType('') + const response = await forgotPassword({ variables: { email } }) + const errors = response.data?.forgotPassword.errors + if (errors) { + setErrors(errorMapper(errors)) + } + else if (response.data?.forgotPassword.message) { + setMessage(response.data.forgotPassword.message) + setMessageType(response.data.forgotPassword.messageType as any) + } + }} + > + {({ isSubmitting }) => ( +
+ + { + (message && messageType == 'success') && + + } + { + (message && messageType == 'error') && + + } + + + )} +
+
+ ) +} + +export default ForgotPasswordPage \ No newline at end of file diff --git a/frontend/app/globals.css b/frontend/app/globals.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx new file mode 100644 index 0000000..e6b3148 --- /dev/null +++ b/frontend/app/layout.tsx @@ -0,0 +1,28 @@ +import { Providers } from '@/Providers' +import { Flex } from '@chakra-ui/react' +import type { Metadata } from 'next' +import './globals.css' +import NavBar from './NavBar' + + +export const metadata: Metadata = { + title: 'WreckIt ⚒️' +} + +export const runtime = process.env.NODE_ENV == 'production' ? 'edge' : 'nodejs' + +const RootLayout = ({ children, }: Readonly<{ children: React.ReactNode }>) => { + return ( + + + + + + {children} + + + + + ) +} +export default RootLayout diff --git a/frontend/app/login/page.tsx b/frontend/app/login/page.tsx new file mode 100644 index 0000000..da80577 --- /dev/null +++ b/frontend/app/login/page.tsx @@ -0,0 +1,69 @@ +'use client' +import { InputField, Wrapper } from '@/components' +import { LoginDocument, MeDocument, PostsDocument } from '@/generated/graphql/graphql' +import { errorMapper } from '@/utils' +import { useMutation, useQuery } from '@apollo/client/react' +import { Link } from '@chakra-ui/next-js' +import { Box, Button } from '@chakra-ui/react' +import { Form, Formik } from 'formik' +import { useRouter, useSearchParams } from 'next/navigation' +import { Suspense } from 'react' + + +const Page: React.FC = () => { + const router = useRouter() + const searchParams = useSearchParams() + const { refetch } = useQuery(MeDocument) + const { refetch: refetchPosts } = useQuery(PostsDocument) + const [login] = useMutation(LoginDocument) + + return ( + + { + const response = await login({ variables: { input: values } }) + const errors = response.data?.login.errors + if (errors) { + setErrors(errorMapper(errors)) + } + else if (response.data?.login.user) { + // Successful login + await refetch() // Refetch client-side + await refetchPosts() + const destination = searchParams.get('redirect') + if (destination) { + router.push(destination) + } + else { + router.push('/') + } + } + }} + > + {({ isSubmitting }) => ( +
+ + + + + + Forgot password? + + + + )} +
+
+ ) +} + +const LoginPage = () => { + return ( + + + + ) +} + +export default LoginPage diff --git a/frontend/app/page.module.css b/frontend/app/page.module.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx new file mode 100644 index 0000000..4e2c907 --- /dev/null +++ b/frontend/app/page.tsx @@ -0,0 +1,58 @@ +'use client' +import { Post, Wrapper } from '@/components' +import { PostsDocument } from '@/generated/graphql/graphql' +import { useQuery } from '@apollo/client/react' +import { Link } from '@chakra-ui/next-js' +import { Box, Button, Flex, Heading, Stack, Text } from '@chakra-ui/react' +import { useState } from 'react' + + +const Home = (): React.ReactNode => { + // https://www.apollographql.com/docs/react/pagination/core-api/ + const { data, loading, fetchMore } = useQuery(PostsDocument) + const [doesntHaveMore, setDoesntHaveMore] = useState(false) + + return ( + + + + WreckIt ⚒️ + + + + + + { + loading && !data?.posts && + Loading... + } + + { + data?.posts.map((p, idx) => ) + } + + + + { + (data?.posts?.length && !doesntHaveMore) ? + + : <> + } + + + + + ) +} + +export default Home diff --git a/frontend/app/post/[id]/ClientSection.tsx b/frontend/app/post/[id]/ClientSection.tsx new file mode 100644 index 0000000..a739e5b --- /dev/null +++ b/frontend/app/post/[id]/ClientSection.tsx @@ -0,0 +1,79 @@ +'use client' +import { DeletePostDocument, PostQuery } from '@/generated/graphql/graphql' +import { useMutation } from '@apollo/client/react' +import { DeleteIcon, EditIcon } from '@chakra-ui/icons' +import { AlertDialog, AlertDialogBody, AlertDialogContent, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, Button, Flex, IconButton, useDisclosure } from '@chakra-ui/react' +import Link from 'next/link' +import { useRouter } from 'next/navigation' +import { useRef } from 'react' + +interface Props { + data: PostQuery +} + +export const ClientSection: React.FC = ({ data }) => { + const router = useRouter() + const { isOpen, onOpen, onClose } = useDisclosure() + const cancelRef: any = useRef(null) + const [deletePost] = useMutation(DeletePostDocument) + + return ( + + + } + mr={4} + /> + + } + colorScheme='red' + onClick={onOpen} + /> + + + + + Delete Post + + + + Are you sure? You can't undo this action afterwards. + + + + + + + + + + + ) +} \ No newline at end of file diff --git a/frontend/app/post/[id]/loading.tsx b/frontend/app/post/[id]/loading.tsx new file mode 100644 index 0000000..962d31a --- /dev/null +++ b/frontend/app/post/[id]/loading.tsx @@ -0,0 +1,8 @@ +import { Text } from '@chakra-ui/react' + +const Loading: React.FC = () => { + return ( + Loading... + ) +} +export default Loading \ No newline at end of file diff --git a/frontend/app/post/[id]/page.tsx b/frontend/app/post/[id]/page.tsx new file mode 100644 index 0000000..5bfcff5 --- /dev/null +++ b/frontend/app/post/[id]/page.tsx @@ -0,0 +1,42 @@ +import { Wrapper } from '@/components' +import { SESSION_COOKIE_NAME } from '@/constants' +import { MeDocument, PostDocument } from '@/generated/graphql/graphql' +import { createApolloClient } from '@/lib' +import { Heading, Text } from '@chakra-ui/react' +import { cookies } from 'next/headers' +import { ClientSection } from './ClientSection' + +interface Props { + params: Promise<{ + id: string + }> +} + +const PostPage: React.FC = async ({ params }) => { + const { id } = await params + const cookieStore = await cookies() + const cookie = cookieStore.get(SESSION_COOKIE_NAME)?.value + const apollo = await createApolloClient(cookie) + const { data } = await apollo.query({ query: PostDocument, variables: { id } }) + const { data: meData } = await apollo.query({ query: MeDocument }) + + return ( + + { + data?.post ? + <> + {data.post.title} + Posted by {data.post.author.username} + {data.post.content} + { + data?.post?.authorID == meData?.me?.id && + + } + + : + <>Post not found! + } + + ) +} +export default PostPage diff --git a/frontend/app/register/page.tsx b/frontend/app/register/page.tsx new file mode 100644 index 0000000..66a2015 --- /dev/null +++ b/frontend/app/register/page.tsx @@ -0,0 +1,48 @@ +'use client' +import { InputField, Wrapper } from '@/components' +import { MeDocument, RegisterDocument } from '@/generated/graphql/graphql' +import { errorMapper } from '@/utils' +import { useMutation, useQuery } from '@apollo/client/react' +import { Box, Button } from '@chakra-ui/react' +import { Form, Formik } from 'formik' +import { useRouter } from 'next/navigation' + + +const RegisterPage: React.FC = () => { + const router = useRouter() + const { refetch } = useQuery(MeDocument) + const [register] = useMutation(RegisterDocument) + return ( + + { + const response = await register({ variables: { input: values } }) + const errors = response.data?.register.errors + if (errors) { + setErrors(errorMapper(errors)) + } + else if (response.data?.register.user) { + // Successful register + await refetch() + router.push('/') + } + }} + > + {({ isSubmitting }) => ( +
+ + + + + + + + + + )} +
+
+ ) +} +export default RegisterPage diff --git a/frontend/app/reset-password/[token]/page.tsx b/frontend/app/reset-password/[token]/page.tsx new file mode 100644 index 0000000..1e7011f --- /dev/null +++ b/frontend/app/reset-password/[token]/page.tsx @@ -0,0 +1,36 @@ +import { PasswordResetForm } from '@/components' +import { SESSION_COOKIE_NAME } from '@/constants' +import { CheckResetPasswordTokenDocument } from '@/generated/graphql/graphql' +import { createApolloClient } from '@/lib' +import { Text } from '@chakra-ui/react' +import { cookies } from 'next/headers' + +interface Props { + params: Promise<{ + token: string + }> +} + +export const dynamic = 'force-dynamic' + +const ResetPasswordPage: React.FC = async ({ params }) => { + const { token } = await params + const cookieStore = await cookies() + const cookie = cookieStore.get(SESSION_COOKIE_NAME)?.value + const apollo = await createApolloClient(cookie) + const { data, error } = await apollo.query({ query: CheckResetPasswordTokenDocument, variables: { token } }) + + if (error || data === undefined) { + console.log(error) + return An error has occured. Please try again later. + } + + else if (!data.checkResetPasswordToken) { + return Invalid token! + } + + else { + return + } +} +export default ResetPasswordPage diff --git a/frontend/components/FormErrorMessage.tsx b/frontend/components/FormErrorMessage.tsx new file mode 100644 index 0000000..c1d8e59 --- /dev/null +++ b/frontend/components/FormErrorMessage.tsx @@ -0,0 +1,17 @@ +'use client' +import { CloseIcon } from '@chakra-ui/icons' +import { Flex, Text } from '@chakra-ui/react' + +interface Props { + message: string +} + +export const FormErrorMessage: React.FC = (props) => { + const { message } = props + return ( + + + {message} + + ) +} diff --git a/frontend/components/FormSuccessMessage.tsx b/frontend/components/FormSuccessMessage.tsx new file mode 100644 index 0000000..ad48c6d --- /dev/null +++ b/frontend/components/FormSuccessMessage.tsx @@ -0,0 +1,17 @@ +'use client' +import { CheckIcon } from '@chakra-ui/icons' +import { Flex, Text } from '@chakra-ui/react' + +interface Props { + message: string +} + +export const FormSuccessMessage: React.FC = (props) => { + const { message } = props + return ( + + + {message} + + ) +} diff --git a/frontend/components/InputField.tsx b/frontend/components/InputField.tsx new file mode 100644 index 0000000..0c8844d --- /dev/null +++ b/frontend/components/InputField.tsx @@ -0,0 +1,18 @@ +'use client' +import { FormControl, FormErrorMessage, FormLabel, Input } from '@chakra-ui/react' +import { useField } from 'formik' + +type Props = React.InputHTMLAttributes & { name: string, label: string, isTextArea?: boolean } + +export const InputField: React.FC = ({size: _, isTextArea=false, ...props}) => { + const [field, { error }] = useField(props) + const { label, placeholder } = props + + return ( + + {label} + + {error ? {error} : null} + + ) +} \ No newline at end of file diff --git a/frontend/components/PasswordResetForm.tsx b/frontend/components/PasswordResetForm.tsx new file mode 100644 index 0000000..fb81355 --- /dev/null +++ b/frontend/components/PasswordResetForm.tsx @@ -0,0 +1,60 @@ +'use client' +import { FormErrorMessage, FormSuccessMessage, InputField, Wrapper } from '@/components' +import { MeDocument, ResetPasswordDocument } from '@/generated/graphql/graphql' +import { errorMapper } from '@/utils' +import { useMutation, useQuery } from '@apollo/client/react' +import { Button } from '@chakra-ui/react' +import { Form, Formik } from 'formik' +import { useRouter } from 'next/navigation' +import { useState } from 'react' + +interface Props { + token: string +} + +export const PasswordResetForm: React.FC = ({ token }) => { + const router = useRouter() + const [resetPassword] = useMutation(ResetPasswordDocument) + const { refetch } = useQuery(MeDocument) + const [message, setMessage] = useState('') + const [messageType, setMessageType] = useState<'success' | 'error' | ''>('') + + return ( + + { + const response = await resetPassword({ variables: { newPassword, token } }) + const errors = response.data?.resetPassword.errors + if (errors) { + setErrors(errorMapper(errors)) + } + else if (response.data?.resetPassword.message) { + setMessage(response.data.resetPassword.message) + setMessageType(response.data.resetPassword.messageType as any) + if (response.data.resetPassword.messageType == 'success') { + await refetch() + setTimeout(() => { router.push('/login') }, 1500) + } + } + }} + > + {({ isSubmitting }) => ( +
+ + { + (message && messageType == 'success') && + + } + { + (message && messageType == 'error') && + + } + + + )} +
+
+ ) +} + diff --git a/frontend/components/Post.tsx b/frontend/components/Post.tsx new file mode 100644 index 0000000..bab79db --- /dev/null +++ b/frontend/components/Post.tsx @@ -0,0 +1,105 @@ +'use client' +import { DeletePostDocument, DownvoteDocument, MeDocument, PostDocument, Post as PostType, RemoveDownvoteDocument, RemoveUpvoteDocument, UpvoteDocument } from '@/generated/graphql/graphql' +import { useMutation, useQuery } from '@apollo/client/react' +import { ArrowDownIcon, ArrowUpIcon, DeleteIcon, EditIcon } from '@chakra-ui/icons' +import { Box, Flex, Heading, IconButton, Text } from '@chakra-ui/react' +import Link from 'next/link' +import { useRouter } from 'next/navigation' + +interface Props { + post: PostType +} + +export const Post: React.FC = ({ post: p }) => { + const { data } = useQuery(MeDocument) + const router = useRouter() + const { refetch } = useQuery(PostDocument, { returnPartialData: false, variables: { id: p.id } }) + const [upvote, { loading: upvoting }] = useMutation(UpvoteDocument) + const [downvote, { loading: downvoting }] = useMutation(DownvoteDocument) + const [removeUpvote, { loading: removingUpvote }] = useMutation(RemoveUpvoteDocument) + const [removeDownvote, { loading: removingDownvote }] = useMutation(RemoveDownvoteDocument) + const [deletePost, { loading: deletingPost }] = useMutation(DeletePostDocument) + + return ( + + + } + color={p.upvoted ? 'green' : ''} + isLoading={upvoting || removingUpvote} + onClick={async () => { + if (!data?.me) { + router.push('/login') + } + if (p.upvoted) { + await removeUpvote({ variables: { postID: p.id } }) + // Apollo Client automatically refetches one single post and merge it with the cache of previous posts and updating the result of useQuery(PostsDocument), so we don't need to refetch every post. + await refetch() + } + else { + await upvote({ variables: { postID: p.id } }) + await refetch() + } + }} + /> + {p.points} + } + color={p.downvoted ? 'red' : ''} + isLoading={downvoting || removingDownvote} + onClick={async () => { + if (!data?.me) { + router.push('/login') + } + if (p.downvoted) { + await removeDownvote({ variables: { postID: p.id } }) + await refetch() + } + else { + await downvote({ variables: { postID: p.id } }) + await refetch() + } + }} + /> + + + + {p.title} + + Posted by {p.author.username} + {p.snippet} + + { + p.authorID == data?.me?.id && + + + } + /> + + } + colorScheme='red' + isLoading={deletingPost} + onClick={async () => { + await deletePost({ + variables: { id: p.id }, + // https://stackoverflow.com/questions/63192774/apollo-client-delete-item-from-cache + // https://www.apollographql.com/docs/react/caching/garbage-collection/#cacheevict + update: cache => { + const normalizedId = cache.identify({ id: p.id, __typename: 'Post' }) + cache.evict({ id: normalizedId }) + cache.gc() + } + }) + }} + /> + + } + + ) +} \ No newline at end of file diff --git a/frontend/components/RefetchButton.tsx b/frontend/components/RefetchButton.tsx new file mode 100644 index 0000000..f3384af --- /dev/null +++ b/frontend/components/RefetchButton.tsx @@ -0,0 +1,10 @@ +'use client' +import { Button, PropsOf } from '@chakra-ui/react' +import { useRouter } from 'next/navigation' + +export const RefetchButton: React.FC> = (props) => { + const router = useRouter() + return ( + + ) +} diff --git a/frontend/components/TextareaField.tsx b/frontend/components/TextareaField.tsx new file mode 100644 index 0000000..4b0de76 --- /dev/null +++ b/frontend/components/TextareaField.tsx @@ -0,0 +1,36 @@ +'use client' +import { FormControl, FormErrorMessage, FormLabel, Textarea } from '@chakra-ui/react' +import autosize from 'autosize' +import { useField } from 'formik' +import { useRef, useEffect } from 'react' + +type Props = React.TextareaHTMLAttributes & { name: string, label: string } + +export const TextareaField: React.FC = (props) => { + const [field, { error }] = useField(props) + const { label, placeholder } = props + + // https://github.com/chakra-ui/chakra-ui/issues/670 + const ref: any = useRef(null) + useEffect(() => { + const current = ref.current + autosize(current) + return () => { + autosize.destroy(current) + } + }, []) + + return ( + + {label} +