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, }),