feat: implement unified schema mapper, enhance UI/UX with responsive design, and optimize asset log logic
This commit is contained in:
74
src/core/schema.ts
Normal file
74
src/core/schema.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
* ITAM 통합 스키마 매퍼 (Unified Schema Mapper)
|
||||
*
|
||||
* key: 애플리케이션 내부 로직에서 사용하는 속성명
|
||||
* db: MySQL 데이터베이스 컬럼명
|
||||
* ui: 사용자에게 보여지는 UI 레이블
|
||||
*/
|
||||
|
||||
export const ASSET_SCHEMA = {
|
||||
// ─── 공통 필드 (Common) ───
|
||||
ID: { key: 'id', db: 'id', ui: 'ID' },
|
||||
TYPE: { key: 'type', db: 'type', ui: '자산유형' },
|
||||
CORP: { key: '법인', db: 'corp', ui: '구매법인' },
|
||||
ASSET_CODE: { key: '자산코드', db: 'asset_code', ui: '자산번호' },
|
||||
PURCHASE_YM: { key: '구매연월', db: 'purchase_date', ui: '구매연월' },
|
||||
ORG: { key: '현사용조직', db: 'current_org', ui: '현 사용조직' },
|
||||
PREV_ORG: { key: '이전사용조직', db: 'prev_org', ui: '이전 사용조직' },
|
||||
LOCATION: { key: '위치', db: 'location', ui: '설치위치' },
|
||||
MANAGER_MAIN: { key: '담당자_정', db: 'manager_main', ui: '담당자' },
|
||||
MANAGER_SUB: { key: '담당자_부', db: 'manager_sub', ui: '담당자(부)' },
|
||||
PRICE: { key: '금액', db: 'price', ui: '도입금액' },
|
||||
VENDOR: { key: '납품업체', db: 'vendor', ui: '납품업체' },
|
||||
DOC_NAME: { key: '품의서명', db: 'doc_name', ui: '품의서' },
|
||||
REMARKS: { key: '비고', db: 'remarks', ui: '비고' },
|
||||
|
||||
// ─── 하드웨어 상세 (Hardware) ───
|
||||
USER: { key: '사용자', db: 'purpose', ui: '사용자' },
|
||||
MODEL: { key: '모델명', db: 'model_name', ui: '모델명' },
|
||||
MAINBOARD: { key: '메인보드', db: 'mainboard', ui: '메인보드' },
|
||||
OS: { key: 'OS', db: 'os', ui: '운영체제' },
|
||||
CPU: { key: 'CPU', db: 'cpu', ui: 'CPU' },
|
||||
RAM: { key: 'RAM', db: 'ram', ui: 'RAM' },
|
||||
STORAGE1: { key: 'SSD1', db: 'storage1', ui: 'Storage 1' },
|
||||
STORAGE2: { key: 'SSD2', db: 'storage2', ui: 'Storage 2' },
|
||||
IP_ADDR: { key: 'IP주소', db: 'ip_address', ui: 'IP 주소 1' },
|
||||
IP_ADDR2: { key: 'IP2', db: 'ip2', ui: 'IP 주소 2' },
|
||||
MAC_ADDR: { key: 'MACaddress', db: 'mac_address', ui: 'MAC 주소' },
|
||||
STATUS: { key: '현재상태', db: 'status', ui: '현재상태' },
|
||||
STORE_LOC: { key: '보관위치', db: 'storage_location',ui: '보관위치' },
|
||||
|
||||
// ─── 소프트웨어/클라우드 상세 (SW/Cloud) ───
|
||||
PRODUCT: { key: '제품명', db: 'product_name', ui: '제품/서비스명' },
|
||||
PLATFORM: { key: '플랫폼명', db: 'platform_name', ui: '운영 플랫폼' },
|
||||
LICENSE_TYPE: { key: '라이선스유형', db: 'license_type', ui: '라이선스 유형' },
|
||||
LICENSE_KEY: { key: '라이선스키', db: 'license_key', ui: '라이선스 키' },
|
||||
QTY: { key: '수량', db: 'quantity', ui: '보유수량' },
|
||||
EXPIRY: { key: '만료일', db: 'expiry_date', ui: '만료/구독일' },
|
||||
ACCOUNT: { key: '계정명', db: 'account_name', ui: '계정(이메일)' },
|
||||
PAY_METHOD: { key: '결제수단', db: 'pay_method', ui: '결제수단' },
|
||||
PAY_DAY: { key: '결제일', db: 'pay_day', ui: '결제일' },
|
||||
CARD_NUM: { key: '연결카드번호', db: 'card_num', ui: '카드번호(뒷4자리)' },
|
||||
BILLING: { key: '당월청구액', db: 'monthly_fee', ui: '당월 청구액' }
|
||||
};
|
||||
|
||||
/**
|
||||
* 용어 사전 (UI 텍스트 전용)
|
||||
*/
|
||||
export const UI_TEXT = {
|
||||
ACTION: {
|
||||
ADD: '신규 등록',
|
||||
EDIT: '수정',
|
||||
SAVE: '저장',
|
||||
DELETE: '삭제',
|
||||
CANCEL: '취소',
|
||||
CLOSE: '닫기',
|
||||
HISTORY_ADD: '이력 추가',
|
||||
RESET_FILTER: '필터 초기화'
|
||||
},
|
||||
MESSAGES: {
|
||||
CONFIRM_DELETE: '정말로 삭제하시겠습니까?',
|
||||
SAVE_SUCCESS: '성공적으로 저장되었습니다.',
|
||||
NO_DATA: '검색 결과가 없습니다.'
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user