From f2084ae3d405b038627bf0c3f89296b9b822507c Mon Sep 17 00:00:00 2001 From: AlexSserb Date: Sat, 23 Aug 2025 10:28:31 +0400 Subject: [PATCH] refactor: base crud hook --- src/app/deals/contexts/BoardsContext.tsx | 20 +-- src/app/deals/contexts/ProjectsContext.tsx | 17 +- src/app/deals/contexts/StatusesContext.tsx | 19 +-- .../contexts/BoardStatusesContext.tsx | 19 +-- .../contexts/ProjectBoardsContext.tsx | 20 +-- src/hooks/base/index.ts | 3 + src/hooks/base/useCrudOperations.tsx | 161 ++++++++++++++++++ src/hooks/useBoardsOperations.tsx | 133 ++++----------- src/hooks/useProjectsOperations.tsx | 113 +++--------- src/hooks/useStatusesOperations.tsx | 141 ++++----------- src/lib/client/sdk.gen.ts | 12 +- src/lib/client/types.gen.ts | 62 +++---- src/lib/client/zod.gen.ts | 38 ++--- 13 files changed, 355 insertions(+), 403 deletions(-) create mode 100644 src/hooks/base/index.ts create mode 100644 src/hooks/base/useCrudOperations.tsx diff --git a/src/app/deals/contexts/BoardsContext.tsx b/src/app/deals/contexts/BoardsContext.tsx index 4ca5147..ff1b379 100644 --- a/src/app/deals/contexts/BoardsContext.tsx +++ b/src/app/deals/contexts/BoardsContext.tsx @@ -39,14 +39,12 @@ const useBoardsContextState = () => { setSelectedBoardId(boards[0].id); } - const { onCreateBoard, onUpdateBoard, onDeleteBoard } = useBoardsOperations( - { - boards, - setBoards, - refetchBoards, - projectId: project?.id, - } - ); + const { onCreate, onUpdate, onDelete } = useBoardsOperations({ + boards, + setBoards, + refetchBoards, + projectId: project?.id, + }); return { boards, @@ -54,9 +52,9 @@ const useBoardsContextState = () => { selectedBoard, setSelectedBoardId, refetchBoards, - onCreateBoard, - onUpdateBoard, - onDeleteBoard, + onCreateBoard: onCreate, + onUpdateBoard: onUpdate, + onDeleteBoard: onDelete, isEditorDrawerOpened, setIsEditorDrawerOpened, }; diff --git a/src/app/deals/contexts/ProjectsContext.tsx b/src/app/deals/contexts/ProjectsContext.tsx index 7a2980c..44392e8 100644 --- a/src/app/deals/contexts/ProjectsContext.tsx +++ b/src/app/deals/contexts/ProjectsContext.tsx @@ -36,21 +36,20 @@ const useProjectsContextState = () => { setSelectedProjectId(projects[0].id); } - const { onCreateProject, onUpdateProject, onDeleteProject } = - useProjectsOperations({ - projects, - setProjects, - refetchProjects, - }); + const { onCreate, onUpdate, onDelete } = useProjectsOperations({ + projects, + setProjects, + refetchProjects, + }); return { projects, selectedProject, refetchProjects, setSelectedProjectId, - onCreateProject, - onUpdateProject, - onDeleteProject, + onCreateProject: onCreate, + onUpdateProject: onUpdate, + onDeleteProject: onDelete, }; }; diff --git a/src/app/deals/contexts/StatusesContext.tsx b/src/app/deals/contexts/StatusesContext.tsx index f5afa69..2f12034 100644 --- a/src/app/deals/contexts/StatusesContext.tsx +++ b/src/app/deals/contexts/StatusesContext.tsx @@ -29,21 +29,20 @@ const useStatusesContextState = () => { boardId: selectedBoard?.id, }); - const { onCreateStatus, onUpdateStatus, onDeleteStatus } = - useStatusesOperations({ - statuses, - setStatuses, - refetchStatuses, - boardId: selectedBoard?.id, - }); + const { onCreate, onUpdate, onDelete } = useStatusesOperations({ + statuses, + setStatuses, + refetchStatuses, + boardId: selectedBoard?.id, + }); return { statuses, setStatuses, refetchStatuses, - onCreateStatus, - onUpdateStatus, - onDeleteStatus, + onCreateStatus: onCreate, + onUpdateStatus: onUpdate, + onDeleteStatus: onDelete, }; }; diff --git a/src/app/deals/drawers/BoardStatusesEditorDrawer/contexts/BoardStatusesContext.tsx b/src/app/deals/drawers/BoardStatusesEditorDrawer/contexts/BoardStatusesContext.tsx index b88e546..3334d92 100644 --- a/src/app/deals/drawers/BoardStatusesEditorDrawer/contexts/BoardStatusesContext.tsx +++ b/src/app/deals/drawers/BoardStatusesEditorDrawer/contexts/BoardStatusesContext.tsx @@ -32,22 +32,21 @@ const useBoardStatusesContextState = ({ board }: Props) => { boardId: board.id, }); - const { onCreateStatus, onUpdateStatus, onDeleteStatus } = - useStatusesOperations({ - statuses, - setStatuses, - refetchStatuses, - boardId: board.id, - }); + const { onCreate, onUpdate, onDelete } = useStatusesOperations({ + statuses, + setStatuses, + refetchStatuses, + boardId: board.id, + }); return { board, statuses, setStatuses, refetchStatuses, - onCreateStatus, - onUpdateStatus, - onDeleteStatus, + onCreateStatus: onCreate, + onUpdateStatus: onUpdate, + onDeleteStatus: onDelete, }; }; diff --git a/src/app/deals/drawers/ProjectBoardsEditorDrawer/contexts/ProjectBoardsContext.tsx b/src/app/deals/drawers/ProjectBoardsEditorDrawer/contexts/ProjectBoardsContext.tsx index 1ac17a5..51bfda3 100644 --- a/src/app/deals/drawers/ProjectBoardsEditorDrawer/contexts/ProjectBoardsContext.tsx +++ b/src/app/deals/drawers/ProjectBoardsEditorDrawer/contexts/ProjectBoardsContext.tsx @@ -30,23 +30,21 @@ const useProjectBoardsContextState = ({ project }: Props) => { refetch: refetchBoards, } = useBoardsList({ projectId: project?.id }); - const { onCreateBoard, onUpdateBoard, onDeleteBoard } = useBoardsOperations( - { - boards, - setBoards, - refetchBoards, - projectId: project?.id, - } - ); + const { onCreate, onUpdate, onDelete } = useBoardsOperations({ + boards, + setBoards, + refetchBoards, + projectId: project?.id, + }); return { boards, setBoards, project, refetchBoards, - onCreateBoard, - onUpdateBoard, - onDeleteBoard, + onCreateBoard: onCreate, + onUpdateBoard: onUpdate, + onDeleteBoard: onDelete, }; }; diff --git a/src/hooks/base/index.ts b/src/hooks/base/index.ts new file mode 100644 index 0000000..a083933 --- /dev/null +++ b/src/hooks/base/index.ts @@ -0,0 +1,3 @@ +import useCrudOperations from "./useCrudOperations"; + +export { useCrudOperations }; diff --git a/src/hooks/base/useCrudOperations.tsx b/src/hooks/base/useCrudOperations.tsx new file mode 100644 index 0000000..2309e72 --- /dev/null +++ b/src/hooks/base/useCrudOperations.tsx @@ -0,0 +1,161 @@ +import React from "react"; +import { useMutation, UseMutationOptions } from "@tanstack/react-query"; +import { AxiosError } from "axios"; +import { Text } from "@mantine/core"; +import { modals } from "@mantine/modals"; +import { HttpValidationError, Options } from "@/lib/client"; +import { notifications } from "@/lib/notifications"; +import { sortByLexorank } from "@/utils/lexorank"; + +type BaseEntity = { + id: number; + name: string; + lexorank?: string; +}; + +type CreateMutationOptions = Options<{ + body: any; + query: undefined; + path: undefined; + url: string; +}>; + +type UpdateMutationOptions = Options<{ + body: any; + query: undefined; + path: { + pk: number; + }; + url: string; +}>; + +type DeleteMutationOptions = Options<{ + body: undefined; + query: undefined; + path: { + pk: number; + }; + url: string; +}>; + +type UseEntityOperationsProps< + TEntity extends BaseEntity, + TUpdate, + TCreate, +> = { + entities: TEntity[]; + setEntities: React.Dispatch>; + refetch: () => void; + mutations: { + create: UseMutationOptions< + any, + AxiosError, + CreateMutationOptions + >; + update: UseMutationOptions< + any, + AxiosError, + UpdateMutationOptions + >; + delete: UseMutationOptions< + any, + AxiosError, + DeleteMutationOptions + >; + }; + getCreateEntity: (name: string) => TCreate | null; + getUpdateEntity: (oldEntity: TEntity, update: TUpdate) => TEntity; + getDeleteConfirmTitle: (entity: TEntity) => string; +}; + +const useCrudOperations = < + TEntity extends BaseEntity, + TUpdate extends object, + TCreate extends object, +>({ + entities, + setEntities, + refetch, + mutations, + getCreateEntity, + getUpdateEntity, + getDeleteConfirmTitle, +}: UseEntityOperationsProps) => { + const onError = (error: AxiosError) => { + console.error(error); + notifications.error({ + message: error.response?.data?.detail as string | undefined, + }); + refetch(); + }; + + const createMutation = useMutation({ + ...mutations.create, + onError, + onSuccess: (res: { entity: TEntity }) => { + setEntities([...entities, res.entity]); + }, + }); + + const updateMutation = useMutation({ + ...mutations.update, + onError, + }); + + const deleteMutation = useMutation({ + ...mutations.delete, + onError, + }); + + const onCreate = (name: string) => { + const entity = getCreateEntity(name); + if (!entity) return; + createMutation.mutate({ + body: { + entity, + }, + path: undefined, + query: undefined, + }); + }; + + const onUpdate = (id: number, update: TUpdate) => { + updateMutation.mutate({ + body: { + entity: update, + }, + path: { pk: id }, + query: undefined, + }); + setEntities(prev => { + const updated = prev.map(entity => + entity.id === id ? getUpdateEntity(entity, update) : entity + ); + if ("lexorank" in update) { + return sortByLexorank( + updated as (TEntity & { lexorank: string })[] + ); + } + return updated; + }); + }; + + const onDelete = (entity: TEntity) => { + modals.openConfirmModal({ + title: getDeleteConfirmTitle(entity), + children: ( + Вы уверены, что хотите удалить "{entity.name}"? + ), + labels: { confirm: "Да", cancel: "Нет" }, + confirmProps: { color: "red" }, + onConfirm: () => { + deleteMutation.mutate({ path: { pk: entity.id } } as any); + setEntities(prev => prev.filter(e => e.id !== entity.id)); + }, + }); + }; + + return { onCreate, onUpdate, onDelete }; +}; + +export default useCrudOperations; diff --git a/src/hooks/useBoardsOperations.tsx b/src/hooks/useBoardsOperations.tsx index de36cd2..04cf015 100644 --- a/src/hooks/useBoardsOperations.tsx +++ b/src/hooks/useBoardsOperations.tsx @@ -1,12 +1,9 @@ import React from "react"; -import { useMutation } from "@tanstack/react-query"; -import { AxiosError } from "axios"; import { LexoRank } from "lexorank"; -import { Text } from "@mantine/core"; -import { modals } from "@mantine/modals"; +import { useCrudOperations } from "@/hooks/base"; import { BoardSchema, - HttpValidationError, + CreateBoardSchema, UpdateBoardSchema, } from "@/lib/client"; import { @@ -14,12 +11,7 @@ import { deleteBoardMutation, updateBoardMutation, } from "@/lib/client/@tanstack/react-query.gen"; -import { notifications } from "@/lib/notifications"; -import { - getMaxByLexorank, - getNewLexorank, - sortByLexorank, -} from "@/utils/lexorank"; +import { getMaxByLexorank, getNewLexorank } from "@/utils/lexorank"; type UseBoardsOperationsProps = { boards: BoardSchema[]; @@ -29,9 +21,9 @@ type UseBoardsOperationsProps = { }; type BoardsOperations = { - onCreateBoard: (name: string) => void; - onUpdateBoard: (boardId: number, board: UpdateBoardSchema) => void; - onDeleteBoard: (board: BoardSchema) => void; + onCreate: (name: string) => void; + onUpdate: (boardId: number, board: UpdateBoardSchema) => void; + onDelete: (board: BoardSchema) => void; }; export const useBoardsOperations = ({ @@ -40,95 +32,34 @@ export const useBoardsOperations = ({ refetchBoards, projectId, }: UseBoardsOperationsProps): BoardsOperations => { - const onError = (error: AxiosError) => { - console.error(error); - notifications.error({ - message: error.response?.data?.detail as string | undefined, - }); - refetchBoards(); - }; - - const createBoard = useMutation({ - ...createBoardMutation(), - onError, - onSuccess: res => { - setBoards([...boards, res.board]); - }, - }); - - const updateBoard = useMutation({ - ...updateBoardMutation(), - onError, - }); - - const deleteBoard = useMutation({ - ...deleteBoardMutation(), - onError, - }); - - const onCreateBoard = (name: string) => { - if (!projectId) return; - const lastBoard = getMaxByLexorank(boards); - const newLexorank = getNewLexorank( - lastBoard ? LexoRank.parse(lastBoard.lexorank) : null - ); - - createBoard.mutate({ - body: { - board: { + return useCrudOperations( + { + entities: boards, + setEntities: setBoards, + refetch: refetchBoards, + mutations: { + create: createBoardMutation(), + update: updateBoardMutation(), + delete: deleteBoardMutation(), + }, + getCreateEntity: name => { + if (!projectId) return null; + const lastBoard = getMaxByLexorank(boards); + const newLexorank = getNewLexorank( + lastBoard ? LexoRank.parse(lastBoard.lexorank) : null + ); + return { name, projectId, lexorank: newLexorank.toString(), - }, + }; }, - }); - }; - - const onUpdateBoard = (boardId: number, board: UpdateBoardSchema) => { - updateBoard.mutate({ - path: { boardId }, - body: { board }, - }); - - setBoards(boards => - sortByLexorank( - boards.map(oldBoard => - oldBoard.id !== boardId - ? oldBoard - : { - id: oldBoard.id, - name: board.name ? board.name : oldBoard.name, - lexorank: board.lexorank - ? board.lexorank - : oldBoard.lexorank, - } - ) - ) - ); - }; - - const onDeleteBoard = (board: BoardSchema) => { - modals.openConfirmModal({ - title: "Удаление доски", - children: ( - - Вы уверены, что хотите удалить доску "{board.name}"? - - ), - labels: { confirm: "Да", cancel: "Нет" }, - confirmProps: { color: "red" }, - onConfirm: () => { - deleteBoard.mutate({ - path: { boardId: board.id }, - }); - setBoards(boards => boards.filter(b => b.id !== board.id)); - }, - }); - }; - - return { - onCreateBoard, - onUpdateBoard, - onDeleteBoard, - }; + getUpdateEntity: (old, update) => ({ + ...old, + name: update.name ?? old.name, + lexorank: update.lexorank ?? old.lexorank, + }), + getDeleteConfirmTitle: () => "Удаление доски", + } + ); }; diff --git a/src/hooks/useProjectsOperations.tsx b/src/hooks/useProjectsOperations.tsx index 89d5ffe..a59a3d8 100644 --- a/src/hooks/useProjectsOperations.tsx +++ b/src/hooks/useProjectsOperations.tsx @@ -1,10 +1,7 @@ import React from "react"; -import { useMutation } from "@tanstack/react-query"; -import { AxiosError } from "axios"; -import { Text } from "@mantine/core"; -import { modals } from "@mantine/modals"; +import { useCrudOperations } from "@/hooks/base"; import { - HttpValidationError, + CreateProjectSchema, ProjectSchema, UpdateProjectSchema, } from "@/lib/client"; @@ -13,7 +10,6 @@ import { deleteProjectMutation, updateProjectMutation, } from "@/lib/client/@tanstack/react-query.gen"; -import { notifications } from "@/lib/notifications"; type Props = { projects: ProjectSchema[]; @@ -22,9 +18,9 @@ type Props = { }; type ProjectsOperations = { - onCreateProject: (name: string) => void; - onUpdateProject: (projectId: number, project: UpdateProjectSchema) => void; - onDeleteProject: (project: ProjectSchema) => void; + onCreate: (name: string) => void; + onUpdate: (projectId: number, project: UpdateProjectSchema) => void; + onDelete: (project: ProjectSchema) => void; }; export const useProjectsOperations = ({ @@ -32,87 +28,24 @@ export const useProjectsOperations = ({ setProjects, refetchProjects, }: Props): ProjectsOperations => { - const onError = (error: AxiosError) => { - console.error(error); - notifications.error({ - message: error.response?.data?.detail as string | undefined, - }); - refetchProjects(); - }; - - const createProject = useMutation({ - ...createProjectMutation(), - onError, - onSuccess: res => { - setProjects([...projects, res.project]); + return useCrudOperations< + ProjectSchema, + UpdateProjectSchema, + CreateProjectSchema + >({ + entities: projects, + setEntities: setProjects, + refetch: refetchProjects, + mutations: { + create: createProjectMutation(), + update: updateProjectMutation(), + delete: deleteProjectMutation(), }, + getCreateEntity: name => ({ name }), + getUpdateEntity: (old, update) => ({ + ...old, + name: update.name ?? old.name, + }), + getDeleteConfirmTitle: () => "Удаление проекта", }); - - const updateProject = useMutation({ - ...updateProjectMutation(), - onError, - }); - - const deleteProject = useMutation({ - ...deleteProjectMutation(), - onError, - }); - - const onCreateProject = (name: string) => { - createProject.mutate({ - body: { - project: { - name, - }, - }, - }); - }; - - const onUpdateProject = ( - projectId: number, - project: UpdateProjectSchema - ) => { - updateProject.mutate({ - query: { projectId }, - body: { project }, - }); - - setProjects(boards => - boards.map(oldProject => - oldProject.id !== projectId - ? oldProject - : { - id: oldProject.id, - name: project.name ? project.name : oldProject.name, - } - ) - ); - }; - - const onDeleteProject = (project: ProjectSchema) => { - modals.openConfirmModal({ - title: "Удаление проекта", - children: ( - - Вы уверены, что хотите удалить проект "{project.name}"? - - ), - labels: { confirm: "Да", cancel: "Нет" }, - confirmProps: { color: "red" }, - onConfirm: () => { - deleteProject.mutate({ - query: { projectId: project.id }, - }); - setProjects(projects => - projects.filter(p => p.id !== project.id) - ); - }, - }); - }; - - return { - onCreateProject, - onUpdateProject, - onDeleteProject, - }; }; diff --git a/src/hooks/useStatusesOperations.tsx b/src/hooks/useStatusesOperations.tsx index f225ada..e1df050 100644 --- a/src/hooks/useStatusesOperations.tsx +++ b/src/hooks/useStatusesOperations.tsx @@ -1,11 +1,8 @@ import React from "react"; -import { useMutation } from "@tanstack/react-query"; -import { AxiosError } from "axios"; import { LexoRank } from "lexorank"; -import { Text } from "@mantine/core"; -import { modals } from "@mantine/modals"; +import { useCrudOperations } from "@/hooks/base"; import { - HttpValidationError, + CreateStatusSchema, StatusSchema, UpdateStatusSchema, } from "@/lib/client"; @@ -14,12 +11,7 @@ import { deleteStatusMutation, updateStatusMutation, } from "@/lib/client/@tanstack/react-query.gen"; -import { notifications } from "@/lib/notifications"; -import { - getMaxByLexorank, - getNewLexorank, - sortByLexorank, -} from "@/utils/lexorank"; +import { getMaxByLexorank, getNewLexorank } from "@/utils/lexorank"; type Props = { statuses: StatusSchema[]; @@ -29,9 +21,9 @@ type Props = { }; type StatusesOperations = { - onCreateStatus: (name: string) => void; - onUpdateStatus: (statusId: number, status: UpdateStatusSchema) => void; - onDeleteStatus: (status: StatusSchema) => void; + onCreate: (name: string) => void; + onUpdate: (statusId: number, status: UpdateStatusSchema) => void; + onDelete: (status: StatusSchema) => void; }; export const useStatusesOperations = ({ @@ -40,97 +32,36 @@ export const useStatusesOperations = ({ refetchStatuses, boardId, }: Props): StatusesOperations => { - const onError = (error: AxiosError) => { - console.error(error); - notifications.error({ - message: error.response?.data?.detail as string | undefined, - }); - refetchStatuses(); - }; - - const createStatus = useMutation({ - ...createStatusMutation(), - onError, - onSuccess: res => { - setStatuses([...statuses, res.status]); + return useCrudOperations< + StatusSchema, + UpdateStatusSchema, + CreateStatusSchema + >({ + entities: statuses, + setEntities: setStatuses, + refetch: refetchStatuses, + mutations: { + create: createStatusMutation(), + update: updateStatusMutation(), + delete: deleteStatusMutation(), }, + getCreateEntity: name => { + if (!boardId) return null; + const lastBoard = getMaxByLexorank(statuses); + const newLexorank = getNewLexorank( + lastBoard ? LexoRank.parse(lastBoard.lexorank) : null + ); + return { + name, + boardId, + lexorank: newLexorank.toString(), + }; + }, + getUpdateEntity: (old, update) => ({ + ...old, + name: update.name ?? old.name, + lexorank: update.lexorank ?? old.lexorank, + }), + getDeleteConfirmTitle: () => "Удаление статуса", }); - - const updateStatus = useMutation({ - ...updateStatusMutation(), - onError, - }); - - const deleteStatus = useMutation({ - ...deleteStatusMutation(), - onError, - }); - - const onCreateStatus = (name: string) => { - if (!boardId) return; - const lastStatus = getMaxByLexorank(statuses); - const newLexorank = getNewLexorank( - lastStatus ? LexoRank.parse(lastStatus.lexorank) : null - ); - - createStatus.mutate({ - body: { - status: { - name, - boardId, - lexorank: newLexorank.toString(), - }, - }, - }); - }; - - const onUpdateStatus = (statusId: number, status: UpdateStatusSchema) => { - updateStatus.mutate({ - path: { statusId }, - body: { status }, - }); - - setStatuses(statuses => - sortByLexorank( - statuses.map(oldStatus => - oldStatus.id !== statusId - ? oldStatus - : { - id: oldStatus.id, - name: status.name ? status.name : oldStatus.name, - lexorank: status.lexorank - ? status.lexorank - : oldStatus.lexorank, - } - ) - ) - ); - }; - - const onDeleteStatus = (status: StatusSchema) => { - modals.openConfirmModal({ - title: "Удаление колонки", - children: ( - - Вы уверены, что хотите удалить колонку "{status.name}"? - - ), - labels: { confirm: "Да", cancel: "Нет" }, - confirmProps: { color: "red" }, - onConfirm: () => { - deleteStatus.mutate({ - path: { statusId: status.id }, - }); - setStatuses(statuses => - statuses.filter(s => s.id !== status.id) - ); - }, - }); - }; - - return { - onCreateStatus, - onUpdateStatus, - onDeleteStatus, - }; }; diff --git a/src/lib/client/sdk.gen.ts b/src/lib/client/sdk.gen.ts index ef78780..54ece02 100644 --- a/src/lib/client/sdk.gen.ts +++ b/src/lib/client/sdk.gen.ts @@ -161,7 +161,7 @@ export const deleteBoard = ( responseValidator: async data => { return await zDeleteBoardResponse2.parseAsync(data); }, - url: "/board/{boardId}", + url: "/board/{pk}", ...options, }); }; @@ -184,7 +184,7 @@ export const updateBoard = ( responseValidator: async data => { return await zUpdateBoardResponse2.parseAsync(data); }, - url: "/board/{boardId}", + url: "/board/{pk}", ...options, headers: { "Content-Type": "application/json", @@ -311,7 +311,7 @@ export const deleteProject = ( responseValidator: async data => { return await zDeleteProjectResponse2.parseAsync(data); }, - url: "/project/{projectId}", + url: "/project/{pk}", ...options, }); }; @@ -334,7 +334,7 @@ export const updateProject = ( responseValidator: async data => { return await zUpdateProjectResponse2.parseAsync(data); }, - url: "/project/{projectId}", + url: "/project/{pk}", ...options, headers: { "Content-Type": "application/json", @@ -411,7 +411,7 @@ export const deleteStatus = ( responseValidator: async data => { return await zDeleteStatusResponse2.parseAsync(data); }, - url: "/status/{statusId}", + url: "/status/{pk}", ...options, }); }; @@ -434,7 +434,7 @@ export const updateStatus = ( responseValidator: async data => { return await zUpdateStatusResponse2.parseAsync(data); }, - url: "/status/{statusId}", + url: "/status/{pk}", ...options, headers: { "Content-Type": "application/json", diff --git a/src/lib/client/types.gen.ts b/src/lib/client/types.gen.ts index cbbbc9a..b5b71b7 100644 --- a/src/lib/client/types.gen.ts +++ b/src/lib/client/types.gen.ts @@ -22,7 +22,7 @@ export type BoardSchema = { * CreateBoardRequest */ export type CreateBoardRequest = { - board: CreateBoardSchema; + entity: CreateBoardSchema; }; /** @@ -33,7 +33,7 @@ export type CreateBoardResponse = { * Message */ message: string; - board: BoardSchema; + entity: BoardSchema; }; /** @@ -58,7 +58,7 @@ export type CreateBoardSchema = { * CreateProjectRequest */ export type CreateProjectRequest = { - project: CreateProjectSchema; + entity: CreateProjectSchema; }; /** @@ -69,7 +69,7 @@ export type CreateProjectResponse = { * Message */ message: string; - project: ProjectSchema; + entity: ProjectSchema; }; /** @@ -86,7 +86,7 @@ export type CreateProjectSchema = { * CreateStatusRequest */ export type CreateStatusRequest = { - status: CreateStatusSchema; + entity: CreateStatusSchema; }; /** @@ -97,7 +97,7 @@ export type CreateStatusResponse = { * Message */ message: string; - status: StatusSchema; + entity: StatusSchema; }; /** @@ -256,7 +256,7 @@ export type StatusSchema = { * UpdateBoardRequest */ export type UpdateBoardRequest = { - board: UpdateBoardSchema; + entity: UpdateBoardSchema; }; /** @@ -322,7 +322,7 @@ export type UpdateDealSchema = { * UpdateProjectRequest */ export type UpdateProjectRequest = { - project: UpdateProjectSchema; + entity: UpdateProjectSchema; }; /** @@ -349,7 +349,7 @@ export type UpdateProjectSchema = { * UpdateStatusRequest */ export type UpdateStatusRequest = { - status: UpdateStatusSchema; + entity: UpdateStatusSchema; }; /** @@ -454,12 +454,12 @@ export type DeleteBoardData = { body?: never; path: { /** - * Boardid + * Pk */ - boardId: number; + pk: number; }; query?: never; - url: "/board/{boardId}"; + url: "/board/{pk}"; }; export type DeleteBoardErrors = { @@ -485,12 +485,12 @@ export type UpdateBoardData = { body: UpdateBoardRequest; path: { /** - * Boardid + * Pk */ - boardId: number; + pk: number; }; query?: never; - url: "/board/{boardId}"; + url: "/board/{pk}"; }; export type UpdateBoardErrors = { @@ -618,14 +618,14 @@ export type CreateProjectResponse2 = export type DeleteProjectData = { body?: never; - path?: never; - query: { + path: { /** - * Projectid + * Pk */ - projectId: number; + pk: number; }; - url: "/project/{projectId}"; + query?: never; + url: "/project/{pk}"; }; export type DeleteProjectErrors = { @@ -649,14 +649,14 @@ export type DeleteProjectResponse2 = export type UpdateProjectData = { body: UpdateProjectRequest; - path?: never; - query: { + path: { /** - * Projectid + * Pk */ - projectId: number; + pk: number; }; - url: "/project/{projectId}"; + query?: never; + url: "/project/{pk}"; }; export type UpdateProjectErrors = { @@ -739,12 +739,12 @@ export type DeleteStatusData = { body?: never; path: { /** - * Statusid + * Pk */ - statusId: number; + pk: number; }; query?: never; - url: "/status/{statusId}"; + url: "/status/{pk}"; }; export type DeleteStatusErrors = { @@ -770,12 +770,12 @@ export type UpdateStatusData = { body: UpdateStatusRequest; path: { /** - * Statusid + * Pk */ - statusId: number; + pk: number; }; query?: never; - url: "/status/{statusId}"; + url: "/status/{pk}"; }; export type UpdateStatusErrors = { diff --git a/src/lib/client/zod.gen.ts b/src/lib/client/zod.gen.ts index 1c42287..e74fe4b 100644 --- a/src/lib/client/zod.gen.ts +++ b/src/lib/client/zod.gen.ts @@ -24,7 +24,7 @@ export const zCreateBoardSchema = z.object({ * CreateBoardRequest */ export const zCreateBoardRequest = z.object({ - board: zCreateBoardSchema, + entity: zCreateBoardSchema, }); /** @@ -32,7 +32,7 @@ export const zCreateBoardRequest = z.object({ */ export const zCreateBoardResponse = z.object({ message: z.string(), - board: zBoardSchema, + entity: zBoardSchema, }); /** @@ -46,7 +46,7 @@ export const zCreateProjectSchema = z.object({ * CreateProjectRequest */ export const zCreateProjectRequest = z.object({ - project: zCreateProjectSchema, + entity: zCreateProjectSchema, }); /** @@ -62,7 +62,7 @@ export const zProjectSchema = z.object({ */ export const zCreateProjectResponse = z.object({ message: z.string(), - project: zProjectSchema, + entity: zProjectSchema, }); /** @@ -78,7 +78,7 @@ export const zCreateStatusSchema = z.object({ * CreateStatusRequest */ export const zCreateStatusRequest = z.object({ - status: zCreateStatusSchema, + entity: zCreateStatusSchema, }); /** @@ -95,7 +95,7 @@ export const zStatusSchema = z.object({ */ export const zCreateStatusResponse = z.object({ message: z.string(), - status: zStatusSchema, + entity: zStatusSchema, }); /** @@ -185,7 +185,7 @@ export const zUpdateBoardSchema = z.object({ * UpdateBoardRequest */ export const zUpdateBoardRequest = z.object({ - board: zUpdateBoardSchema, + entity: zUpdateBoardSchema, }); /** @@ -229,7 +229,7 @@ export const zUpdateProjectSchema = z.object({ * UpdateProjectRequest */ export const zUpdateProjectRequest = z.object({ - project: zUpdateProjectSchema, + entity: zUpdateProjectSchema, }); /** @@ -251,7 +251,7 @@ export const zUpdateStatusSchema = z.object({ * UpdateStatusRequest */ export const zUpdateStatusRequest = z.object({ - status: zUpdateStatusSchema, + entity: zUpdateStatusSchema, }); /** @@ -288,7 +288,7 @@ export const zCreateBoardResponse2 = zCreateBoardResponse; export const zDeleteBoardData = z.object({ body: z.optional(z.never()), path: z.object({ - boardId: z.int(), + pk: z.int(), }), query: z.optional(z.never()), }); @@ -301,7 +301,7 @@ export const zDeleteBoardResponse2 = zDeleteBoardResponse; export const zUpdateBoardData = z.object({ body: zUpdateBoardRequest, path: z.object({ - boardId: z.int(), + pk: z.int(), }), query: z.optional(z.never()), }); @@ -361,10 +361,10 @@ export const zCreateProjectResponse2 = zCreateProjectResponse; export const zDeleteProjectData = z.object({ body: z.optional(z.never()), - path: z.optional(z.never()), - query: z.object({ - projectId: z.int(), + path: z.object({ + pk: z.int(), }), + query: z.optional(z.never()), }); /** @@ -374,10 +374,10 @@ export const zDeleteProjectResponse2 = zDeleteProjectResponse; export const zUpdateProjectData = z.object({ body: zUpdateProjectRequest, - path: z.optional(z.never()), - query: z.object({ - projectId: z.int(), + path: z.object({ + pk: z.int(), }), + query: z.optional(z.never()), }); /** @@ -412,7 +412,7 @@ export const zCreateStatusResponse2 = zCreateStatusResponse; export const zDeleteStatusData = z.object({ body: z.optional(z.never()), path: z.object({ - statusId: z.int(), + pk: z.int(), }), query: z.optional(z.never()), }); @@ -425,7 +425,7 @@ export const zDeleteStatusResponse2 = zDeleteStatusResponse; export const zUpdateStatusData = z.object({ body: zUpdateStatusRequest, path: z.object({ - statusId: z.int(), + pk: z.int(), }), query: z.optional(z.never()), });