From cb38462164a1fde9bc4cdff8640904fb7ccefe0b Mon Sep 17 00:00:00 2001 From: bicochan Date: Thu, 19 Jun 2025 10:33:50 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EA=B7=B8=EB=A3=B9=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EB=B0=8F=20=EC=9D=B8=ED=84=B0=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=8A=A4=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=ED=8F=B4?= =?UTF-8?q?=EB=8D=94=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/api/group-service.ts} | 4 ++-- apps/cs/src/entities/group/index.ts | 6 ++++++ .../group/model/group-interface.ts} | 0 .../pages/groups/model/groups-table-columns.tsx | 2 +- apps/cs/src/pages/groups/ui/group-form.tsx | 2 +- apps/cs/src/pages/groups/ui/groups-dialog.tsx | 17 ++++++++++------- apps/cs/src/pages/groups/ui/groups-section.tsx | 4 ++-- 7 files changed, 22 insertions(+), 13 deletions(-) rename apps/cs/src/{pages/groups/api/groups-service.ts => entities/group/api/group-service.ts} (94%) create mode 100644 apps/cs/src/entities/group/index.ts rename apps/cs/src/{pages/groups/model/groups-interface.ts => entities/group/model/group-interface.ts} (100%) diff --git a/apps/cs/src/pages/groups/api/groups-service.ts b/apps/cs/src/entities/group/api/group-service.ts similarity index 94% rename from apps/cs/src/pages/groups/api/groups-service.ts rename to apps/cs/src/entities/group/api/group-service.ts index 1ead02087..fd1e879fa 100644 --- a/apps/cs/src/pages/groups/api/groups-service.ts +++ b/apps/cs/src/entities/group/api/group-service.ts @@ -6,7 +6,7 @@ import type { GroupList, GroupResponseDto, GroupFormData, -} from "../model/groups-interface"; +} from "../model/group-interface"; export class GroupsApiService implements GroupService { // 그룹 목록 조회 @@ -56,4 +56,4 @@ export class GroupsApiService implements GroupService { } } -export const GroupsApi = new GroupsApiService(); +export const GroupApi = new GroupsApiService(); diff --git a/apps/cs/src/entities/group/index.ts b/apps/cs/src/entities/group/index.ts new file mode 100644 index 000000000..da1d72a41 --- /dev/null +++ b/apps/cs/src/entities/group/index.ts @@ -0,0 +1,6 @@ +export { GroupApi } from "./api/group-service"; +export { + groupFormSchema, + type GroupFormData, + type GroupListResponseDto, +} from "./model/group-interface"; diff --git a/apps/cs/src/pages/groups/model/groups-interface.ts b/apps/cs/src/entities/group/model/group-interface.ts similarity index 100% rename from apps/cs/src/pages/groups/model/groups-interface.ts rename to apps/cs/src/entities/group/model/group-interface.ts diff --git a/apps/cs/src/pages/groups/model/groups-table-columns.tsx b/apps/cs/src/pages/groups/model/groups-table-columns.tsx index 40cd9042c..70f91efa0 100644 --- a/apps/cs/src/pages/groups/model/groups-table-columns.tsx +++ b/apps/cs/src/pages/groups/model/groups-table-columns.tsx @@ -1,6 +1,6 @@ import { type ColumnDef } from "@tanstack/react-table"; import { Button } from "@common/components"; -import { type GroupListResponseDto } from "./groups-interface"; +import { type GroupListResponseDto } from "@/entities/group"; import { MenuAuthorityDialog } from "../ui/menu-authority-dialog"; import { GroupsDialog } from "../ui/groups-dialog"; diff --git a/apps/cs/src/pages/groups/ui/group-form.tsx b/apps/cs/src/pages/groups/ui/group-form.tsx index 3d8e4498f..423718435 100644 --- a/apps/cs/src/pages/groups/ui/group-form.tsx +++ b/apps/cs/src/pages/groups/ui/group-form.tsx @@ -21,8 +21,8 @@ import { } from "@/shared/ui/form"; import { CodeSelect } from "@/entities/code"; import { SiteSelect } from "@/entities/site"; +import type { GroupFormData } from "@/entities/group"; import { RoleSelect } from "./role-select"; -import type { GroupFormData } from "../model/groups-interface"; type GroupFormProps = { form: UseFormReturn; diff --git a/apps/cs/src/pages/groups/ui/groups-dialog.tsx b/apps/cs/src/pages/groups/ui/groups-dialog.tsx index c2032eb79..d21852886 100644 --- a/apps/cs/src/pages/groups/ui/groups-dialog.tsx +++ b/apps/cs/src/pages/groups/ui/groups-dialog.tsx @@ -15,12 +15,15 @@ import { DialogTrigger, DialogClose, } from "@common/components"; -import { Form } from "@/shared/ui/form"; -import { ENDPOINT } from "@/shared/config"; +import { + GroupApi, + groupFormSchema, + type GroupFormData, +} from "@/entities/group"; import { useAlertStore, useMutationWrapper } from "@/shared/lib"; +import { ENDPOINT } from "@/shared/config"; +import { Form } from "@/shared/ui/form"; import { GroupForm } from "./group-form"; -import { GroupsApi } from "../api/groups-service"; -import { groupFormSchema, type GroupFormData } from "../model/groups-interface"; type GroupsDialogProps = { groupId?: string; @@ -39,12 +42,12 @@ const GroupsDialog = memo( const { data: group } = useQuery({ queryKey: [ENDPOINT.CMS_SERVICE.GROUPS, groupId], - queryFn: () => GroupsApi.findGroupById(groupId!), + queryFn: () => GroupApi.findGroupById(groupId!), enabled: !!groupId, }); const { mutateAsync: createGroup } = useMutationWrapper({ - mutationFn: (data: GroupFormData) => GroupsApi.saveGroup(data), + mutationFn: (data: GroupFormData) => GroupApi.saveGroup(data), onSuccess: () => { alert("등록되었습니다.", () => { setOpen(false); @@ -55,7 +58,7 @@ const GroupsDialog = memo( const { mutateAsync: updateGroup } = useMutationWrapper({ mutationFn: (data: GroupFormData) => - GroupsApi.updateGroup(groupId ?? "", data), + GroupApi.updateGroup(groupId ?? "", data), onSuccess: () => { alert("수정되었습니다.", () => { setOpen(false); diff --git a/apps/cs/src/pages/groups/ui/groups-section.tsx b/apps/cs/src/pages/groups/ui/groups-section.tsx index 723eea84d..f5d1e026b 100644 --- a/apps/cs/src/pages/groups/ui/groups-section.tsx +++ b/apps/cs/src/pages/groups/ui/groups-section.tsx @@ -4,10 +4,10 @@ import { useState } from "react"; import { keepPreviousData, useQuery } from "@tanstack/react-query"; import { getCoreRowModel, type PaginationState } from "@tanstack/react-table"; import { Button } from "@common/components"; +import { GroupApi } from "@/entities/group"; import { ENDPOINT } from "@/shared/config"; import { useDataTable } from "@/shared/lib"; import { columns } from "../model/groups-table-columns"; -import { GroupsApi } from "../api/groups-service"; import { GroupsDialog } from "./groups-dialog"; type GroupsSectionProps = { @@ -23,7 +23,7 @@ function GroupsSection({ handleSelectedGroup }: GroupsSectionProps) { const query = useQuery({ queryKey: [ENDPOINT.CMS_SERVICE.GROUPS, pagination], queryFn: () => - GroupsApi.findPageGroup({ + GroupApi.findPageGroup({ page: pagination.pageIndex, size: pagination.pageSize, }),