diff --git a/apps/st/src/components/statistics/verification/VerificationArticleManagement.tsx b/apps/st/src/components/statistics/verification/VerificationArticleManagement.tsx index e55028b64..824afd0f1 100644 --- a/apps/st/src/components/statistics/verification/VerificationArticleManagement.tsx +++ b/apps/st/src/components/statistics/verification/VerificationArticleManagement.tsx @@ -6,180 +6,183 @@ import { imrArticleColumnInfo, validationArticleColumnInfo, } from "@/entities/statistics/model/verification-article-column"; -import { - hbArticleMockData, - imrArticleMockData, - validationArticleMockData, -} from "@/entities/statistics/model/verification-article-mock"; import { Button, Input, Label, - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, Tabs, TabsContent, TabsList, TabsTrigger, } from "@common/components"; +import { CodeSelect } from "@/entities/code/ui/code-select"; +import { verificationTargetManagementApi } from "@/entities/statistics/api/verification-target-management-service"; +import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; +import { ENDPOINT } from "@/shared/config"; +import type { VerificationTargetManagementSearchParams } from "@/entities/statistics/model/verification-target-management-interface"; -const VerificationArticleManagement = () => { - const [statsItm, setStatsItm] = useState("통계항목"); - const [vrfcNm, setVrfcNm] = useState(""); +const TAB_CONFIG = { + HB: { value: "HB", label: "H-B", columnInfo: hbArticleColumnInfo }, + IMR: { value: "IMR", label: "I-MR", columnInfo: imrArticleColumnInfo }, + VV: { + value: "VV", + label: "Validation", + columnInfo: validationArticleColumnInfo, + }, +} as const; - // 각 탭별 데이터 - const [hbRowData, setHbRowData] = useState< - Record[] - >(hbArticleMockData as unknown as Record[]); +type TabValue = keyof typeof TAB_CONFIG; - const [imrRowData, setImrRowData] = useState< - Record[] - >(imrArticleMockData as unknown as Record[]); +function VerificationArticleManagement() { + const [activeTab, setActiveTab] = useState("HB"); + const [statsCd, setStatsCd] = useState(""); + const [vrfcTrgtNm, setVrfcTrgtNm] = useState(""); + const [searchParams, setSearchParams] = + useState({ + vrfcMthdCd: activeTab, + statsCd, + vrfcTrgtNm, + }); - const [validationRowData, setValidationRowData] = useState< - Record[] - >( - validationArticleMockData as unknown as Record< - string, - string | number - >[], - ); + const { data: verificationData } = useQuery({ + queryKey: [ENDPOINT.STATVERIFY_SERVICE.VRFCTGT_MNG, searchParams], + queryFn: async () => { + const response = + await verificationTargetManagementApi.getVerificationTargetManagementList( + { + vrfcMthdCd: searchParams.vrfcMthdCd, + statsCd: searchParams.statsCd || undefined, + vrfcTrgtNm: searchParams.vrfcTrgtNm || undefined, + }, + ); + return response; + }, + }); - const handleSearch = () => { - console.log("조회", { statsItm, vrfcNm }); - }; + const rowData = (verificationData?.content || []) as unknown as Record< + string, + string | number + >[]; + const columnInfo = TAB_CONFIG[activeTab].columnInfo; - const handleReset = () => { - setStatsItm("통계항목"); - setVrfcNm(""); - }; + function handleSearch() { + setSearchParams({ + vrfcMthdCd: activeTab, + statsCd, + vrfcTrgtNm, + }); + } - const handleInitialize = () => { - console.log("초기화"); - }; + function handleInitialize() { + setStatsCd(""); + setVrfcTrgtNm(""); + setSearchParams({ + vrfcMthdCd: activeTab, + statsCd: "", + vrfcTrgtNm: "", + }); + } - const handleSave = () => { - console.log("저장"); - }; + function handleTabChange(value: string) { + const newTab = value as TabValue; + setActiveTab(newTab); + setSearchParams({ + vrfcMthdCd: newTab, + statsCd, + vrfcTrgtNm, + }); + } - const handleDelete = () => { - console.log("등록"); - }; - - // 행 클릭 이벤트 핸들러 - const handleRowClick = (rowData: Record) => { + function handleRowClick(rowData: Record) { console.log("클릭한 행 데이터:", rowData); - // 여기에 필요한 로직 추가 (예: 상세 정보 표시, 수정 모달 열기 등) - }; + } + + function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + handleSearch(); + } return ( - - {/* 탭 리스트 */} + - - H-B - - - I-MR - - - Validation - + {Object.entries(TAB_CONFIG).map(([key, config]) => ( + + {config.label} + + ))}
-
+
- - -
+
+ + +
-
- - setVrfcNm(e.target.value)} - placeholder="검증명" - className="w-[20rem]" - /> -
+
+ + setVrfcTrgtNm(e.target.value)} + placeholder="검증명" + className="w-[20rem]" + /> +
-
- - +
+ + +
-
+
- {/* H-B 탭 콘텐츠 */} - - - - - {/* I-MR 탭 콘텐츠 */} - - - - - {/* Validation 탭 콘텐츠 */} - - - + {Object.entries(TAB_CONFIG).map(([key, config]) => ( + + {}} + onRowClick={handleRowClick} + isExcelImport={false} + /> + + ))}
); -}; +} export default VerificationArticleManagement; diff --git a/apps/st/src/entities/statistics/api/verification-target-management-service.ts b/apps/st/src/entities/statistics/api/verification-target-management-service.ts new file mode 100644 index 000000000..5bbcd714c --- /dev/null +++ b/apps/st/src/entities/statistics/api/verification-target-management-service.ts @@ -0,0 +1,95 @@ +import { client } from "@/shared/api"; +import { ENDPOINT } from "@/shared/config"; + +import type { + VerificationTargetManagementService, + VerificationTargetManagementSearchParams, + VerificationTargetManagementListApiResponse, + VerificationTargetManagementDetailApiResponse, + VerificationTargetManagementSaveRequest, + VerificationTargetManagementSaveApiResponse, + VerificationTargetManagementUpdateRequest, + VerificationTargetManagementUpdateApiResponse, + VerificationTargetManagementDeleteApiResponse, +} from "../model/verification-target-management-interface"; + +export class VerificationTargetManagementApiService implements VerificationTargetManagementService { + /** + * 검증 대상 목록 조회 + * @param params 검색 조건 (vrfcMthdCd, statsCd, tblNm, colNm, vrfcTrgtNm, useYn, page, size, sort) + */ + public async getVerificationTargetManagementList( + params: VerificationTargetManagementSearchParams, + ): Promise { + const response = + await client.get( + `${ENDPOINT.STATVERIFY_SERVICE.VRFCTGT_MNG}`, + { params }, + ); + return response.data; + } + + /** + * 검증 대상 상세 조회 + * @param vrfcTrgtSn 검증 대상 일련번호 + */ + public async getVerificationTargetManagementById( + vrfcTrgtSn: number, + ): Promise { + const response = + await client.get( + `${ENDPOINT.STATVERIFY_SERVICE.VRFCTGT_MNG}/${vrfcTrgtSn}`, + ); + return response.data; + } + + /** + * 검증 대상 등록 + * @param request 등록 요청 데이터 + */ + public async saveVerificationTargetManagement( + request: VerificationTargetManagementSaveRequest, + ): Promise { + const response = + await client.post( + `${ENDPOINT.STATVERIFY_SERVICE.VRFCTGT_MNG}`, + request, + ); + return response.data; + } + + /** + * 검증 대상 수정 + * @param vrfcTrgtSn 검증 대상 일련번호 + * @param request 수정 요청 데이터 + */ + public async updateVerificationTargetManagement( + vrfcTrgtSn: number, + request: VerificationTargetManagementUpdateRequest, + ): Promise { + const response = + await client.put( + `${ENDPOINT.STATVERIFY_SERVICE.VRFCTGT_MNG}/${vrfcTrgtSn}`, + request, + ); + return response.data; + } + + /** + * 검증 대상 삭제 + * @param vrfcTrgtSn 검증 대상 일련번호 + */ + public async deleteVerificationTargetManagement( + vrfcTrgtSn: number, + ): Promise { + const response = + await client.delete( + `${ENDPOINT.STATVERIFY_SERVICE.VRFCTGT_MNG}/${vrfcTrgtSn}`, + ); + return response.data; + } +} + +// 통합 인스턴스 수출 +export const verificationTargetManagementApi = + new VerificationTargetManagementApiService(); diff --git a/apps/st/src/entities/statistics/model/verification-article-column.ts b/apps/st/src/entities/statistics/model/verification-article-column.ts index d9b240fe5..b1ba02d4a 100644 --- a/apps/st/src/entities/statistics/model/verification-article-column.ts +++ b/apps/st/src/entities/statistics/model/verification-article-column.ts @@ -1,27 +1,26 @@ import { ValueType } from "realgrid"; import type { ColumnInfo } from "@rsone/components"; -/** H-B 탭 그리드 컬럼 설정 */ export const hbArticleColumnInfo: ColumnInfo = { columns: [ { - name: "statsItmNm", - fieldName: "statsItmNm", - header: { text: "통계 항목" }, + name: "statsNm", + fieldName: "statsNm", + header: { text: "통계항목" }, editable: false, sortdisable: false, }, { - name: "vrfcItmNm", - fieldName: "vrfcItmNm", - header: { text: "검증 항목" }, + name: "vrfcTrgtNm", + fieldName: "vrfcTrgtNm", + header: { text: "검증명" }, editable: false, sortdisable: false, }, { name: "tblNm", fieldName: "tblNm", - header: { text: "테이블" }, + header: { text: "테이블명" }, editable: false, sortdisable: false, }, @@ -33,8 +32,8 @@ export const hbArticleColumnInfo: ColumnInfo = { sortdisable: false, }, { - name: "percentileVal", - fieldName: "percentileVal", + name: "pctlCrtrVl", + fieldName: "pctlCrtrVl", header: { text: "Percentile" }, editable: false, sortdisable: false, @@ -42,8 +41,8 @@ export const hbArticleColumnInfo: ColumnInfo = { dataFormat: "#,##0.##", }, { - name: "aVal", - fieldName: "aVal", + name: "scopCntCntVl", + fieldName: "scopCntCntVl", header: { text: "A" }, editable: false, sortdisable: false, @@ -51,8 +50,8 @@ export const hbArticleColumnInfo: ColumnInfo = { dataFormat: "#,##0.###", }, { - name: "cVal", - fieldName: "cVal", + name: "thrsCntVl", + fieldName: "thrsCntVl", header: { text: "C" }, editable: false, sortdisable: false, @@ -60,8 +59,8 @@ export const hbArticleColumnInfo: ColumnInfo = { dataFormat: "#,##0.###", }, { - name: "regNm", - fieldName: "regNm", + name: "rgtrNm", + fieldName: "rgtrNm", header: { text: "등록자" }, editable: false, sortdisable: false, @@ -69,37 +68,36 @@ export const hbArticleColumnInfo: ColumnInfo = { { name: "regDt", fieldName: "regDt", - header: { text: "등록일" }, + header: { text: "등록일시" }, editable: false, sortdisable: false, }, ], columnLayout: [ - "statsItmNm", - "vrfcItmNm", + "statsNm", + "vrfcTrgtNm", "tblNm", "colNm", - "percentileVal", - "aVal", - "cVal", - "regNm", + "pctlCrtrVl", + "scopCntCntVl", + "thrsCntVl", + "rgtrNm", "regDt", ], }; -/** I-MR 탭 그리드 컬럼 설정 */ export const imrArticleColumnInfo: ColumnInfo = { columns: [ { - name: "statsItmNm", - fieldName: "statsItmNm", - header: { text: "통계 항목" }, + name: "statsNm", + fieldName: "statsNm", + header: { text: "통계항목" }, editable: false, sortdisable: false, }, { - name: "vrfcNm", - fieldName: "vrfcNm", + name: "vrfcTrgtNm", + fieldName: "vrfcTrgtNm", header: { text: "검증명" }, editable: false, sortdisable: false, @@ -119,8 +117,17 @@ export const imrArticleColumnInfo: ColumnInfo = { sortdisable: false, }, { - name: "regNm", - fieldName: "regNm", + name: "ipcrCntVl", + fieldName: "ipcrCntVl", + header: { text: "μ" }, + editable: false, + sortdisable: false, + valueType: ValueType.NUMBER, + dataFormat: "#,##0.###", + }, + { + name: "rgtrNm", + fieldName: "rgtrNm", header: { text: "등록자" }, editable: false, sortdisable: false, @@ -128,34 +135,34 @@ export const imrArticleColumnInfo: ColumnInfo = { { name: "regDt", fieldName: "regDt", - header: { text: "등록일" }, + header: { text: "등록일시" }, editable: false, sortdisable: false, }, ], - columnLayout: ["statsItmNm", "vrfcNm", "tblNm", "colNm", "regNm", "regDt"], + columnLayout: [ + "statsNm", + "vrfcTrgtNm", + "tblNm", + "colNm", + "ipcrCntVl", + "rgtrNm", + "regDt", + ], }; -/** Validation 탭 그리드 컬럼 설정 */ export const validationArticleColumnInfo: ColumnInfo = { columns: [ { - name: "no", - fieldName: "no", - header: { text: "순번" }, + name: "statsNm", + fieldName: "statsNm", + header: { text: "통계항목" }, editable: false, sortdisable: false, }, { - name: "statsItmNm", - fieldName: "statsItmNm", - header: { text: "통계 항목" }, - editable: false, - sortdisable: false, - }, - { - name: "vrfcNm", - fieldName: "vrfcNm", + name: "vrfcTrgtNm", + fieldName: "vrfcTrgtNm", header: { text: "검증명" }, editable: false, sortdisable: false, @@ -175,35 +182,19 @@ export const validationArticleColumnInfo: ColumnInfo = { sortdisable: false, }, { - name: "cmpTblNm", - fieldName: "cmpTblNm", - header: { text: "비교 테이블명" }, + name: "rgtrNm", + fieldName: "rgtrNm", + header: { text: "등록자" }, editable: false, sortdisable: false, }, { - name: "cmpColNm", - fieldName: "cmpColNm", - header: { text: "비교 컬럼명" }, - editable: false, - sortdisable: false, - }, - { - name: "bscRul", - fieldName: "bscRul", - header: { text: "기본규칙" }, + name: "regDt", + fieldName: "regDt", + header: { text: "등록일시" }, editable: false, sortdisable: false, }, ], - columnLayout: [ - "no", - "statsItmNm", - "vrfcNm", - "tblNm", - "colNm", - "cmpTblNm", - "cmpColNm", - "bscRul", - ], + columnLayout: ["statsNm", "vrfcTrgtNm", "tblNm", "colNm", "rgtrNm", "regDt"], }; diff --git a/apps/st/src/entities/statistics/model/verification-target-management-interface.ts b/apps/st/src/entities/statistics/model/verification-target-management-interface.ts new file mode 100644 index 000000000..6f2d94246 --- /dev/null +++ b/apps/st/src/entities/statistics/model/verification-target-management-interface.ts @@ -0,0 +1,105 @@ +import type { PageableList } from "@/shared/model"; +import type { ApiResponse } from "./statistics-interface"; + +// 검증 대상 관리 응답 DTO +export interface VerificationTargetManagementResponse { + vrfcTrgtSn: number; // 검증 대상 일련번호 + vrfcMthdCd: string; // 검증 방법 코드 + vrfcMthdNm: string; // 검증 방법 명 + statsCd: string; // 통계 코드 + statsNm: string; // 통계 항목 명 + schmNm: string; // 스키마 명 + tblNm: string; // 테이블 명 + colNm: string; // 컬럼 명 + pkColNm: string; // pk 컬럼 명 + ipcrCntVl: number | null; // 중요도 개수 값 (mu) + pctlCrtrVl: number | null; // 백분위 기준 값 (percentile) + scopCntCntVl: number | null; // 범위 조정 개수 값 (A) + thrsCntVl: number | null; // 임계 개수 값 (C) + useYn: string; // 사용 여부 + vrfcTrgtNm: string; // 검증대상명 + rgtr: string | null; // 등록자 ID + regDt: string | null; // 등록 일시 + mdfr: string | null; // 수정자 ID + rgtrNm: string | null; // 등록자명 + mdfrNm: string | null; // 수정자명 + mdfcn: string | null; // 수정 일시 +} + +// 검증 대상 관리 검색 DTO +export interface VerificationTargetManagementSearchParams { + vrfcMthdCd?: string; // 검증 방법 코드 + statsCd?: string; // 통계 코드 + tblNm?: string; // 테이블 명 + colNm?: string; // 컬럼 명 + vrfcTrgtNm?: string; // 검증대상명 + useYn?: string; // 사용 여부 + page?: number; // 페이지 번호 (0부터 시작) + size?: number; // 페이지 크기 + sort?: string; // 정렬 조건 (예: "vrfcTrgtSn,desc") +} + +// 검증 대상 관리 저장 요청 DTO +export interface VerificationTargetManagementSaveRequest { + vrfcMthdCd: string; // 검증 방법 코드 (필수, 최대 10자) + statsCd: string; // 통계 코드 (필수, 최대 10자) + schmNm: string; // 스키마 명 (필수, 최대 150자) + tblNm: string; // 테이블 명 (필수, 최대 150자) + colNm: string; // 컬럼 명 (필수, 최대 150자) + pkColNm: string; // pk 컬럼 명 (필수, 최대 150자) + ipcrCntVl?: number | null; // 중요도 개수 값 (mu) + pctlCrtrVl?: number | null; // 백분위 기준 값 (percentile) + scopCntCntVl?: number | null; // 범위 조정 개수 값 (A) + thrsCntVl?: number | null; // 임계 개수 값 (C) + useYn?: string; // 사용 여부 (Y/N, 최대 1자) + vrfcTrgtNm?: string; // 검증대상명 (최대 150자) +} + +// 검증 대상 관리 수정 요청 DTO +export interface VerificationTargetManagementUpdateRequest { + vrfcMthdCd: string; // 검증 방법 코드 (필수, 최대 10자) + statsCd: string; // 통계 코드 (필수, 최대 10자) + schmNm: string; // 스키마 명 (필수, 최대 150자) + tblNm: string; // 테이블 명 (필수, 최대 150자) + colNm: string; // 컬럼 명 (필수, 최대 150자) + pkColNm: string; // pk 컬럼 명 (필수, 최대 150자) + ipcrCntVl?: number | null; // 중요도 개수 값 (mu) + pctlCrtrVl?: number | null; // 백분위 기준 값 (percentile) + scopCntCntVl?: number | null; // 범위 조정 개수 값 (A) + thrsCntVl?: number | null; // 임계 개수 값 (C) + useYn?: string; // 사용 여부 (Y/N, 최대 1자) + vrfcTrgtNm?: string; // 검증대상명 (최대 150자) +} + +// API 응답 타입 +export type VerificationTargetManagementListApiResponse = + PageableList; +export type VerificationTargetManagementDetailApiResponse = + ApiResponse; +export type VerificationTargetManagementSaveApiResponse = ApiResponse; +export type VerificationTargetManagementUpdateApiResponse = ApiResponse; +export type VerificationTargetManagementDeleteApiResponse = ApiResponse; + +// 서비스 인터페이스 +export interface VerificationTargetManagementService { + getVerificationTargetManagementList( + params: VerificationTargetManagementSearchParams, + ): Promise; + + getVerificationTargetManagementById( + vrfcTrgtSn: number, + ): Promise; + + saveVerificationTargetManagement( + request: VerificationTargetManagementSaveRequest, + ): Promise; + + updateVerificationTargetManagement( + vrfcTrgtSn: number, + request: VerificationTargetManagementUpdateRequest, + ): Promise; + + deleteVerificationTargetManagement( + vrfcTrgtSn: number, + ): Promise; +} diff --git a/apps/st/src/shared/config/api.ts b/apps/st/src/shared/config/api.ts index c8ff0983e..1b9cf74ec 100644 --- a/apps/st/src/shared/config/api.ts +++ b/apps/st/src/shared/config/api.ts @@ -3,73 +3,76 @@ import { PROXY_HOST } from "./env"; export const BASE_URL = `${PROXY_HOST}/server`; export const ENDPOINT = { - ATTACH_SERVICE: { - TUS_UPLOAD: "/attach-service/api/v1/tus/upload", - EDITOR_UPLOAD: "/attach-service/api/v1/upload/editor", - IMAGES: "/attach-service/api/v1/images", - MOVIE_THUMBNAIL: "/attach-service/api/v1/movie/thumbnail", - ATTACHMENTS: "/attach-service/api/v1/atfl/attachments", - DOWNLOAD: "/attach-service/api/v1/atflcd/download", - STREAM_VIDEO: "/attach-service/api/v1/stream/video", - }, - USER_SERVICE: { - LOGIN: "/user-service/login", - USERS: "/user-service/api/v1/users", - SILENT_REFRESH: "/user-service/api/v1/users/token/refresh", - AUTHORIZATIONS: "/user-service/api/v1/authorizations", - ROLE_AUTHORIZATIONS: "/user-service/api/v1/role-authorizations", - ROLES: "/user-service/api/v1/roles", - LOGINLOG: "/user-service/api/v1/login-logs", - PRIVACYLOG: "/user-service//api/v1/prvc-inq-logs", - }, - CMS_SERVICE: { - DASHBOARD: "/cms-service/api/v1/dashboard", - SITES: "/cms-service/api/v1/sites", - IPS: "/cms-service/api/v1/site-ips", - DOMAINS: "/cms-service/api/v1/site-dmns", - POSTINGS: "/cms-service/api/v1/site-pstgs", - CODE: "/cms-service/api/v1/code/cache", - MENUS: "/cms-service/api/v1/menus", - MENU_ROLES: "/cms-service/api/v1/menu-roles", - MENU_AUTHRTS: "/cms-service/api/v1/menu-authrts", - MENU_TEMPORARY_STORAGE: "/cms-service/api/v1/menu-tmpr-strg", - MENU_HISTORY: "/cms-service/api/v1/menu-hstry", - CONTENTS: "/cms-service/api/v1/contents", - CONTENTS_DETAILS: "/cms-service/api/v1/contents-details", - ORGANIZATIONS: "/cms-service/api/v1/ognzs", - USER_ORGANIZATION: "/cms-service/api/v1/user-ognz", - IMAGES: "/cms-service/api/v1/images", - BANNERS: "/cms-service/api/v1/bnrs", - TEMPLATE: "/cms-service/api/v1/tmplt", - TERMS: "/cms-service/api/v1/trms", - LWPO_CODE: "/cms-service/api/v1/lwpo-cds", - UP_CODE: "/cms-service/api/v1/up-codes", - POPUPS: "/cms-service/api/v1/popups", - SCHEDULES: "/cms-service/api/v1/schdls", - SURVEY: "/cms-service/api/v1/srvy", - SURVEY_QUESTION: "/cms-service/api/v1/srvy-qitem", - SURVEY_ARTICLE: "/cms-service/api/v1/srvy-artcl", - ZIPS: "/cms-service/api/v1/zips", - GROUPS: "/cms-service/api/v1/groups", - GROUP_USERS: "/cms-service/api/v1/group-users", - MANAGER_IP: "/cms-service/api/v1/mgrip", - APILOG: "/cms-service/api/v1/api-logs", - SITE_AUTHORITY: "/cms-service/api/v1/site-authrt", - CONNECTION_LOG: "/cms-service/api/v1/cntnlog", - }, - BOARD_SERVICE: { - BBS: "/board-service/api/v1/bbs", - BBS_TEMPLATES: "/board-service/api/v1/bbsTmplt", - POSTS: "/board-service/api/v1/posts", - POSTS_COMMENTS: "/board-service/api/v1/posts-cmnts", - POST_EVALUATION: "/board-service/api/v1/pstEvl", - }, - ST_SERVICE: { - COMMON: "/st-management-service/api/v1/common", - INPUT: "/st-input-service/api/v1/input", - REVIEW: "/st-management-service/api/v1/review", - INPUTCOMMON: "/st-input-service/api/v1/common", - } + ATTACH_SERVICE: { + TUS_UPLOAD: "/attach-service/api/v1/tus/upload", + EDITOR_UPLOAD: "/attach-service/api/v1/upload/editor", + IMAGES: "/attach-service/api/v1/images", + MOVIE_THUMBNAIL: "/attach-service/api/v1/movie/thumbnail", + ATTACHMENTS: "/attach-service/api/v1/atfl/attachments", + DOWNLOAD: "/attach-service/api/v1/atflcd/download", + STREAM_VIDEO: "/attach-service/api/v1/stream/video", + }, + USER_SERVICE: { + LOGIN: "/user-service/login", + USERS: "/user-service/api/v1/users", + SILENT_REFRESH: "/user-service/api/v1/users/token/refresh", + AUTHORIZATIONS: "/user-service/api/v1/authorizations", + ROLE_AUTHORIZATIONS: "/user-service/api/v1/role-authorizations", + ROLES: "/user-service/api/v1/roles", + LOGINLOG: "/user-service/api/v1/login-logs", + PRIVACYLOG: "/user-service//api/v1/prvc-inq-logs", + }, + CMS_SERVICE: { + DASHBOARD: "/cms-service/api/v1/dashboard", + SITES: "/cms-service/api/v1/sites", + IPS: "/cms-service/api/v1/site-ips", + DOMAINS: "/cms-service/api/v1/site-dmns", + POSTINGS: "/cms-service/api/v1/site-pstgs", + CODE: "/cms-service/api/v1/code/cache", + MENUS: "/cms-service/api/v1/menus", + MENU_ROLES: "/cms-service/api/v1/menu-roles", + MENU_AUTHRTS: "/cms-service/api/v1/menu-authrts", + MENU_TEMPORARY_STORAGE: "/cms-service/api/v1/menu-tmpr-strg", + MENU_HISTORY: "/cms-service/api/v1/menu-hstry", + CONTENTS: "/cms-service/api/v1/contents", + CONTENTS_DETAILS: "/cms-service/api/v1/contents-details", + ORGANIZATIONS: "/cms-service/api/v1/ognzs", + USER_ORGANIZATION: "/cms-service/api/v1/user-ognz", + IMAGES: "/cms-service/api/v1/images", + BANNERS: "/cms-service/api/v1/bnrs", + TEMPLATE: "/cms-service/api/v1/tmplt", + TERMS: "/cms-service/api/v1/trms", + LWPO_CODE: "/cms-service/api/v1/lwpo-cds", + UP_CODE: "/cms-service/api/v1/up-codes", + POPUPS: "/cms-service/api/v1/popups", + SCHEDULES: "/cms-service/api/v1/schdls", + SURVEY: "/cms-service/api/v1/srvy", + SURVEY_QUESTION: "/cms-service/api/v1/srvy-qitem", + SURVEY_ARTICLE: "/cms-service/api/v1/srvy-artcl", + ZIPS: "/cms-service/api/v1/zips", + GROUPS: "/cms-service/api/v1/groups", + GROUP_USERS: "/cms-service/api/v1/group-users", + MANAGER_IP: "/cms-service/api/v1/mgrip", + APILOG: "/cms-service/api/v1/api-logs", + SITE_AUTHORITY: "/cms-service/api/v1/site-authrt", + CONNECTION_LOG: "/cms-service/api/v1/cntnlog", + }, + BOARD_SERVICE: { + BBS: "/board-service/api/v1/bbs", + BBS_TEMPLATES: "/board-service/api/v1/bbsTmplt", + POSTS: "/board-service/api/v1/posts", + POSTS_COMMENTS: "/board-service/api/v1/posts-cmnts", + POST_EVALUATION: "/board-service/api/v1/pstEvl", + }, + ST_SERVICE: { + COMMON: "/st-management-service/api/v1/common", + INPUT: "/st-input-service/api/v1/input", + REVIEW: "/st-management-service/api/v1/review", + INPUTCOMMON: "/st-input-service/api/v1/common", + }, + STATVERIFY_SERVICE: { + VRFCTGT_MNG: "/statverify-service/api/v1/vrfc-trgt-mng", + }, }; export const JWT_EXPIRATION_TIME = 1800000;