From af849ba8ec7d914583568217a1fe6d8d5bf7ba66 Mon Sep 17 00:00:00 2001 From: choibk Date: Mon, 26 Jan 2026 00:44:35 +0900 Subject: [PATCH] feat(cctv): optimize real-time monitoring immediate video feed and layout sync --- docs/{ => design}/DIRECTORY_STRUCTURE.md | 7 +- .../MODULAR_ARCHITECTURE_GUIDE.md | 0 .../asset/ASSET_CLASSIFICATION_GUIDE.md | 49 ++ docs/{ => modules/cctv}/CCTV_MODULE_GUIDE.md | 0 .../license}/LICENSE_MANAGER_MANUAL.md | 0 docs/{ => operation}/DEPLOYMENT_GUIDE.md | 0 docs/{ => operation}/ENVIRONMENT_SETUP.md | 0 docs/{ => operation}/LICENSE_SERVER_SETUP.md | 0 docs/{ => operation}/PRODUCTION_DEPLOYMENT.md | 0 docs/{ => roadmap}/IMPLEMENTATION_DETAILS.md | 0 docs/roadmap/INTEGRATED_ROADMAP.md | 231 +++++++++ docs/roadmap/image-1.png | Bin 0 -> 47404 bytes docs/roadmap/image-2.png | Bin 0 -> 65442 bytes docs/roadmap/image-3.png | Bin 0 -> 59515 bytes docs/roadmap/image-4.png | Bin 0 -> 141456 bytes docs/roadmap/image.png | Bin 0 -> 197736 bytes docs/{ => roadmap}/task.md | 0 .../Gitea Operational Rules.md} | 0 docs/{ => version_control}/version manage.md | 0 server/index.js | 165 +++++-- server/modules/asset/routes.js | 73 ++- server/modules/cctv/routes.js | 106 ++++- server/modules/cctv/streamRelay.js | 9 +- server/routes/auth.js | 112 +++-- server/routes/system.js | 4 +- server/utils/cryptoUtil.js | 7 + src/core/types.ts | 1 + .../asset/components/AssetBasicInfo.tsx | 268 +++++++++-- src/modules/asset/pages/AssetListPage.tsx | 3 +- src/modules/asset/pages/AssetRegisterPage.tsx | 34 ++ src/modules/cctv/module.tsx | 7 +- .../cctv/pages/CameraManagementPage.tsx | 392 +++++++++++++++ src/modules/cctv/pages/CctvSettingsPage.tsx | 147 ++++++ src/modules/cctv/pages/MonitoringPage.tsx | 445 +++++++++--------- src/platform/pages/BasicSettingsPage.tsx | 66 +-- src/platform/pages/GeneralPreferencesPage.tsx | 82 +++- src/platform/pages/UserManagementPage.tsx | 64 ++- src/platform/styles/global.css | 122 +++++ src/shared/api/assetApi.ts | 42 +- src/shared/auth/AuthContext.tsx | 59 ++- src/shared/context/SystemContext.tsx | 7 +- src/system/pages/LicensePage.tsx | 19 +- src/widgets/layout/MainLayout.css | 14 +- src/widgets/layout/MainLayout.tsx | 7 +- 44 files changed, 2047 insertions(+), 495 deletions(-) rename docs/{ => design}/DIRECTORY_STRUCTURE.md (87%) rename docs/{ => design}/MODULAR_ARCHITECTURE_GUIDE.md (100%) create mode 100644 docs/modules/asset/ASSET_CLASSIFICATION_GUIDE.md rename docs/{ => modules/cctv}/CCTV_MODULE_GUIDE.md (100%) rename docs/{ => modules/license}/LICENSE_MANAGER_MANUAL.md (100%) rename docs/{ => operation}/DEPLOYMENT_GUIDE.md (100%) rename docs/{ => operation}/ENVIRONMENT_SETUP.md (100%) rename docs/{ => operation}/LICENSE_SERVER_SETUP.md (100%) rename docs/{ => operation}/PRODUCTION_DEPLOYMENT.md (100%) rename docs/{ => roadmap}/IMPLEMENTATION_DETAILS.md (100%) create mode 100644 docs/roadmap/INTEGRATED_ROADMAP.md create mode 100644 docs/roadmap/image-1.png create mode 100644 docs/roadmap/image-2.png create mode 100644 docs/roadmap/image-3.png create mode 100644 docs/roadmap/image-4.png create mode 100644 docs/roadmap/image.png rename docs/{ => roadmap}/task.md (100%) rename docs/{git 운영 규칙.md => version_control/Gitea Operational Rules.md} (100%) rename docs/{ => version_control}/version manage.md (100%) create mode 100644 src/modules/cctv/pages/CameraManagementPage.tsx create mode 100644 src/modules/cctv/pages/CctvSettingsPage.tsx diff --git a/docs/DIRECTORY_STRUCTURE.md b/docs/design/DIRECTORY_STRUCTURE.md similarity index 87% rename from docs/DIRECTORY_STRUCTURE.md rename to docs/design/DIRECTORY_STRUCTURE.md index ad15fd8..dd2c9bd 100644 --- a/docs/DIRECTORY_STRUCTURE.md +++ b/docs/design/DIRECTORY_STRUCTURE.md @@ -57,8 +57,11 @@ smartims/ ## 4. 기타 주요 디렉토리 - `docs/`: - - `MODULAR_ARCHITECTURE_GUIDE.md`: 모듈화 상세 설계 원칙. - - `DEPLOYMENT_GUIDE.md`: 서버 배포 방법. + - `operation/`: 설치 및 운영 관련 가이드 (환경 설정, 배포, 라이선스 서버 등) + - `modules/`: 모듈별 상세 기술 및 사용자 가이드 (자산 분류 기준 등) + - `design/`: 플랫폼 설계 원칙, 시스템 아키텍처 및 디렉토리 구조 + - `version_control/`: Git 운영 정책 및 버전 관리 규정 + - `roadmap/`: 프로젝트 통합 마스터 플랜 및 단계별 로드맵 (`INTEGRATED_ROADMAP.md`) - `tools/`: - 라이선스 관리 도구, 데이터 마이그레이션 스크립트 등 개발 보조 도구 포함. diff --git a/docs/MODULAR_ARCHITECTURE_GUIDE.md b/docs/design/MODULAR_ARCHITECTURE_GUIDE.md similarity index 100% rename from docs/MODULAR_ARCHITECTURE_GUIDE.md rename to docs/design/MODULAR_ARCHITECTURE_GUIDE.md diff --git a/docs/modules/asset/ASSET_CLASSIFICATION_GUIDE.md b/docs/modules/asset/ASSET_CLASSIFICATION_GUIDE.md new file mode 100644 index 0000000..d2f3760 --- /dev/null +++ b/docs/modules/asset/ASSET_CLASSIFICATION_GUIDE.md @@ -0,0 +1,49 @@ +# 📋 자산 분류 및 등록 기준 가이드 (Asset Classification Guide) + +이 문서는 SmartIMS 자산 관리 시스템에서 각 메뉴(카테고리)별로 등록해야 할 자산의 구분 기준과 대표적인 품목들을 정의합니다. 자산 등록 시 올바른 카테고리를 선택하는 기준으로 활용하시기 바랍니다. + +--- + +## 1. 🏗️ 시설물 관리 (Facilities) +**구분**: 생산 설비, 건축물 부속 설비 등 사업장의 유지 운영에 필요한 규모가 큰 고정 자산 +- **생산 설비**: CNC 머시닝 센터, 사출 성형기, 프레스기, 산업용 로봇, 생산 라인 컨베이어 등 +- **유틸리티 설비**: 공기 압축기(컴프레셔), 변압기, 배전반, 산업용 보일러, 항온항습기, 대형 펌프 등 +- **건축 부속**: 소방 설비 시스템, 보안 시스템(CCTV 본체 등), 엘리베이터, 중앙 제어 조명 등 + +## 2. 🔧 공구 관리 (Tools) +**구분**: 생산 및 정비 작업에 사용되는 도구 중 비교적 내구성이 있고 개별 관리가 필요한 품목 +- **전동/에어 공구**: 충전 드릴, 그라인더, 임팩트 렌치, 에어 커터, 전기 톱 등 +- **수공구 및 일반**: 토크 렌치, 대형 바이스, 특수 렌치 세트, 공구함 등 +- **치공구/금형**: 전용 지그(Jig), 성형 금형(Die), 툴 홀더, 척(Chuck) 등 + +## 3. 📏 계측기 관리 (Instruments) +**구분**: 정밀도 유지가 중요하며 법적 또는 사내 규정에 따라 **정기적인 검교정(Calibration)**이 필요한 장비 +- **길이/정밀 측정**: 버니어 캘리퍼스, 마이크로미터, 다이얼 게이지, 하이트 게이지, 3차원 측정기 등 +- **전기/전자 측정**: 디지털 멀티미터, 오실로스코프, 절연 저항계, 전력 분석기 등 +- **물리/환경 측정**: 정밀 저울, 온도/습도 기록계, 압력계, 소음계, 가스 분석기 등 + +## 4. 🚚 차량/운반 (Vehicles) +**구분**: 인원 이동, 자재 수송 및 상하역 작업을 수행하는 모빌리티 장비 +- **운반/하역 장비**: 지게차(Forklift), 전동 스태커, 핸드 자키, 전동 대차(Cart) 등 +- **사내외 차량**: 법인 승용차, 화물 트럭(1톤~5톤), 통근 버스 등 +- **특수 장비**: 고소 작업대, 이동식 크레인, 트랙터 등 + +## 5. 💻 일반 자산 (General Assets) +**구분**: 사무 환경 조성 및 지원 업무에 사용되는 집기류 및 IT 기기 +- **IT/사무 기기**: PC 본체, 모니터, 노트북, 복합기, 레이저 프린터, 서버 서버랙 등 +- **사무 가구**: 책상, 사무용 의자, 회의용 테이블, 문서 보관함(캐비닛), 금고 등 +- **생활/환경 비품**: 공용 냉장고, 정수기, 공기 청정기, 사내 공지용 TV(DID) 등 + +## 6. 📦 소모품 관리 (Consumables) +**구분**: 사용 시 가치가 즉시 소멸되거나 교체 주기가 매우 짧아 재고 수량 관리가 중요한 물품 +- **가공 소모품**: 드릴 비트, 엔드밀, 절단석, 사포, 용접봉 등 +- **유지보수 부자재**: 산업용 오일(윤활유), 에어 필터, 구동 벨트, 베어링, 전구/LED 램프 등 +- **사무/안전 용품**: 프린터 토너/카트리지, 복사 용지, 장갑, 마스크, 안전화 등 + +--- + +## 💡 등록 시 주의사항 +1. **관리번호 자동 생성**: 각 카테고리 선택 시 설정된 규칙(예: `FAC-2024-001`)에 따라 관리번호가 부여됩니다. +2. **검교정 대상 확인**: 계측기 카테고리 품목은 등록 시 반드시 **교정 주기**를 설정하여 알림을 관리하십시오. +3. **위치 정보**: 자산 이동 발생 시 시스템의 **설치 위치** 정보를 업데이트하여 실물과 일치시키십시오. +4. **사진 첨부**: 외관 확인 및 식별을 위해 자산 정면과 명판(Nameplate) 사진을 함께 등록할 것을 권장합니다. diff --git a/docs/CCTV_MODULE_GUIDE.md b/docs/modules/cctv/CCTV_MODULE_GUIDE.md similarity index 100% rename from docs/CCTV_MODULE_GUIDE.md rename to docs/modules/cctv/CCTV_MODULE_GUIDE.md diff --git a/docs/LICENSE_MANAGER_MANUAL.md b/docs/modules/license/LICENSE_MANAGER_MANUAL.md similarity index 100% rename from docs/LICENSE_MANAGER_MANUAL.md rename to docs/modules/license/LICENSE_MANAGER_MANUAL.md diff --git a/docs/DEPLOYMENT_GUIDE.md b/docs/operation/DEPLOYMENT_GUIDE.md similarity index 100% rename from docs/DEPLOYMENT_GUIDE.md rename to docs/operation/DEPLOYMENT_GUIDE.md diff --git a/docs/ENVIRONMENT_SETUP.md b/docs/operation/ENVIRONMENT_SETUP.md similarity index 100% rename from docs/ENVIRONMENT_SETUP.md rename to docs/operation/ENVIRONMENT_SETUP.md diff --git a/docs/LICENSE_SERVER_SETUP.md b/docs/operation/LICENSE_SERVER_SETUP.md similarity index 100% rename from docs/LICENSE_SERVER_SETUP.md rename to docs/operation/LICENSE_SERVER_SETUP.md diff --git a/docs/PRODUCTION_DEPLOYMENT.md b/docs/operation/PRODUCTION_DEPLOYMENT.md similarity index 100% rename from docs/PRODUCTION_DEPLOYMENT.md rename to docs/operation/PRODUCTION_DEPLOYMENT.md diff --git a/docs/IMPLEMENTATION_DETAILS.md b/docs/roadmap/IMPLEMENTATION_DETAILS.md similarity index 100% rename from docs/IMPLEMENTATION_DETAILS.md rename to docs/roadmap/IMPLEMENTATION_DETAILS.md diff --git a/docs/roadmap/INTEGRATED_ROADMAP.md b/docs/roadmap/INTEGRATED_ROADMAP.md new file mode 100644 index 0000000..11aba7d --- /dev/null +++ b/docs/roadmap/INTEGRATED_ROADMAP.md @@ -0,0 +1,231 @@ +# 🚀 SMART IMS 통합 프로젝트 로드맵 (Integrated Master Plan) + +**프로젝트명:** SOKUREE Platform - Smart Integrated Management System +**최초 작성일:** 2026-01-25 +**최근 업데이트:** 2026-01-25 +**버전:** v0.4.1.0 + +--- + +## 📌 개요 (Overview) +본 문서는 SOKUREE 플랫폼의 핵심 성능 개선(Platform Review)과 스마트 관리 모듈(Smart Module Implementation Plan)의 구현 계획을 통합하여, 기능 구현 단계별 태그(Tag) 기반의 전체 마스터 플랜을 정의합니다. + +--- + +## 🗺️ 구현 로드맵 (Implementation Roadmap) + +### 🟦 Phase 1: 기반 강화 및 보안 고도화 (Platform Stability) +**목표:** 플랫폼의 안정성 확보 및 사용자 중심의 보안/관리 체계 구축 + + #### 🏷️ Tag: `v0.4.1.0` (완료) +- [x] **세션 관리 엔진 최적화** + - 세션 자동 로그아웃 시간 합산 오류 수정 (시간+분 단위 정상 동작 확인) + - 활동 부재 시 자동 로그아웃 잔여 시간 추적 로그 시스템 도입 + - **(수정사항)**: 서버 요청 로그([KST])에 해당 세션의 남은 시간(`m s left`)을 실시간 표시하도록 개선 및 세션 연장 로직 최적화 + -사용자가 마지막 활동 후 **설정된 시간(기본 10분)**이 경과하면, 30초 간격으로 돌아가는 감시 엔진에 의해 즉시 포착되어 로그아웃이 수행됩니다. 따라서 체감상 로그아웃이 발생하는 "최초 트리거 타임"은 [설정된 시간] + (0~30초) 이내입니다. + +- [x] **사용자별 맞춤 보안 설정** + - 시스템 기본 설정의 보안/세션 을 개별 사용자의 기본설정에서 설정 가능하도록 이동 + - 사용자 별 세션 만료 시간 적용가능하도록 사용자 DB에 이 설정 값을 포함하도록 재 구성 + - 사용자 등록 양식 기본 값을 10분으로 설정 + - 사용자 등록화면에서의 권한 명칭 수정 (최고관리자, 관리자, 사용자 로 통일) + - **(수정사항)**: `users` 테이블 스키마 확장(`session_timeout` 추가) 및 로그인 세션 생성 시 사용자별 커스텀 타임아웃 주입 엔진 구현 +- [x] **CCTV 설정 추가** + - [x] 등록된 CCTV 조회 메뉴 추가하여 게시판 형으로 목록화 하고 활성(비활성)/수정/삭제 할수 있는 관리 기능 구현 + - [x] CCTV 설정 파일 DB 저장 시 username/password 필드 암호화 처리 + - [x] CCTV 설정 파일 조회 시 username/password 필드 복호화 처리 + - **(수정사항)**: `CameraManagementPage` 신설 및 `cryptoUtil`을 통한 RTSP 계정 정보의 DB 암호화 저장 로직 완성 (AES-256) + +#### 🏷️ Tag: `v0.4.2.0` +- [ ] **소모품 관리** + - [ ] 이 기능은 자재/재고 관리 모듈 생성하여 메뉴가 아니라 속성(카테고리)으로 추가할 예정 + +- [ ] **부속설비 등록** + - [ ] 자산 등록 화면에서 부속설비 등록 버튼 클릭 시 자산 등록 화면으로 이동하도록 구현 + - [ ] 부속설비 등록 버튼으로 이동 시 상위설비 자동 선택되도록 구현 + - [ ] 자산 등록 화면에서 상위설비 드롭다운 메뉴에서 목록이 표시되지 않고 있음 + - [ ] 상위설비 드롭다운 메뉴를 입력 텍스트 박스로 변경하고 옆에 검색 아이콘 추가 + - [ ] 검색 아이콘 클릭 시 상위설비 검색 화면으로 이동 + - [ ] 상위설비 검색 화면에서 검색어 입력 후 검색 버튼 클릭 시 검색 결과 목록 표시 + - [ ] 검색 결과 목록에서 상위설비 선택 시 자산 등록 화면으로 이동하고 입력 텍스트 박스에 상위설비 이름 표시 +- [ ] **자산관리 모듈의 현재 메뉴들을 기준정보 메뉴의 하위 메뉴로 변경** + - [ ] +- [ ] **설정 메뉴 추가** + - [ ] IoT 센서 모니터링 메뉴 추가 + - [ ] 모듈 관리 메뉴 추가 + - [ ] 설비 관리 메뉴 추가 + - [ ] +- [ ] **시스템 관리 - 사용자 관리** + - [ ] 사용자 관리에 모듈 접근 권한을 설정할 수 있도록 구현 + - [ ] 관리권한 재 검토 + - [ ] 최고관리자, 관리자, 모듈 관리자, 사용자 + +#### 🏷️ Tag: `v0.5.0.x` +- [ ] 모듈 간 연동을 위한 API 인터페이스 정의 + - [ ] 자재/재고 관리 모듈 추가 + - [ ] 생산관리 모듈 + - [ ] 생산 공정 메뉴 + - [ ] 생산 라인 메뉴 + - [ ] 생산 실적 관리 메뉴 + - [ ] 품질관리 모듈 + + - [ ] IoT 모듈 + - [ ] IoT 센서 모니터링 메뉴 + - [ ] IoT 센서 데이터 수집 및 저장 + - [ ] IoT 센서 데이터 시각화 + +- [ ] **사용자 관리 시스템 강화** + - 사용자 고유 관리번호 도입 (중복 불가) + - 프로필 이미지 필드 추가 및 업로드 기능 + - 사용자 목록 UI 최적화 (페이지당 10개 제한, 네비게이션 추가) + - 복합 검색 기능 (관리번호, 아이디, 이름) 및 소속 필터 적용 + +--- + +### 🟩 Phase 2: 자산관리 MVP 및 모니터링 (Core Assets & IoT) +**목표:** 통합 자산관리의 핵심 기능 구현 및 실시간 데이터 연동 기반 구축 + +#### 🏷️ Tag: `v0.5.1.x` +- [ ] **자산관리 기본 모듈 (Asset CRUD)** + - 6대 카테고리(`FAC`, `TOL`, `INS`, `VEH`, `GEN`, `CSM`) 기반 관리 체계 확립 + - 자산 등록/수정/삭제 웹 인터페이스 구현 + - QR 코드 자동 생성 및 라벨 출력 기능 +- [ ] **에너지 미터 모니터링 (Energy Meter)** + - MQTT 프로토콜 기반 실시간 데이터 수집 (qideun.com:1883) + - 전압, 전류, 전력량, 역률 시각화 + - 년/월/일/시간별 누적 소비량 통계 및 차트 구현 +- [ ] **CCTV 스트리밍 연동** + - 현재의 JSMpeg 기반 스트리밍 구조 유지 및 모니터링 탭 통합 + +--- + +### 🟧 Phase 3: 지능형 통합 및 품질 관리 (Smart Integration) +**목표:** 모듈 간 데이터 연쇄 작용 및 생산/품질 시스템과의 연동 고도화 + +#### 🏷️ Tag: `v0.6.0.x` +- [ ] **스마트 센서 매핑 및 확장 시스템** + - 설비별 임의 센서(온도, 진동 등)를 동적으로 추가할 수 있는 Sensor Mapping 기능 + - 센서 임계치 도달 시 **고장 접수 자동화** 및 **예방정비(PM) 알림** 연계 +- [ ] **품질-생산 연동 (Accuracy Management)** + - 계측기 검교정 후 발생하는 **보정치(Bias/Offset)** 실시간 저장 + - **MES 연동**: 생산 공정 데이터 측정 시 자산 모듈의 보정 계수를 실시간 반영하여 정밀도 확보 +- [ ] **예방정비-재고 자동 연동** + - 예방정비 스케줄 도래 시 필요한 소모품(`CSM`)의 재고 확인 및 자동 할당 + - 소모품 안전재고(ROP) 기반 자동 발주 알림 처리 + +--- + +## 🛠️ 기술 상세 규격 (Technical Specifications) + +### 1. 전력 모니터링 MQTT 규격 +- **Topic:** `sokuree/home/ems` (실시간), `sokuree/home/ems/report` (통계) +- **Data Payload:** +```json +{ + "node_id": "PZEM004T-R4", + "voltage": "225.20", + "current": "2.17", + "power": "408.40", + "energy": "157.94" +} +``` + +### 2. 고도화된 데이터 모델 (Interface) + +#### 시설물 (Facility + IoT + Parts) +```typescript +interface FacilityAsset extends AssetBase { + iotConfig?: { + nodeId: string; + sensors: Array<{ type: string; field: string; threshold?: number }>; + }; + linkedParts: Array<{ itemId: string; quantity: number }>; // 예방정비 소요 부품 + maintenance: { nextDate: string; intervalDays: number }; +} +``` + +#### 계측기 (Instrument + Correction) +```typescript +interface InstrumentAsset extends AssetBase { + calibration: { + nextDate: string; + correction: { bias: number; slope: number }; // 생산관리 연동용 보정치 + }; +} +``` + +--- + +## 📋 자산 분류 및 관리 전략 +| 코드 | 분류명 | 핵심 연동 항목 | +| :--- | :--- | :--- | +| **FAC** | 시설물 | **PM(예방정비), IoT 가동률, 소모품 재고** | +| **INS** | 계측기 | **검교정 이력, MES 보정값 반영** | +| **CSM** | 소모품 | **정비 부품 할당, 안전재고 알림** | +| **TOL** | 공구 | **불출/반납 이력, 금형 수명 관리** | + +--- + +## 💡 참고 사항 +- 모든 기능 구현 시 플랫폼의 디자인 시스템(CSS Variables)을 준수해야 함. +- 모듈 독립성 유지를 위해 모듈 간 통신은 정의된 API 인터페이스를 통해서만 수행함. + +## 아키텍처 상세 도식 + +┌─────────────────────────────────────────────────────────────────────────┐ +│ Layer 5: 지능형 분석 및 시각화 (The Brain) │ +│ ┌───────────────────────┐ ┌──────────────────────────────┐ │ +│ │ AI 분석 엔진 │◀──────────▶│ 통합 관제 대시보드 (BI) │ │ +│ │ (예지보전, 품질최적화) │ 인사이트 │ (KPI, 가동률 실시간 모니터링)│ │ +│ └───────────▲───────────┘ └──────────────▲───────────────┘ │ +└──────────────┼───────────────────────────────────────┼──────────────────┘ + │ 분석 결과 피드백 │ 실시간 현황 + ▼ ▼ +┌──────────────┼───────────────────────────────────────┼──────────────────┐ +│ │ Layer 4: 애플리케이션 계층 (IT System) │ │ +│ ┌───────────▼──┐ ┌──────────────┐ ┌─────────────┐ ┌──────────┐ │ +│ │ MES │◀─▶│ ERP │◀─▶│ WMS │◀─▶│ QMS │ │ +│ │ (생산 실행) │ │ (전사적 자원) │ │ (창고관리) │ │(품질관리) │ │ +│ └───────▲──────┘ └───────▲──────┘ └──────▲──────┘ └─────▲────┘ │ +└──────────┼──────────────────┼─────────────────┼────────────────┼────────┘ + │ │ │ │ + ▼ ▼ ▼ ▼ +┌─────────────────────────────────────────────────────────────────────────┐ +│ ⭐ Layer 3: 통합 데이터 플랫폼 (CORE HUB & Data Lake) │ +│ ┌───────────────────────────────────────────────────────────────────┐ │ +│ │ 통합 데이터 허브 (Data Broker) │ │ +│ │ "모든 데이터가 모이고, 필요한 곳으로 분배된다" │ │ +│ └─────────────────────────────────▲─────────────────────────────────┘ │ +│ │ ↕ 양방향 데이터 동기화 │ +│ ┌──────────▼──────────┐ │ +│ │ 실시간 / 이력 DB │ │ +│ └─────────────────────┘ │ +└────────────────────────────────────▲────────────────────────────────────┘ + │ 표준 프로토콜 (MQTT/OPC-UA) +┌────────────────────────────────────┼────────────────────────────────────┐ +│ Layer 2: 엣지 컴퓨팅 계층 (Translator) │ +│ ┌────────────────────────┴───────────────────────┐ │ +│ │ 엣지 게이트웨이 (Edge GW) │ │ +│ │ (데이터 수집, 프로토콜 변환, 1차 필터링) │ │ +│ └──────▲─────────────────▲────────────────▲──────┘ │ +└──────────────────┼─────────────────┼────────────────┼───────────────────┘ + │ │ │ +┌──────────────────┼─────────────────┼────────────────┼───────────────────┐ +│ ┌─────────┴──────┐ ┌──────┴───────┐ ┌────┴─────┐ │ +│ │ P1. 기존 설비 │ │ P2. 최신설비 │ │ P3. 센서 │ │ +│ │ (PLC/Legacy) │ │ (Robot/CNC) │ │ (환경) │ │ +│ └────────────────┘ └──────────────┘ └──────────┘ │ +│ Layer 1: 현장 물리 계층 (Data Source) │ +└─────────────────────────────────────────────────────────────────────────┘ + +![alt text](image.png) +![alt text](image-1.png) + +![alt text](image-2.png) + +![alt text](image-3.png) + +https://www.bulums.io/smartfactory-cmms + +![alt text](image-4.png) +https://blog.naver.com/8pmcorp/224146369431 diff --git a/docs/roadmap/image-1.png b/docs/roadmap/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3cf190d3461469cec46cbc09a11cdef6ae94d7 GIT binary patch literal 47404 zcmd?RcQn`k|3Ca{NfVh-3Q@LNH%P-F`kC8NkHTZPDcOQaMbdlw1WNkp7SAuiyDy*E!ce*B`%gzRvlK3a{sQJnr|~xAJek#!@5LfLZi#PM?! z%9=JIuHPL0v&#OQk~}5z!;YW$!`jP7RgO|9IU$=Cjo0DN8?K$uwWmRB(0 zQk-MYoe-Oa@CD$;Q z)3*JV7l(UyR@=-}ZSg0=%fGTqT(_L(_NLv<`S&Z8gKdsN_xDT9QKWp&zki!%bo=D- zzh7GAYs38hex={u!1M1n>aL?#{`dQyZ{&&m_xmm~DvR9x`+e{DB8|5F{l-wu|1rOC z$o=+qCMK%zQwaf2pYATGCf z_;Ap5I$gislKr|T@4kH}8do-N+7yD3rMPc*ZIG*8m^W z=U2Az-A1<(jLlWcAA5VRt@`s)Jau8-kNwV}hel>6npp&bI-*C8ki|mNaF>2>w(}n| z16)asCWUhM?p=SE)?$jGs_Iio9U}`CRt=H8f`TgJuLXmKN@U}FW6$tJwqCNb+Qb$$ zRQ&Av?+)W1AD-ZPL|AM}<`UgDQhMtpds@=YOGUd3@y;<|ZN|C8zkaPhK6*aiIyO1^ z#Ei|cc!w8e^%Zk}elY%^Q(ICkzLFk1F*)h|;>8QMc1~++YZfuH&8t_ho;0b8-2ck? z&)?try*^5@VG}j=k>O7n1L`7{E&HfBCOO5$HPnPfL{zhaX;;T92Ayl+!UxWa;dOlb z5#y<~qsV27Z{p7%$CU%(r}7<#wfg(}_kBp)q!_}Ufx8pnQI6alV|XbzICyMwQk?Dj z_3INU#~rnvD2trWHNQ1G>+~!sDJrnim!`6@QSCcQrLB(|2Se@K`<;#hLRt<%Qz^@{x-<^W;#%!H9eJ zZtwD#J!<<)tuf&=b8-1Vp%sh=aoE$+GTsXfu$OJ7H|h4raI0MoS_ zHzc=nb94L8jo|CrwQH)mn)C??2|9U}j67$f1O5FsQf{6~xLsN*r@<5PjC4xjZuo<14(B;LIqjB^&{V5Fcex?Dm0aP_P^%(t!)4Z+c6KN& ziy=N-FE%#z-G>iU>~$iWwr zT2xGI{C9p2Uofdrt?S4$)k@dl*hNKoEa%A{z$|=6G5+YxNLP+UGmk?0`TVU0Mc2d6 zrl~7;MQ6NvrDNOJ_30Cn$|LaagEk4;a zrJ_P!zrb$YmzP(M9XUdI{N%}g>&}Dvg$^gxgm>?zq-kZ`#;euJ(DS)@lcF$}XVoTx ze?NHmFcn%%=WA#6Odk1T z#~d9ger07x3j7Z`4&Ber&)05A+ky3KGEf^H_w3nmTf>tl?^18tM1SDG0hb@lgqnvVb7yQ;|9me%AM;*AjEi*H-u+TD353A)p z4VU+=8M4bVO`3{bXO6EdFFF1=EG2bU?DB_qqz)xV7kaLg%=UWGOwP+5yR(@NZ;L)O zG}PsikdTnc`v}1})Wo*n1b2U2tit(-JDt@h&z@z*uh+ItEq!)rNa~SQL(88`{h784 zo{Z(?8MNQbPyY0Z5IoN}q*L40#{8{13;H_+eTn~~ow zk0m{hALLgQI(+??UwxEhym93n7C8@T+1cJTRRuRjyUDBnSYUryzt}}nZ94hX*|XZp zp_*x}=Izwm1~Y3J?a-6tf;0&hd(tYs<6#5_@Lf$pzfn1kbhEDrInVJHZnE!dMI|8^|5Gd zqd6@TQ)2rOYRc`~x5p|r2^-B#4ETFb;qC@I3to)a;*I&SGaWvB_)T^7@Ky76bd((j zuTjt)%e=Tx+Z0bReabXQyJ756bC26;alD$bI@R*sKO8Qnoo;)1HO4E^6j){qHO8-h z{`~nr(b2)LULExI@p-5$g2f(Jv`OC0OzCx&}_Z{krJqqM(r9A>J0{~rG!qOkKfm3&vB zqnOjWv6z*`y}y3_Vy|T^d-LY_aYaSF9Sbv~N@iw>otsJNun%IBe7i7OO5^J4+LdGb z?d?~Tf5itv1`LjD;^sF$zqriB%e&#*+n_ZRPcrbThfAcUzq*8%7S;slhzsb zJeBpp6>98Q>7~hLr@p&;|9SMt|Hb77)=u?f=i9ovb_(j{9`T~u($81s_3%pA-m{-h zKOIOODd9R!<8_KzVy5daTrwXd}X_4X0%61L1CS!s3?Pb)AG{7w~w*MBBksT`<&l5C=K_Pd$Gv4kzV2ezxVSj^ zbe$Y|wFBlKccZw(IvIvPk@Ga%yj}D-h1SEvqi~C-_qu>O{;-~aM|X18%@JtxY4=QX z;8lID8QXr9Yjsl(`s=yU*gBS@7hezjh({4jNZu=#mHN-F=5|*FjW6sEd7m>28+xOE zHZ?UlRO=fU)PHc!veMvVH1u3@oSmDCJ?6WW^v1ES8$Gd_X^JXXm2{=UNY<+t^P3(w*aAXVunjW1ZUj``53r{;;zZ*c6v8 zU9#KXc%hbSzrr+DZ#Ak>a(l*m)HK)WU$;t2OXD(?qea!ic%SFn^t`>bX1#;`aFm4A zolq{NAwd(#o_!!FbD6Tb!fBE#j<{gls-OUG?a|RZ9o! zQeO0Wg;I~DYb(p{Pn*O;9xe7_t*9;SIeR!`gXw!~fhW_vGc*0XDHHbLNpZF6*KwU6 zUtB(095CNibVDhCNzlm3Dj?IKsG_QB9YC6k`_Vb_Rs+;8rWoGy6(7Eb9U0)cve4tw zOhfT&P1DAH*f_@^GjV@|v;P&%$5Qr+2c@Kbb~K&w%1%T_&bi#cz8~x6>#twwGlhA^ zrlwqIjyx3=6~_UBI+gRJ1KX7FBB#8hf9LWTU-=xA&@4N!94*bQ>5(b%(BE>y-_JiC z%{lz_E628N+m5@q6ms6XcMm_~-JWOlAX3h=#ObRK^YMl0-#$;CJZUewkwr_z{_hJP z>Sxg9SX;8P?CLQ5X$t^KW?UVfJ4#SxXMufv@UqOQQ>RboShn(sTQsc|em%CjWMSlR zSUy)ua`F-I045=Q>O8%m@o&}kzS;yjnRj+|h2Fcjn&Wu*H>}ygp3>6JXS(r9A)lfQ zu|v`e?{cu$(Z2uiK@po68|0tx@PzhjIWN&><6UP)#>U1}$u<-*u2`%5NPGi8Nd-F9 zwWWE-`wHg=lOd2_ZMG}rFjl+ZUrG+G3WC`QXA4vT{JW63z1v? zCn{a+`HL4{hlkTnk9FkRgrLqA=smeM{7G<*wlOC419v29tfIAbrW=d<{A4+rt)q74 zP#7>PY4iT3xYM@{aw~zjm!Aex{Jgy7qopgsGd-Rcat3Aqpt8*yIfaDwf)D8J-D|9Q zH+bh^&I1Rutec>{0*9+i085!-lEa+;+&mCoSf#9&i>2Q!8>QG z<(5}buG!j_W2=p$y=ho|V|8xKe_eC-lAVF`(d%}0qMy=r*90l9VQGJrbjX`FQuNYB zY|WIzFHNd83h3p&i#vWuNN8(=%*sseSUG4+V4lhNr zAG}r;m*yx>O>X$)$&-bq8G3n5L54&okP*QDuK;iY-cIDJ?#Q#6nm=}Y(mXYcEArEx zkW*Th);53syd9h0|B&W*omj(eY3a@@_uMA>Pi|(HW&tB8G_}lQ%_^Q|rJ`ZqeD>^F zg(YnC$A=s@g8WrsuP|P+|6W)ANW#jY*@}MKwrt}{DupK(w*QH)l`E-a~aaLDQ>v`&Kb4DD@3K<+z7ONvAYHbFDQq5$P5!--~$%eprs=^v{3t z>nIWC9`!ousPN=5=Yn?pxsSYi3kYTB)dFo>b5l1X5RTKM_(E1 z;P~-L)ocD&xY0A-U@Ht%wqoIlNiY0*k)4+p9uT-qem6Jwx*qqLo#5oQ;9h|LV87JK zxi72$vPr)TWS3z@WzG7uwTS$_*6^5^5HwqSV~s-Vxd(~wEX7%O$a(0utvtUY>puU~ zarhGm$5#g3RDMVt|IvhK)+fFDAE)sA4-~cjf4XJQxwT@453>O>MIN-}^!NAg@3TDY zGP$qCQsVoEC;ZGy+*dkZ(P0l0c`Ly38CER)-ZS1IAvEZ#{U&G{se3Ksh1Je4`8|8K zXLfd0r?}^G(999)TYw!GFJFezvm?3XY!?(LeS?q$_W{UHgzHL6>kFmYFAptEc4*nq z*Fl#{*5KPA?W8JnZlAEQ5&#sW01oee0@76C8+Qu|ZYd}zuxq>^fAr`oz_F)|=KXQ3 zbn?5!#OT{H4UU1@{@sL*?EvjzX*V)Rs1cWbwqT3nFARYXbJ zyoEs4&l$FH)297KWfauVZ@)gju**>c{f`v8yj5OaUinU}_e@sz*{rKm2g-A)PG`2) zJvp4Or(K?_?VL*A*w|=if2f1sKy!;})>qUm)f5dT1+-_kLbV9lv!^rDQI#4m1Qdi8 z4+ZX1R8TOk@ZP{w)n5|^7PF;bgBMy!(v6Z>Kd|Am?t`1B8eAp^Z?&{&0ElmcWZ*LJ zR@SQ{A}T6?)cQZ)>v`f+Hwd@xpjW0BC@=|&in1ExiT-FV80_X|GqoN5E>S?hH~QM z$;O>+ABrR$G`}0ONm$x;5Msmps8s%C%pS{g17<08m$k7nQkIeSFo=FTH2@@#*EAEo>ECT?TX=YZCxL z{J-HrdIK)v2DfhA>hjw%9-Zfv(>Ny@uizP-RZr0zBM)4C)UB|B2S}Q4ruF^;&*|Z; zQi6nL2jfG=8kKe#19iT-_Vsq$2hyy}1bDp5v@f_Pu+`~;@;3%hO%5hM*zg@N*>RGe+YX>cJZbqVwyKCd1M~TbC(NFJvpbL;fA|}m2W!_UfazoVd>3m=(OtL!-o?Vnw;Kcz@XU|YqpWjM!k9S z8?d0U4~Iv=;WaWd_X-Qstlzrhf>X3h$5SWOMUPeR|#~M)m&?irV2xkcy^x4FGbG`aL@(eZ?T>HAZWPXSr zEGiZofqKi9Ru$u&(oWgkR}yb@J1bfD#TMFryJP+6XNmg)1D6$G1>|#IA-qeifzbS> zrgQ0r#jH|NQcmB3Bx!f;$}(?;r1JiO@Po5rDcRYy*uL-Hzpp$z`r7NCe`pB{|IrZh zAdOX1RrMxBz{SNs4LU{F1+ncNU;KoEoCEy$tE-3^3YDfuy&h{2m9epLq_neWXJ;o7 zf88LKu!x(}$}Wx_dp+57+F#}V<^tPqRM2MA^CL9bK%eAwbsxI1%B-CdDqox*&dRaw zIuyvVe>M2**!1*UtE}QXP|y`KEpzZD*WmfPXorI)5V}_25>%sIW!?SyE`+Jxq!^ET zX|fvFQm9%!Ac@v`0oM;bhXg>hmzdkY3A(vbs48@=7uKy?N2=7s!~_xf$wnO?ACHuE zcL|z4|H}SHuwjotJQbI}Uif-}*RNmG($jm{lrCv$FXQ^4q{}ly1lBD4DCAuR$d(QL zJaC89Hk3=Mnc|Nl_Qolv9|(N~!dE(Zaswg2SW%`RP=yJm5wDm448<4TLm3#0z_^}K?DRZt2VGtNuCUYhvi%GBqToJwjo7l#(E7{;UW@%g3G1uXmb@28U7>mMBa>C4W1I|$Qf8n@zk z%RE9C`wA5ipTV(b&)PNXx4uEQpxdz{@ZGx;n^{DTNV27-LYkYLH)C(zp_ZOLakHx2 zYkebrsdChTElFo%s3?;|t(#V@T2;s*?IePVGhnv4$y{8g(190>(+~8!FYK)Bt@!x( za(Cg}1$~_%DA4=(`77}+4)MX*U&o-)4x}n#>0_;~vaqmtSu|Ggu6qS zwabZ~n6SIjQ?e6GXa~NC-i?2TFuWOd&M^pQ4vuV+)`7sMruYl!mmJ;BKX#H@vGQYO zahLa1LJEgDNCy;(H`>_ zJEZK^{_e=D{9;oY1ijrDs;r$DkK;(^_6u&~K7FUc4=gS&_79m!TxnO$r+lfe-vY(0 z$spyCoTn_bPai)&>R(^-X-Zd?i@JqOA(!3PTl{nI;KAPFneIxZUGCnADp9pn=#@=N zWr9$xZbZ9q<}mTA|4RU01s-v$s6i7 zZ{BEFIcQMdLa&`1?b$_EqRaHJyTn3*dY`E$h!-+D@m{#G(9sHS`n1qX9k9Ora7jo% zmz9;($uaS3BrnMTI+wwasKwo;TG$ts5YW) z+kUUxUNxSayl>T!wNzAm!EJBSbziKd5Lc&G;SkEl>YME^uSNkvWSuh?XDyIgce*cu&E*XOIr=q7<;XH4rv9;ujdm01965;lr79{epA%@85r? ziF@<$3kqU%Uzld(*UkinU@R0>ci*6XNuHWq%h&$?XKgfMts(pN?W5hqEW|(|t(+)7 zndwjw7k|jD(BXHkzR4nb(a$d=q%EAyRhq*aJBVIxW$^|1Tgq;VA3FYBG_CiVQ<1Ju z^a!7<@@HIqQ|I}`yM690C1!bgf@s7(fVvW&Xws6CX;HJ|iHMv1;zhHJ&E?CN$!dTA zo949HIC1nm?pC{$4`0X81o|SUW%6IVphu0VXl_=|weHfJ*pCzC_jsHeM~FW^EG6B7}SMJI!T zQwbHsSR`Cxe!dSDki@}xo`9er1yXABZ7yIx89`Tm{UK^>uaP2lHAO!cX}?;QES71A4rLl8#y!`tadh;2Uyzg$=22qO*GVtUf-y z)%PNU58sb%wU0PK@%SF|*3|Hk$e^GtMEsT%6M<4BY2A4QMV0ZY>TlHz_C0>S=>QMt z!f#OhsImTGs>Pk!^!U%j#5JfO0WT#pvHs1Rraxb1JZbi?S|5bM^%XieF@gGaNT2BE zr&{(-u`-(}JqyGGCLtde>No{r4o(x_)Ob~Y`Pd$hZKA6g5Y#!bSnZ%j)+8zXDp zRhT!@gW_|{$>~+xnM-J@*X-@RqN3OcB>+$OR@O0dRKXgQiO4 zH&kuD#1D_+mpq95Q~U$4Si?2fosFV7)MF0Sivvc#?3IX4xuXdl-Z>s`!LA5GT)TGd zzUZVBkK+yw;%GB>v<;mVa&m%{sc&J6@DH)LN(U)=VaLQ`Q##EJJlG<%SCsqEAyxq3 zN`PW(aj8=$PnQ3~af~D$&=1!WxH*-;ub$S5t?W}&R5bD;y^}`llWz$iI+K77<^1{c z1ZiO3`2_?VGdAWx<@)&Y>Up9hp-FxkUSMKoHU;>9WjEj-S3iVhUKytlVEH=p`Kwnf zH%2@7r{UBGU!5qQ#y@`IM|*OpPiFK2YekC zP``2W=9Xbk-EDW~w|$@A{x&gv`SX%rd%F%0f!YAcFLd6gmG{fd6>o%`zUqj8PWBN9 zv;M%S!d=pISGwvlv;nn6k<-+ zgzZgpOQ^1{UJnY__9d=eXV0EJWtEl3tP?-jIyzRN+vOOQuNJp#IU$tExP|RN%kQ#F z=94cEghxbh^7C)f&eT78@#3BcAp`&Z{)>N8G%|Z&9Uk;tmLBOY4j^`PdphA8Qq2G@IteV2dM(Oo}A}TE- z!{~kk6&P?`d-O%d4szL}-Nj$Oe!T@XqIjZ~Zr3iGYblY}|GcZcAt1v2zw-R&w;`}w zO5h3DWae=L5D>gqEa)GE2!>!?X0f#M#Gcp1#j#pxQzlR%?56bK&EG*eWO++Z57qHbJM^&9F)amhoyjJK#`8FpC{>@qHcT~SS{1XS^DYGXNc=ujX2$)zSNR^LW_pO?+!+^jM=u* z<%G7x#m`#7SoB|Ws@c8p^uZuvwGE~4KgObRAJ2S|V8&(&JVp7iZNt6~{ekxiHtf7ASD~|QsJHj2 zJ)gImZnEZ(T3qy%w^b_MO;>al+9e|(L6 zj%VEaFMrrkP~d9@BH_|dts2Q@k@zUZK5DV${`F8t3yTzm=2f}T&fm9t`}%4xq&}|u z$Rqci=@2s`BTCRVAZHdSyJw$wZTc<$V{y?9r9M$nk|8r4OOv(b{t#H--*dN-O9Wxda{WYLbkM+}&3LC-&_6XOy zwQN7%vXm`T=kuYptNoo0OUK1`A5F&ODr1Td#sK!FR=2w3PMjC2;*iS5zNH4p6$wn(giVF11# z9>sy;S^5+m!*q7+tBbpc`d5epX#52!zHt*~-idL1Q5!V}WC-wda|ut;;LEja-DsKD z(N85cbt@r;xy|TPrb|ARn3PmO$1t7i)R0e#dQz=#TGdC^Iwf6s`PB!mwC~<^;C*8w z9e6ZP$IGky%$flSR(o;x$<`Zy`1SQ4yR{2gO>+zURywYvWQtBXVf>J$o; z;}fS(dnv|;22A2DbAg8w4K@^}T4tk1{r^K6R+-|p=_*Ws#0rfs&W#VUm2%1Yj?BeLwIFpzNl6J0y?n;l*fq2(gSL>rw^(~)Ee(}9;EAe^&OT<|Y#M#BDbDhi zV5Ua_Lx!4#P_gExhSwvNLRK>o7K@8z63;yGhq7GTnpSl$P2v0UWs&2q>l8hN1APkk z703gR;DaUtU_FkQKwnx`$?Ydkc1C+HJ0C>h#~PqOs2^AHE5O$f#`83V#IV}()kU4xLZgHDOnf^_g_#;J=VdRp}!G4mhmA4}2y{Q1+LnwpwIx$@szR~0aKSb8_>q5s2*9t-j{oGrI`1C^ za;k<-Io6_nwj9Vwh>FtQ-cGDJ(%CXHGW4(HKxqkNmDos_Io{jqHEW3e1DTz?6Q}Vi z=5e@-EwiiF^R@=8wIAy(cUk$S5e%uSCP}BC&@ox}L;CvqM2kbh%@lAS&9EA=z?@6( znP3in9e8lzWk+&MS{gqn!n0R=xxj1%kE)O}$#I>r#Y6VdcBrn-t_ElpA)2Rh5q)M4KJS_-ZTHP(6n{U=`zWSnd^ zW~Cf-7^DR_YpaxAiI#RPi&9mGw^|b=_PTo_84LM+l8pG7GiMIk zf8Xp)%cOMblz(Hu2B&PZ$;qG1ME(W9cC3D1TPtGIElondfSS$RzvQW*A9X#d2g~p} zIfHUFd2a%a2nU+jS-B-~pj_UV)zYuZNYUiv=1$N%{qvm&PoyG*`CUu~cN+_Dj7GcR z9s3Omrvc3mb{2@8iIEKgB`9E_j6sn6Iy?T25WB`Hr|(y~3K=1SRuCI*X2ig4_Ny;X zTMIx5!QjwULC6jql+dKUg_8dC=~EJ*M1a4XWcTRS?4pNxQx zfgJZNE-eu~#Pv)E$ql=u9tEKK#9bHh77KmA%(4qRWDGelk_Q5EPZ@DS5F~hq)NN2w zrj_}&Qie;|I9NL62q%nVcM_SfP&9)O2AR_!tCz>kuS1Jpp8ZBMC!(p2oe&llMj$Ud zSe8IkshXt70r;gPxQ3{nq|~Kju9wo#nC;Xu=;e1qPu#wJ`@6cj{uLIqA&tx8SK4XO z?iH{!-iGW7fr>eN{g(g?TV>_V$j;wHeHJi$%>uDh!MqIdLIE_jTLWY3x%*=6RBoc zXM*gvTL0e!a4x*iOgza*5#!r#h4M(YP2M|qx)Oq#^_incY7>ONWNB|aq_rQ)o>*;d z?MG-CpbK5LC{eEp3ce!W@~*b_+~YNb9TW0I@cXa{|9PmrLZ5fZxQLG#IW$3o=H=z3 zQj%HKivShzHT3c(jym7BGDwDUz>Z?=gys>VCbtuGBy;d zhBn9x4A?Gxbq~b~O*>|eEJ(x6e)IcFK3>bi5viIVkm%@iNk)aSkC8l2}tPi|Vu zM})b(*fl>nIr*Qnty7Mbi{(w~+-n6LBBuqny78LyBqjR-OyvKlz-oP#5adUTHMzyYl)fFm0@E- z4cJWn2=GDLJ!8D?cQgnNad8H4^eU)3#AF}{!71DJJy8J>Y9*!yYKYTJ*A2l(e9kC2 zM8AW-e)Qk?_xNP<*)9pX7S!_I*E*d?d-|k0tJ| z1uXFS;9svM9}0jld|*x&CKQ?CfV5Q?BiGY6>JPakLij>3=0ZrOje6t83herSLPKw% zQkV{YjBS7IEQXnou@0*&-A*ChBOeZ~Tp?mQrYQQLIM8z`29h^p$0!q_FCqHo-XG+O z-$30ZY0Yj%R(0(z_P5k#18ID3KZM-9O9#DnwBXC<&l`{|LmlNsOi|d->FYZ3#0feY z2MqOxMr2q_;LQ`FxFwz4^>uJ?A70>I=JN(fOq0bYY17@Zlc@G^jT@&bx3Wu{XYV45 zZTU~kiXV!jyyQmS&66=u<_o!Dws2CY@ri^BD-?V}+RF!KiTS7WhqI%eD`|(V)6dR9 z#NMZP1=8(aA%nta$)^6Xbjqe;W2tNt_6Mp|V_MF2$o_;{(9bFJc0Ny3ohwrBf$)V- zL9Fk|APRODM@)t6wJj;$BF{70VlYPbze&s$zgGW16g}=jsR!V!$e~jfCp16s3ki`3 z_z1g7he1+c*P5RwmWWr2V|&!U3_6vy0K5r_O!HS+!c~5ZaNN*@Cqj)6E1aornQKkB zDkdx29oIm%a(m5m~@ANL+A^Y=UBZ`D^DtWF@^`oOthFZzVvt zb7v5C0B^S!lur_eL&eH86hvpZ2JsO9nQ(*Js*Q-u!Ia=Y<4sF+D|A4(jR0Un_xcmy-@875>nT zlid^9AxDMP^Crrs@8 z-IlJZY)V-xPYw9UV`6Grg-WJ?`bZ2J2laK2ByEJE-6l@vz?QHDzV&K8L!LlZ3Pz3? zn3!sPt$etfcjcW^SFeK1xz}ZCh#NnWIoyW9gS*&-WFm7MV4f(sa~fW`>gs8%-{;+1 zyQHf-T~)CINywUR+cwTaH%8LWQzZl)^`g2UA?ssMATpVQ|*>bf7vGjx`EUJ&|J$@^SF{fDAR+OfmiboKQ7A$zW( zQS2dsB<*z+B0j)Zt3as}WG@#N_cuS~s3f9d@c9KQ5S9wQh;FOp7(-q`>iEK zy>KQIZ?nC?ey@@+Y|Ft|2neEw58*v{OLjZ00YqI#ArW%aykiiNZ?0$iMOq!|}c_Y~91QlYVLWA|fbN=@5a&)`q0!oET(qrj)PB&+)sf7 z*L?N_B_jXGxt{ zVuI{bi7T4I*6K|Ns9^e*6N8h?gc@M`XTy^Pp(Eo&Rmp1cy#oX5Ag&Z_NVC6o?Iw0E z$uDzy0VH4qVroWEz@!we9&n}NQ8l6Qq zXn;!}M6G6bI|I}04i-M{yWeD|wzf7&iQgGf>lfVE{x(yfAj}c5UHp%BcoO zBRK6lNkT}iHo&eJR@2(NF*4vUpVtVWmA@gU48~h98=6oY;%pEO0SD`G^4I6)!ORRN zk>cy%2WWKJ2bB#pp32eC*OmTLy7b$IJ2fHw{vvvnJ0_gCgk#!@Z z40=%oCP!>vB)iZQj%CI{XUv8tN+My1OhS2x(jN%zA04HE0gP`V4-v+2W*p*@0r}l7 zn@DbZe)@L+HqLuZ%PLIQ5#a*kM$Zhnr!VfHuj7M5LZ`u}8QzDcYbPf0Dc3^X0f6U} zb~-87S*6RYPYyX&keCZhFOoR|IFdhcf*MBq80%;&imVJ?Dy{yKWm+_9fu!o$NkczCGr76(7SNYY>Yn1C1&q_33NatmC36R% zvO9EKin{?z5asbcm2fYL9EI>aa=N<%u3czA-G7W-_2$PVKh;fGKF60J# z;VtoZdP?D9nP37yUr1}6=gJr+h(6-vyLov}3Oz4`u5j_ThC_74x=5Nfe>46oE^N?j_!T)&1C-;Bh`3&koT8Rhr*RcOAQ zYKQ90D5o0nkLNS~O^Dx|N_f5x*qY2F7Hp8gWym9XTxC1nr+`1oQ}=)WKD5-neWQKN z1x?(xDa1DtGV%3Ye`o7X(*MgLO+o=f@Fwi+etxim^DnQIV;`!#g>E{a4hY0D=k;Aki0d95@0T_)k{n?ZNiMz0I(@$ia%3xSr!*oo+I};+(kTDxvKn14N zZ|FnAL488aC!OcoH4)&~l!N)H$_9Rh5RE8gem+Z?jd(j@iWUpu5oF8{`u#pA(goYK zCAKfs)z?GS(F>X7C&Ts7K^KVv(u@M;)N*R(W z4An_0QFkCQ*QyLk-5A*cvCGI7*|QpzLEgWXP-%C_lUPW8p=Yxq05xAj)CU4vMIl)W zym{ysGKJTF`xAK(H3M_jMTSjoSoHBdUI2Jx>Oh{_i=b#q*^M6eq!}d=x3vxiehgKG zaEs;FTg7~V=qq>7``!N3OAda?7lt$@sGTL|O$#e-ADRNy)*Z=*4Rv&=Jv}|^qGi}X zDixt)0Tc|$~u=Xan)-d-O*nLM5JVFkT=K^`U zMup{~_1ka>MY;U{Jz&3z0=di>hjIMv$nW>MB@L0jRd#Y5%AxGo8{lMED~eWkhGrQnoJjTm#3rIhvb z?1Go-G9XV)rlqZ$k|6{Pa-ZqgGl2`&+_4KsnxJR*^9-#+SZZ+4ym-|b_3`Gjay9k; zteO%nfBo;-AnPayJ?0Kwn~zE1v;S^yXSX{run@Gm^;96=zo4>+6V}^miaEk$hPr6_ z13Z&BFTkYi<|_YPhv3?lmC+Ejd7wEhJw1IhP(SjIJG(ts++jeTQnSWPAo6MDm_5df z9XUFJ(?Zs5R%FM{os2(p`T#Bty3dOfX%_^oSdJ9|&cD+Wj)stci7kYztr38WIb0&F zKVnLfrB7TH92{WPsJ#0aN-276Z2oJdgmYvD!p?Cg{9!vg2X~%hOK*^3`i5EnD6yC1 zQlww)eht?`8j3ZfV;_WSSuw5;iGOxs;Ty;<(E&BXLXkcoiaZ7H!hoOo2|rC831|sr z<|CQE-+kVJJj@)sfm38zc5_F{Q{(6pMBmo|7?mRp;|J`sh8+7r46>?^b1+!Yg9glo zo}obxt89^A!h?J<%ctkzA?vZSbfdSNTJO?C+z`CQZ;&MY4^1iHUtn(e!CTa~&3pbF z3p);?G0`b7M8$B@9!Zv`=TiFBl}XeMQMBH{K|g{dF_=w&e4NrbEiERGxdCS4Qr_Jg z{c)#uiU!N!>jIB4yo+$DWy4xKs37>glZmcc(GwPa5Ku6OjK4zz>hz^O$gdyxr z(kx{sPMsoN4mlRWzyRktkQg(PVPxdF^p^A|%2|Y%gAr$L?G!ra_4$uTP|xk1 zC7>W8$(s?J6gU5PMCg+R(n8*}{syh7-@rPZMhboq-RbqhND&D;c55Iv|Bf#s4YfX% zA0>m#ia_i9Idu}#3M3E+$jSz!m}1wnjsnwE#IFBD@z3b+BsW%*eA7a}YG@0HrBD z5{Lyum{Qyz^PjPWEQvdbk61UIR%!;~$cD)#Zr#a(u1tcmvUC0PT{LBY639t1CuRmER|bqg81K=u_aK1WaPF>V${ z#T(2U+$CxOapHb7RD;{3N-~-vY5>h6sdFtkO6vjSEr?9lwg(`y48bQDiul39hqY5i zyOPh*rJTWEXuWkEctuXwWNZJAFv)mo>m0CM5)8H_n+NN&3I9%YJSPRxW?uU)t9=hTC=Lq%tJ_7-Xq zb-6&w2lr|UMDG$M@W>zScsC>tYyaFgT$zw9aXOJ9ks>IxxO7gO*roOZ=2skO$m*LI zPp7-!J{6uRfSrawbz`Zgr!8cvD(8;p;FIthX63>227N%CiE)GggxX^^BsBh>=TkL4 zghI$jISy%F|6&W6r#CFTnrdNQUV^$--^4giFt8W>-_-tb8UH0{~kT3Z@Hcu4)bxFTh_|N7?TIN&}Ney?DX;SBgCsA=rWPJ1cY4I*(YOHn_0!F394v(c9I?{Ogz*8omba5&}CJB zFC4hKqV!|0+AX{@-Q%9$mbDBkg(!cwx(_qHG5r#WyrZv!{U5Juyv4+3n0Pt z_z+onbU!+F_F#nZFtc(&yWyka$q^=NKfK6EZS^h{kGeTzZgzW@LF?F6>z9gH#@10&d(``TAW(Ey-%Q6Q|*f zd>mGEhm4THwt9o}4+5w214AWETHfMw7-#4u{(HRekVY4{yL#^E$Vf1tK=D+#JT>&k zikg}Y*gcK>^zsBy%eYLc<|?hE;iL-GRn!W2<-~MHh3x0s2#@+Lx+}S`3m$Xppw8S& zqtJZ+Dg5sQ#n{9|)6N?X4sS3+BZAQlubNwV4+}%BA=yCe7*KcMRPHp=4hCLedwfR~ z$^%x$H}vr`^hdI#08cb$;$b-WAS?6~fkz}FcA-g)A+1weAGwEJS^Gmx%~2p%%)|!a zVpuy9R8D7Tk!j+>lvlglCqwnuVMi$;>~7W&9fViD-9Y=WMbjRG!qDnqQrU@@cI}=@}a0`Qqt%C#f7tvQ@h*j|d(%_84G&hb`9IpnC?qk$Oi+yz} zA@{-GxHvdgk<(v1Zx|RDtl~PHfl~@Vr%42goM{mdgnpZBB3AY2E#CituPRQ`I1ueR zA|<`D_=gN@2sStJG?8H?2;gM?3aZ&Eh%ZV|j63U&!GqqS94)PD^HbH)6w7krn5v-K zhSN+zGRI*Hk+?)E3`te0Y z-oCgB5&$1DVPu-BLoc90^IpYjppR=tX_a5 z66+<$dwI!uqa8w7tH7hr!KOA?o$9^}yUC?NeVC9C`vw``y)kavpoWut9I-|Jp2Wh! z=iW_*NT4&30M%6s^gv^vb(|!zpLC=^Hp#8{&E)8huB7IV_RSt!{|;R$F|bR2ho(Zt zN}OC>O?%63AsZ9cxaH<%nGy~lY!~fDfpJhE5*C>-CV^D>1xZG#dFDI%ubt=+X%YZC z^usdcpV#SljW%8;q|k_pGS@ z8sX;`6vX(LDDm74dg?VUD1EsQgp4ATa)wJHwwcrR!66~qZbG0`@dk-ou`jog$_YUl4yPRO8-bxlHPGjs&MQGkC>_^@5XTFA&k>;e3&r*Y; z>ceBoKGM4kBP01QJj^LreEZ4h`}gnusEfn(r`w2I8dt&_k$zNU4;R-l2t~ENf+m(D z#kBHB!v>&;{`~%D6UT8BSkgfeF69&zJ*U=luT51=E%v-GnQq#sW|7hV^r)AE)z-~2 zlFm!Vu8L01-Z5|U(U91jF$bLLqH`}S%+YEZ_5cs_aN}|i!lijIVG84Z$*s(VPeKmA9W^x$ zG%pOOL2wy1JPYKwRzSx~ml-1MUF@O&u(qmk{1?=3UIIK13e}~nG4jlxq;cH>->@WQ zA<&W)Rf8Tm+lga~1FZ$T&oS+VtYR5fiY?aK3;U0kFosC3xclniKm~dE+vQzlmI0VD zf`Jk*S$vL7(_ok0PI79D%64A7Vh|h9umMX=l3gQ~7uND$3&L&o8s!LtXwn108+VI{ z&|-IFJM`*P--48DgpoQ-FjqkWy1BmS5v-GM;Ga0@lpO2kW*KDhV_ExhZsUDKBY)Np zNHStu*wLdW(L8zZfcZm=TnLO$PMrNI^r;!P3JEYn%&J(w%k62D0Xbolkzb2cCI5l_ znx9ijo)3rrw%yC@?CMCb#y61e^*+}s+_fP(G4n>irPhtz818^~G*1*Kv zZ&t^GOJ4)zRFSHghQol8_&t$}$#GvGr`4K5&A~xSROruq8+&5inTwfpsUObp`0GC4Av z3f4eQflVJbyGsVpancAeQ=q*Odh?%|512K#P#{V9gQWA89GnQgMZ73Gu`;g($z=@5 z;-0xl#)BD;@+&!3_Uav?2oWV}usMl_7zv1TpMTvLEWpdV0jt&pv7`SIp~IN4IIECB zAl(t=a5FnQ``@9L_BUe}R_2+(J;sQp1ONw(Q>=hN5c<)mRBEdw?3dRa?h-g13 z%f$$qQWqLNnFJ@ZSql4|CoUQzTy(8aUP~*2j0#TOsT>dym$ts*pDv+mI^>u0bK_f< zN30|lg7nNd-Ae<^W(Hb5|vQq`|s1EQ4|WG`r*N!$?wNIJdwE7hP4!Om1^WHlty06#^NNZ45Tz94qnpMa9J!}SsIm(Z+usE2(OL_x%k4i zZ+(57$k8OfO1LZXas7S?g##G8CRI9%#)uD)hZw$rC2|oTg``j{=z%iqa^y*&#UGM$ z|F7=eJgn!u?f?H^W{fpvls$uHhBk%DlCn(5mbB4oD=KA4mh4-N>`S7og|yp}vSiB= zA(cjoNTrgHkV?PDS+4tg-S>U`zQ_0Y{c#`P|Vlu4`cTR#H8$-K4(|Au^f;uAlrtE{qLv+u4pPb@jtLs z`!5~a8UzJkrg(fa-E(<~5oF2DBb4LfhZGH$#iO(|G@7WsX*|obQ62j#?eMTBm-2l( z_-N@pd39^zvd3-OwG(B@3?$`=t^75wj$a9gYi>=rG`0$G)7~xvUGJ<~oLbqIEh7UDPsdUe6#|r8KPZ=O1hbh~yaW?~$F67d1FRX*!H{kk03Cd->=s z0efrUZoj}R5!a?+llChWAvl%P2;y|U(`ufk^BgGfvn#?xDx)9N*90&fDs;fo4@cAV zBS%zst*oq!OPMvRt`K6ycb1g@>&eCug!+>NYh zpMroHIFFD3`PS%Ir(asOSZp&cyT%%h)=V8g_OTmBW56n%ZpyO9DYi9R{}D(J(M#0h zpna}72~k_|+g<_Y6&K^&RQwdZv=`iUMrTZHmI=}ZW#^mc6BFf-`)SwRQEO;5fF@!3 z+&)+@2q2#(1U(OmA)oST9_cY*#}Z?o{jqo3pzm(KxfUTM!b0FI>S-*wplLnBA-W}^ zRj>sF6a=MAK|8=j1+*e`Fvn+R=QJXclTk*dgZFvG{Gd1U>V6 z>}%5)srnG|8>k1?T)A?^FKFu5>S_)r341^^Nt97w^0o*=ArVY2qSo3F@lD{v$rqRCiquc~8L&BM8qp7U2cH^uV30DWp#b~bt2+^r3U$;eCZA6%DAZ2@`MoAr`)pqOdc6Z~6w5aza7{tc6* z(8UsAe7t>@ep$u6|4bggHzdWu1l3%pf8)0EV3&*fKQDV?3tp=KuL{xo*4abXX$qCSqf@iX$2xO&k^*!SGO7U5Kg7o! zG}5}RI;?E*zlh)%uWwOCLp=;VJw7J5=MP>x>fN$QSs71%=!al{s#T)-H?@-pA(DD= zjN$)!=|)rwg6k2Oz3eTW=@|i#he{&<%-u(3-tF`~c0cl>wxUgaoESD@*|nP@)xZ&1 z6Suhh7V<$ykbw~r6E~%LMYtv$Cwt=I?EVYtkCXx~auFG>Zq(%7CwI_=sBfRmo|d0q zR3<GFyPJ=F2!5u#`pIVa+$YQ^r zZHZUb&BZ_H)f}8SWI{cIt0iu`%E->}Cd3;xeH`o5r+r7~UQZs;ko|Wm_fhp4U1cH( zcLzW0xqc`D8H{Q7M$Vsqif}J*fGb3hl&{cfx2I-)#-puAgEnP%XoQ5bDFfAZCsv7Vl9doK3AjvWyw(|`8Ub6Se2T$}#+a>nu> zxGb@Tmp8p>`R`n-*zfL*95-$=-vWGB>`gx9W(C5YSSszDD?*};ZoRd&&t?B@02;kw zmglPoeHWGFn>QOPxN|ofd3sL{ReHxc6bdDVP}BV5cwU<%PzYU1yB4{9rdn zGc8~f1vJS!;U%p$N0b>2g*SPbpO5WpJ%DS;))w90y}eK_?sG|2rNdlDZTx~uW&k82 z1e?gt)c*WaBfDSn{rjz9zt@xQaP>sZpjTJ@5L$(fjThGjk52dlg+fV5scK>9akE1) zpI6$n_HYV_iiA}rsUsO3xk5IFirI{)(zEWmS{r$wp`kH-yZ<2U?scn|*ug*dOb1d` z3&~OhYnq>P3^2uaP~&MTvE@7av+~*-FEoYx^J~@hUa0O5y^jn zx;LrGs*<}-fz(814$$g~MN^zXC5J@DBJ&Dk_ zu-(z$PbcYH^p@vHbP3lh?WpJ0Zhf0XvTyuIJBu_QVp(1vR0TVatb{`@4+`xDgH7>r>6At32-8X%pSo6vGu#f5`>%ZtD9L&e;w(&g#-zi>lQ;%!mk| zQMBNgt-NnRkqLe;Dc>brFgxbA*S43`xgY!V=_3pgEp(#m5nj4P7bR@;dkYmSsb#{8 zU;LEqE-_R3o;iPu)M-`SH@th>liPoEze|@TXDmv!*V=EJT%ipSCT>+temCs58(wx% zNX+uXL~nNyD%1-<=WJi(5owqmRo|b6Sx&*EzrZ_;W4C>*=ZZDRuKD@`%+99-nyQ zgE(Sor0kE46uEx4h;!8RxBc8QImtzSj%KrD>#?w~CJG|KCWjZ+NrDo{e4Af>Sxc8T z#iK%;>7%9)H7RmJ&gD6Dvt##Y4#P>o(sT^1oJ$BoT4}JA_aA}Xxe26imbcFW(X>0) z60x~1DpZ*s0ROQ&AYd8@cYU%2(!5UPzD^FtHSe0NZ_`0%>gtzE_@M$3;8IDRuO(^o zRj+o*nnBQ3Fn!%wcRR_e=dBkf<0+W){#)0Z1UFoVe1O?Wbj`>v5IyBjy9z)SioZIE z`bBrh%*sEmwi`YbvRxv8;6dNPB_4rh!0XXj*k346vR`ZsBW$M7c<>xf7>s#M9tNpo z2|m%f{WCKrOP?#X%y2UvgmtXr7S8jY0|s;usVlfeTr3~D7gKEWBH+J)1HvbY~B-}o>y{tUb;NRYSseRV@Hop1)LFhB|~YE3XMxL z77TF&CEq&+Gc6k#4_ITw>he@&nF}m?=BnEnB~00WBV&}r;(9&D5-L03xfkfm`aeNW zF;r;#wAm3C_eWu^@Nrj*JCd6;;#tSX=o_>ABGi#;ym>Q6)Y}|oyEjRQSm`P&)pl~6 zE=$t5MJ3#>Y`eGN2Qd!FUgImZ#X3YkLdBgocU5&~MINZ(O(amlU`oIpAw$aO`+FM9 zn1rq#gOF1%{eU!I*g*T*9inOE+toiBKx^m%`la>ssxvYptn?Cpu^~vxuIaLGHA~M7 z4*f2~{M>WqYgLPYun#wH-ReBvmZbO?_gNobr!APjWsB;NPVn0g%UrCd;7;?5zRK41 zb|0Tk#J%xy-{BYj5H8>{kq*Q0|H=)>qM4SmyZ2-!4zNry`1+wwn-0Xmn4zJR&f-@g zf@RN6gW7Zn)e8ulbdJO*LAY5rjw`F2*>*p%F~vvpDnhXu$Dhd4@sKBjf11hbp{Ax+ zvB-!_H5!TvhuZle+G;|^O15rlTJ4VM@Zp=7$WB{szHEChV*6s>1H>#!5}upN{CV^0 z<5RX7eZ4*PS{Fk6OIQ6z%v*VFOqa)rEgJP6@}b%P7vkjNno9-AGEZ(>EQjYPs1;&T(!j`u_4gWry2Gy2;AsLT5jrp9`;>(VV{&T^N}av z-5g5$&R`cY&3kuF&AS?Xm0-f~&W)CnpVRVNt%1q2k7k{@>th!5%}02`oqPoCWL?#R zRifzLA(}Ih zcoFl(x_OUNruRsFZfA$GTku6Ur~)K}T`CU5DY1`+j)t^;R_!oQ{m)~TUf$YrCUG@0 ztmq0-p49ty=fZi21C*zLC#a9`8HmoY6Ro9i`Hi$KoBCd8+R4*h={=$db_8yV0 zPA88O_hN6~<-62xz+1e#5RUnD5hG{qaLv*q3dr{Cg;mZ0vo=|^=A{W>Ehx~b8Gg%y zB;%1(!AWU#U#aIs5dU4%z^N;VNPKY$mKL}l78XDHQG~l*mZLHfemFx9$NY(_;-Z3% zZp0f8hPMH-B$z4>-N`VNH1D>ps%a8? z@k4WA{-AZQ=6Rj|i-Lz%h)@b2Aw4CkksoPsY?;A6FQ9?s+8_jlB3k*o>C*`MrhG&v z#6yh$V0!=9ZY~#oV{zu@5Q1TTse+6$iPc+!;)*cYSJQ`_J9kck06i`H5@HbB%|#tT z^c{Oof`AvKThH=5Fw-i3+MNFMW?f|=1ONJ02HHwW0LAI%XA^!$ESyyPsWag9-1oPq zQ|wE^V{%4TibS()sa%Ss1Nlyr)Qmt;;(3WctS-H`5KqZuSZe}Ear>`ddw z%+5HmBd1HIa>&+j?28a?jaP$&Z>zV>>|Kb+o=RO!VcGlZ=kh)*lCaqt4I-3v&bA0I zAk0lUo=46%#0IBm!=L!)!#7Q*Af^MqHkEuq^^)KPh*bnpVR@Lq%G%Gd968dL^E*Jv z?yu@^DY0WU7=3`IVKm7X^)yxY^>p07flPE}G&APAu(x5Pr z0WOCQ^;y58=y+`xkt5vNj7qgFY88=@5EVd*N%I7Mb6?d9eP=vxIu;PFxuORjSDR1h zGn>Oplu#SCY}q0{R>Ju|l~1v{{_uGccwVUUwHwc!J(5Pez2I6m!A?W{^I*3~rNb+> zP&$DdT578>??8;rEY?nM%wmacRkV@GANDgp%#SQZ(J}qSwGA>s3vm1O*5?-%o8idb zgqA6^)?>!K6-s9d_Izxj(eKlc?sqd1+K%HqmqAlJXK>Y-0YxvXDd|yL`^1;&s8IGW z(qnsYxE{p^1MN0Hvu)&I>AhmMw;Zenxknp9a9oOt>_XUYb1%OC2^7EHHIMn_$~u#G z+&;cEen_3XTb$DB-Vnu%otaNB*NQ^59ifoRnQ4#q)So};(i^s?9 z3mNd>mj*pKE?!H*8~8a*WmcE!vNyU8b^+x(CuW8x>K!X<>K{ z@XQnDJw+dAG{?F??dneHF|OA2))?FnzEMtnV(P;nu|_}`n52k);xlMYz?RvhCLgKIeq{#tzXDlMzHKapL| zlVsRn{nUuhYN_|{Q=D}pW9Y<%rn~gsWXFyDoIBskD?NIOVAlK;QH{$m2MK${>-j33 zBKMmmoSpv`p9ooRa)fA_>Nf=c5)cQ>5IZRe7<^dy`+|p_U1s0$$Zt7hvHPb+93KR~ zGy&2erp-$GC)JkOHPz4SqzY-Hs@j@tBu1_6mM| zTbIy{&`>A2$Nqb&+r)wcDXLc4ZC^^r-&SWAm+3eDZaZMnoBAph3(sr)RuT75LJLez z2;6G+@)@rpVoE?)TT6!lxRMOG5Zy~kfy?xM;!49Asq*|#`Y*T!Bx;C;&m=TDTdx^^ zzDrDQrc^KLj|Y&SXBzJ^jb1=R*g*5!fh;&B^Ww4`EzS-TqM^mV$HpC?gCPzgeQFQC zrp-c6ITUw0m;JiQ%mxYK_neV}>GHP(fJ=0k^!d$`b*ylSlVSG?p|{-MgiMH&3yUXR zdU}1YKhW=#g?D!&$UhUj+-={}pT|@W3142imvKL(&#KW?Ph&5B0U*Hx;tM-nlDlPX z#Dw29i-#BwCnjYR*`)Z9GhY69cge{%gA5HXX4@3Z1jW38prUPu4wH`^7#GJ15cp-^ z#cq~D#2_QV^$}&C@aUD+K4YD*bc)JDr75x;Y}E zots$8s?D;KW(iadrer@SgUM>1aTAixJts$T8rWY7p&WS6P1zHK zmc}a~GqAG5vYeokN9R_~x_HYs}F&itK_22FW$a;x0*p^U;tC}`1waD zVMk`E8kOJxKAM%(R~bM^M$+cAtTipk?Ic|_4vLYdl+PTK8jO>l@f1>F{f*^OWsgk3P%q?d7X(9e8TKP`s#ym@=V7bx{5 zr21c=jRhgyEd^KvdQM?Z2#p0z8f}q!;xFjy~jSD`iGjDRP?0gMOAej z)+*^wOQnYK!y#YQ`HE0r)(H>IEIa@Ii{6OXk>FKy4b+IwT=5{)jm$9p3mnVtvkjgST%LUf8AH!5@}21vKTf2l|_SD zpq{zlUEVOcN+`{wzIl6|nv~Xyu@gv!(r6QMlh&+iYp2w{kbZz4<*YW9>6dwzOTJF<+UmVsWiLo=9W3}h<;}V@u zwP=?@vJK!Tso+xlQpJrxQM?gM?T!fmLA@CgQas@{`9FO`3okihnJW@~p0!TaUgFSKAL9&^ko-XjyJjp9y$lHaAaC;t0tal6yoH-gNxvlNOvZ z<>(%X@KfMGHeN!9hDbqjh>zHRoG5-+n8<$-N0^b1XW8hg2pMH&aN^w8KHn{MPo%>U ztU7%Q*z9%Mz{sx8i6{tA-R8En+3{xoaohc|xz$HhYA?Ya5OwU>)Y6SeLy9WNHP}R{ zP@e@x_5=FacFqt50l_-A8xAt7{dNP+aaOj8KF95c#70%JIoC3HV8b2A}C3dX%@gNksnbRz;BBJwKkM%)$%#c{}S&n z8nZawr{$2HBGF^N0;;rEvZ<-lyaXGtD0d8|VWU`gNNVr&Um$1ygysP_wjiq<~N2eY7 z;OIxIZy*}{ZM{y1dasoj-eKE<9243!Mlu^;qS?Q1Y=avuF+7BJA~By@XfM+7mnGxq z5gFuZTl^+FlTJ(0&6%H^NP0_0nrf*;>wQs$5`s8wdjl=6Tx7kKYoa>=Xt3xi@vMz; zm;TDM7k0+8(5#4QrC@YI;f$P7S&}J$9-ar!_wD>Sz4K69`>fJDEB<~YCCp21+qSj< z`l#2}76Rdma=QD7`XQ*Ix~mT>Jnls*zci8`rmYhw9^<~LQO)R1M$6C3gQ08?(`EhG zmiiSY<#}m)>#bb;S4qP#iq6I@acWiFN(E@SOWg54EXuymmhpBv4SHj|;_JGB^!J3b z7{O#mpAWGBXQZx3ZkK`PP~(2w`Zh9$MCM5FpeIh8ICWljWE3cL;tz51uwlSOt17-6 z@>x5I{TWZINe_3|14#f{d0GYbBmM-jE1kylo6xj(5;8&^vOjS$A{KMq@cHEl>`1x6F#R3!6O4 zy#4H~J=PNnsVrqq5v4k3j>!tH_=v8M(lDE1ZsXW=p7-kg_gLlD-Hhg(ym(r)?to^r z4asD4{LwyZAZ-ZLxnwdt`R2DM@5l$oPH@&_S0P4ih1Dzagi{ujs3?R5u&}rMo%ET% zn8n0b*v#K~L8+LGyiZyIk*2Y0tb($~KDH_U<(`BPzl%*YkRN1!Y|Q9#ZN4o%qSVb77^Pk z^3WMT^x}CWsMbvH?mxcznO)5@#Ip)QBeHgULXD{m>tiorRWW{(eA7z&Pr_{qP;D^7 za{BZhBCfY*xVc!hX!BdejLL{H?ytsNOAxp#@*a4A$=jSbuHIw6I1HLMV9C3~S97O^ zhJ-BK6je|bg+|vOom8=w^(ve=X$&%y&xg{>r-0>*iPHS6l?5BO&G5r~q6KXwS(9%m zr#y=IM=Si0^qu0jT3H; zaPpMyv(&Pz*h7xbuRX%>vO75P932*Tfh3iy_v^XW7qe%3*40m8|1|G@lC7D$;TwM= z&#WX#f;f4kBRJ(Zd+wY$n!}~=!J%!4m1GQ-q@qY03aRk|_TT2?*hBKLE-Y$=;*-2r zb=laGaVP`twstW;J2q~d;Y&fTINy_L%6?S5;9`IgZ|5!6Ykt;mik}&~@g74(af(a; z!QOYAGEcqVNX-({R_ zDT$^dtxBwrN+$g;h?=XnBAGKWaXEe&xzz<|^Dce7QJ}G)t>Huf4w9{yJU^O05us)p zfXR;S+Yb*`?bJ!V!G^VBECDWN;^zUGrj*cbpSAZ$(IVn3q!)jWAF6okJ|8Fbz$Q8! zeI5N0%9{$`aJV+uy`i*ZU&!Hcd?IV!kQ~C2g?2WM3rTa?y z7`^#67XO!c+Z4ZX2K?E+#rwRfYon7e&RvpJyLRyMDu_+>pM+&H4ygyQH>SOfs6i#{ zDxrC1kNm(zs%`0IC9sOT;~zQSZzLzz3)lvsP#u7YAEm=joPsiT$J}!QNRQz5$)l%x zk8HQ5E+Ghfp*ImUze1Q@0RlS7=wFC*nLZ|%5;f#WWO~9<74Ej{fhLFzM-ACjj1oLz znax7V>50cyx(Wdo2#8q&eW1SRRi=zA;WpbOR0U%8fKA;*EPZuspG!aBSR`b@#j>+R9+ zC?T$c@tSXK`uUO3yu8)VR&o)fgeA|sGd)D*$ZlH44wUH&V_~Td&o!(=LfpYO z(<+_LE?Xl$6OhFPr>4Mxj3UTIRvC}wPKZ%7NF+6;FJDREVo4{p-{7`m%;c|H%SW$o zBj~PZ8)XbEa>U;|8F*^iSV)g8!b_Ru#brfh%~F?$P|hMbCz7>K{8z8eA!CpON)aLH znQC%m@XG(y5&4H7k^77n+(;oUuW(=nMUD+Q5t1${le(o%{%pMK$Ss*bOu_J80@)M~ zk>taGi*!gO_t!farR|32;e5L$@^A<<{6I|S5+%?V48L;w)4Alq3*2O7dlzxh$q;u5 z*rq&Mc#9lMncl{!YqEHpHMNR}V1R*%M|ikwmAY5MG?LBFd`vEQcry$j{h7PV&t$mYup?Hz~m zLL{q!{hMO-adveR0vr;*ZL>z1C)EII1kMTJTA@+00uBvXrUHPr4yz*2&U&=S@(m@v zntoEk?HqDNH!4~gbOVxYIDq+lgm3=MP^8LzXUnV#dYtYZS7lHGyeRaacv$nUTBeE7 zjMso6<(goSXyReYdcX+rl*A9uDY1>`A%T!SwI`AJv?34I9;1XVBTX{)-}38wO{ zl(BC8J8iMo6oV+PpfA$K65F0}X)jO_+}j+lU!`(JfE@$%}&-1bh(&FA`$_RhyI zpe(|vTPHNTcONDY&)n=$1>o)NF>4C?EX>w)E+ol2aWP)yk#MB9T49H30R}RyvXdOF zs;ZBbDeY~}9U@r-msXk=^gf-PbX|@&#SM^b?@EG)erhtDgm>+f z8MP+w+f?_F+Xe?i`7=teD(ZVvKJ;#C#~#?C0PY)Q)85cuUu69iKBuN zDfU?9p^b>GJ{o7>0V2hxQUd{#4-c45YK{N05uL<208WvQHm82F9~vSATlN2neq5%l zv8!RSy3(TUFk5v((ky5SuVCi|E;;d`T}e<1daaQof7;s3cq?E@#=d21P-{(H&PnucQI~XS*|vy?XP@ip zY@5GotX1B;Pii>EJlKpja^)lA+d4Ybvct@iQkf)_S$|;rH>m!v!R)kLAXOd z-|ie!P;plx4J(No18HHs?xpi^D9iW!;+;_3*kvEpTc&zTXf7HX>-%-xBO|%FtuN@7 zK|N{IjJoA=#+4a@g)j81GZ%F!jJPv=5WuhJn#7O~{bvRaSvD=sRvA4c$D}$Q6!;m7 z>C;1QZtWTgMK~qedi=h=CMuhbrL1a0sNLI7D}8Jsy>!iNv@YbvfL?eKC(gUsH!XZv*3{HV~DUXNXk>%I< zd`ugqk+U;33Ih>nhUccnR+i506D((uR>1#E!ia9XTk6w8PVD*qRDaBj=*2ED8&bKO zCfmB$dWjy1DGRTE{;D9aK~d2x&!th6nzqC=KXv+~9zoo2MRCA~&z~2!$WRXWvwJnSuTS2ZrpQI3=)Oug zV;2nQq8+(qV3*c7+lnFULy2fT0{7Y6=Ac$OGYpH2UmmmuU;^;81X(y3W9vJu*Wkf+ z>_O&S=*8zwj<(*?vEN7zg?Ssw&7PExqNvl+o zlV2QI?ft&0fKH3=9!l&%2sgVseV-45W-ora^*0f>32zEE2Jf#r_{7fPN$ppvPtO+D zEUiGtM*<-(O|-3erCOPt)5IxrNTqYivvm=d7cD)QlZ0!w_PMWGKH-pym;LX{Ad%%g1!HG)2nGlo z?0pWNc-!$_%2yWUP3p=^iCce;aYzmD zMsb?T(r4Hg^Y+$O&?KOxSt)lL2V1BFn$A=5zVnpz_$CMB`1^nA$L&*Ayh@( z(i&O5vFWUXjIH#X&Ny#9jLQ}MvrMY|q9P-MG}T`fFB7>G`##ugG4sR2anC!?oOuEy z)Qz-fU!`tuKNz}muwlzQ3c%BwO$XQo7P<3S&z?$WY;2IX6}l=EL-p|SYhBkl zOD>UDq%HdI?YW*=c+euKqZ2xnN36?Sqq$a=2bce( zF_&xJ^N@K&1bvoF2{>kU@Q&#{?+Ne_FQ4 zgA@d6!*mL!BP^@Cp79#L{WerKEPb3Z>Ph387fRj>?#_Qw9Ynjz)fxQM3diV9Ai7H8 z;DhZlKNObx8rIaZkh~+`c%?$Kc)xzw-QnUAa{}Vd$O@oXkK>qQRX;+MeS|!qJCjmp z42RwrwEWA-s(Eoi`W_L0JOk!d>%naWlSVn!$UeHHFgiT(Yt1jrKGJ)U--m74x(AKpjjsM`6EAnoB$$ZwMh5Y0B%Rldx|5n8QHnp+*_r^*uK5N*E!*+;xYBqH z!B0<&_+cC$x#qaAKKjAYH?6Fuo_Si7f0^upn9F0K6%yvK87debnoJn!nX^y=*Ww>*;7gQVa~zIDsSR$j;A zxBIL5n?9l>>QAx^f9%dvFI*HLfeP|(=%WWQJ|Q8R-zl4k4x;d}w-srK6l8M!LY5y3 z3<`>1BKH(cm2GaUdF>*bLcqbV9B*d<#??#NGghXi8>>E!!G-*!OwY=izt!)MV|TL= z%dD<;%Q}?&+oL85#o^Xqk!FYqb-OLXH5qBc5KD$1?`L|!fm;?97RsusB>VJW_JSKX zVPgK)!S?r~NrKu6?zj+Nd{uR|JMys-=62lOi+~aT`xtPuM>L2IK3P=Ydnnh9Odnwb zXxE{`>o*6`S%GlkEjTEq9aDxyTLavwkwoY)2xeDx>8rMJv(tvlt&Nzx#L!q@-x{~c z;_7dAlVYukfl}aBLO2!1*fe4Xo1ySsn&Y`Zi<7H;{RL0hl*ZK|`s=+Y$M zI`7NpQc6I~cd4=7_L;>_83 zHRp2ifG({8lp|S>dWp7^cK}Am+CPCTDStI@Kn9|8ue&oSj&PY~!X(?P{4;R=%k^q^ zZruvYnO&3JMyC-M`E``5lcf+;D+YJakC#dY`L-=Z$o*MuHO`d{uUI(A^r;h`y;V{iu%-%@!LPp?ME1F9#2n z2^wcWfhUHR*GYNCIoZl|B<)3l2SNIGw$Fs;8{kyRO*R)P<6gf(PF{dzTj=gP`A+Nb zy|CKCj_Jrh-#_J?)RSMRZg9P>91E2UD{f_KWo`0&R@L)Er?Xa#ps=+)Aiv62VQnNSr;1S4Lwm2c;Xa( z>s7H$HYB*%rFqy-$_ZFAT!Y?E+SCAp^IMD`0=-_L&)xHV-88@oqw)#zbeELA5nC zn{oA?-#i2~^9Ah*E|JbKnfEoE3S#F3q|Unh)#_&;`&D8Rp!9ES( zv^I;Plm{lKcuUj!8mAB1U;X&8y4Qo6>UE`l8d4FQc+BnU4M0irtb?U<`N|=)-^rME zil4xtSM=ae7AJWIlz-qrLjoKQQwNkFs%E2FV4++(I-n#gHWn>GV$B?0{RzZZC=p~0 z$;Sj_%A_TfBAi<^og-Ydm=z1ZDA$)hhiy4ixV3jl9Y)g1!0AnVv-uIOHa24zn{2Vui_hW$=S6mK6YE4>GXU8FZ1zkh%^ zZpVJ{`{_txi8OZw%=Cdasbscbbjm=D3ap%i*Og;n%k`Y5rKxENTty@_iB(5olwF}+ zl%I9lY}c*Pue{GpHx77!nHUDglg~7tQibrZ0}p=Mlj-#BLwg#P6TsMoF9J%k<07T` z1o?Dh*X}%8SDjSH8?QY|M*;#8Y!?0q(@vaM(S#xRyPCIdy(iVhE1Y{l+$vz+g%)#v zzOM6;Nf@r*YO27WqTW^V4V>gM{`N7<*p>HR^6<#IrJagP_UM4)ri1#iUygH>mu?;W zR!6B~G;jaF)z3bDHwj_`-Yh0rkRa)uq9B84-sksXP!GB3uk@q=HCUK5GBUH|^gm`4 zDxfV|o03B)VyeD;*=rWQeVT-l9gsmCe7#~mlogY3<@@n%IH-zQV~=qW9s@{q)DIqy zP2vRdoK%YhOt;o}T%U#vRnFuLSqQsS(N38Ynkb;%GQxujzm)6jF+a2HgO8Z~QV$NX z1IFVoSZ;{T@{BJf{hDTJ}4zx$G2>IaBU^llnEA;EjrK*_wZf5Y#6w7m?$5th;bR?Sq@9`}N z2t9Ct12ZD*x)fqE&}A{tB4H{=6juoFr>nl?ikyY;@X7X>Xg+Q@Z)$Z07AQgMO1|m7 z_}_FdFeg-ZUf$3VJB54e*{9C~!yDl>rCkTiJN$GRA_0RDJLgxI#dq$u{N0-QBoYQz zXjnYyVeE2ntHv2<)1KPe_hpo7f-{tPCpL?=-Gv9RFD4z9yc~66 z-=1dqzIt8aEoG_TbNb350;5jFQ3~fgiQ*S@%P#ckVB@c^dpbZ$PsVlLAt(7$wDeT88sQ#rhL9H8!cO|qcAQuvDU4eRlOS@{pRt*lF6DX znXyhz)J&cadO}}VBE&fDnN+(dFn@J?L%lS%S?kua%G6wu%Li!BwAhE_H3iHK;D(!h z!P6c`FH#k`f?Z_ehGD^kv4w*DG7^@(O&G-|OP7FD=>isA$Thrihn0wiHckGJ!Y_iJ zzp(qz1E)LO%pAX-r@s2Rg8fRrU7ApIFrB?!Ko7w^tf8iMW8m?_hld_o@oAse;N4=8 zWeBMyjpyCeSL)RC@QjnVLJV!Y#&g@k9aU z`t@^CT{KB-_8faVV=g}tTgBdnky;6 z^ItlPPPO!MV%gk|_2*lX>7ok`e6!5|qpsR&*)liI6Va~FK2tup@nMzUMo)3%bPy*G zsNn>BLgr*GfJCa9!e6^S|-a$rn()70WyPgxFcU@=qfdkQOn(*`I|2ei82{adfFSIQMOZG*4BHD@Q%;qegJ|L6qOdd z+Ny;^>+g{~Ym3}~OJws*?#zvwj&p(o$YxsQ>$DL&1^%lD5BTu@eHx4ZjlNBl4`Vm! zSHkFDQ?jzM3{9eiEj6zFxC_+;$BCO~lV9pzau!rdO%F;}c>KUwin|A&YdH0}^l|6i z1cOcV6^WM~1I&;ra@){yX9fvjT8!i@3hwd&zYie zS6yI182VYd_i}52;U9Q7MslJQpLt+pL5K8_Z#tW5L)#m4prZGc@!J|&)5R}uG?Sfy zSSYLO;+!K?nnhYsP}-h0cjXGIXqT1zuPRYI>Tr7@=orpldQ2B~hfc=ODvsmd8)Y#m z_){nrJS%*@s&ZGTYiRJz9TuoEq}CE#0SFQ3)&6D^?~M(=+KO@yX?O|vh)jMdyni4P zwib<(DY_yZrO*HHs6(jy<5A8=R;q_Xn^2l9jO3%;iG%aYX zusckBl}dv6JZppqw$%0lsPK#`TvazRoo?d9?RMPlR*8y<-i$|uBzkR)9xds3o5|0_ zK+dCi4VlWEYdKSMhcB?UwvMw)u%rMU+4Xu%Rsx)t(!N0 zBwqf5*Ji-pWl?SDQ5t)VMK_eiZR^~@7jH-;Xhv~~;~ohDp(9q0qLa(`GHd;F)q05W zq9-d29ZBHz7Y}*6ag4hQw9|{WjzsMg3m_wGVae0@SUzZB-%;Lglj>H2?_96~tfsBG zcm0xNQ+wL2m1w(^$Y73-K{QnKNue_BkfvBZs`QQ2h1_ZvHqgG#6au9%+;9;!_-lfV zCXOEcH@wx5=2x7l8t4?9JB-|5Wwg7oOZ{87Eae`v1R@h`hN?d3si$CEU?vV+dhAM< z4a;SGa>7hjSlUDrJ?q; zqVANdkxTv~8EPnOEQE&IpAUnTud);C3!v!BzL+)^$iUyhHu2-fjCsWAqh?ApB2UhS z<_Gh3ui(@_7{o{6+Y3Rmq4LB(>(9%7@8o734(IQ0BR%!?MfIh0&+*a55$b?yeyTpB zVR3cL9R8G|ijp(Y;Xr>Ih#^i=sk_`CN2SRYg9-*(v)~seV)#!TF=P+46%qF-LOUAlla`zZB2X=&36!&eWQrt5a$h6>l>%6_sy1fP>{4dVb* zG@xR;IsrFsg0fuC0JWI&}K>MXZ{bo(rFvN7s`0-YJG-e^i!9Wzfr%PysfEk?| zrn%}2h>pMtx5(46f0{~QP*PG7ePQ{6iy#fWE(!7dMz=h8+tWGv0^YbWZ$h}{uEs0v z33E0Fx7c4q9Y2Ak6akkg3r~NsGj+g1dYEFOjxzXm8Q_-9t9Qy|tWLQ}0((}$E#U72dT zpxJ7afIj%%XU5rPvTXQ)_nebbY1RQFMk78iucV_G%elAEcdV&=G>*b>;S9jL^5+$6 z(UbDy9tpC?fQGRg28G?fZ0Y$Qt&-<5b)N{zeNVepmR5z4?#i4}0d#MX+(TKj%{!kt zZRJ2o=H}_Ji?YVM{F#HCkWydDFBd$UOic{czYB8%Jt}7h)MtP8yrlVvh|TPG2Z!** zQcyHpu?Y_DkVgV7v#~g9?GKuGAWY?-`a=>Asr{J#l{w;|FTYo``_d|3WeSTTBY{Jv z=*-%KUl_Eo8-@D|kCPDDX)uN*3!-|66^dC6`|HYzwNC3@%B|qk$WB_7L~9kzv+}Y_ z^s!oqU`19Anw3ymXRCw{b0{dJ36NU@Nh5(nI!g0b8iT2RdcEf{XvFVoYA5KMVSN0N zHsn2GfKevkf;Y!tkuLC$Z0>VUJ$I?qzFnM@?yxxb82qd}`K6mY$3O2^Jx%AV=lbY|;f>V6rs|P(MJZSu0onb;O5pf4*xF{UP!Ejt+qVgS%s7T48M5&hslAbzZ zb+Af9!D3==zJtI1=3Fl`D>-y7?p%BcHXy}$O>l`6c$D9TuKPLFq=BN?sHg8}ZlrGo z0g%!d^2QAXoxBX#zY%PxG}$euoyS&KYEvNPs^o{q;M_<}S2$knR}VFL={dX#+YIc6 zI7#XtugIH*D}L(tFD_tSoZ*V-|6JV%T203*gpc;OA&j#Z)JD@v^9Na(;^$yKs6l*$ z2qoYO_9|s{dN4Jl<-f}AoCf0Sf1cm^f92Rb2Z=Q~)x`q1A;HR>Zwl;h&Fum5@8X$d z%OA6Mi0kq6Y?L&x{z9^EFOAU8KQrceJsU06qdl}j%I(|RufNbiKcUl7Ht4^YF89<1 zrVAp!U%Z+r6p#f!e2%`|mQ4@+?ON48nE2f#F`j#VOw3;24_bHD1Jzoh(gNvRVN}ak zejdC6x?2Su-)XZsngJ0d?Nvml727*g2aWY1s{d$YeBLuM&hI-?g~40(0QTiB9L*ywxc|dM z)%pkI{g$pkpd<_%v4h{9A0dpf-DF0m<$AVSLDWsEMMgN^Plz-*`VJYbxaUz@wCbC* z3CFP|#l{S6@tqKv7>4RbXu|`D$vF|y$u0AKbz598#X&JYNjxye_<~3Zw2r>hR2`3r z)q_KhTkH`1@odk#w{DG+UaNQSG_KxMk8R>&m;u;fwbJW$DCR zP$>vOy<2tA8Cstj#tw#c0rh*$*D6dm6zZ5cT^@ZuQf$m@GH+>Tfd z>{K|yO3oIky`%)p#OT$VipON+$izyD0cB*~`Q<;J-%KlG?4qqxfg{0oClSFR6c+HqJ?E_@IjibwJ=ZYz*_Mt56s@09>`p3Ywcb#PISbOI z5A3e6X*lJh2@o;oau1-mAXRL(=Y^%Oc8ofUiW<1m6@BP^h0Vd_>E@)y7*)UNC%2=@ zrsO9rnl(d6x1R#3Xu$*rxaeJKy@}wLe|HCMn~+k^$jK))%zq5!WdUbs~jr;kF%Fn=KGSwnO` zqyB@=-N}6_$|re#7w`Y~!f94Hj71tO4-kuwD>y8u#{Gk8yvo<2f1+cI1qv@AC~onm zlxLkQs(12|f%68}RofzVLJu*X0V+E2tAm@@@0&~^gk_c+{eLko5z$=S8xhg2L8`D% z$tE(S&6M_y(qGJzRUk+mdz*%^@Qvvs2~~nO52rH~oa^oR{MNH#Pp@uPqtb9aMr0C^ zAXS@y{qxW7K1$0Wyl;L(c{NDX9PkNz_Ss0kzXHeYzeM{s1QRq$#jJi04D)}{c2@_e zD8E>-mEu4og_U)ZzNrWzL zh`*{m<@8^$yJ`TsR)R4I`GUf&j5#oyke+j0cU^puQ|FIuEFY}hc7zM()oMnwmV z|4C&E*n|)ZoI#y*r>{qgb%L`qU8)3!6u)jOPe=?SZy=i)f4sxlsz2qN{eGZ2KbT55 z)^J3BI`JCPv#|+-l(PK)Y;;CHqQze42kSrKMc|Xae_iqhM!C|@xMtX@ujz+Ag184g zy)u52-Av(z9Y{-a=iCMI`F#GOvi4kw89MQ<`E08tD!;~es=rw#`U&0+1MSM)6{I`E zmvVZl>dToOdNAsn#b59h-hRz``v$J`xY9;Za*Uwdm+jbDP*3VEZwUl4u=w2RA#P@V&ZoOT2B? zF)}j(kxe*#XQB0$+}o?eBW?anqJy{uFD^i|7#*LKEt+Lag#YJf%VOz1V~KOi@JV*e v8(EJyiO}Z%I%M$w26Xa&_Zi;THToqWcg333`mfmr3R9B_f5i-+y7vD86{ck= literal 0 HcmV?d00001 diff --git a/docs/roadmap/image-2.png b/docs/roadmap/image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ee4c977c3bf06c19d7a8824476db922f6fc669ca GIT binary patch literal 65442 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

C-yv9qFZ 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 JX*6&1{{kkL=X(GE literal 0 HcmV?d00001 diff --git a/docs/roadmap/image-3.png b/docs/roadmap/image-3.png new file mode 100644 index 0000000000000000000000000000000000000000..e00b79e0094e50c7cfbd1cf2779f7cbb8f725e00 GIT binary patch literal 59515 zcmeFZc{rAB+c$bO3uP!oMaDvsN+LrUDnl6}ks*XoDMOhxkTJ@TQjvKcBatbRDWMDv zGDW7!oSF4Is&~Eb_kQc!wr~Bn*0z1N=YH;|p38Mz=XoB-zW=8E@KHN)bR9JtHHAW1 zr+7?WgF;!6PoXUPNwpe()3!aI3jbPWt8rA8lKyVX0RFJj{P6L^6iQYg&Aibn{CVx= zV>-4J%KCEh&$3GE#B&r%KfR*-VNC~vA735yw3-)X7F&&iUM*8sKNO&pw8N);qxuGO z+X%)CC2HpGT>tq*@laEPw9=?_lYp-(wad21t~*}0@g)6Z(6|TJj^L-;Otzd|Se$lx z7g$tZx{PUb!bzHaXtZj#b!goJF|XYpQsd^UWa#ZCOdQS{Gq zi58gB;LRWFsd@Kqec!t$!P+s@^s?JTMVS;86^|(?$-1~m`uh6zG<*N~F`yRK3YwGT z<>5Iy*p&2Op9Le|@o*1b<@--FGt~^%>FDS@*lQjT-~L$K_HJk>Z-!ZjAB%9=hYu(B z`p%}-JPj;t!5_%bgMHpl006%JQy7vy>D`C zd|c#gDJ9KGDUMNETKbr(YFN(SWu^I~P*d@eqT*U5C8d2!@9OKrc=SCzJx^z!^Dzt2 z(m$21my|SqE%f2Tq)^)Jyu4kD3v)Y!ghHEKM>=nuDvFKe;o;*`YIpy8(+0oCDcNM` zzr5YkbFMmzhGp0J#g{K$Y+AE^OM`!Qa&1?+7jK^?%j95l`D>pI3>!Db=1u(kqHPlp z8pmi z#8_^vp?fp>t&-QiXMSNJ%W>SSI?J~2UDTPpOI7vtYbbWZ?OW%jhL6^Ti}FrtXlOJf zo!pKuyqtnH5FHcK)zcH3w1JJySKRjd`Nge_j5j|$Gq+mQXBcWpEAOce7F~LtmGuhm z-__g8o1`7_;K3#yUfyatZSN;fwmMDp-$+eOwdq*#_q(!m#j#f32@I_K_4Q@17sKYw zewmrODc3zcSFK*h7Au;~&#}%`XXD0=XX_)RbSvHFeu`C#m^e5)m$$ZRr%VidSTi}) z+S-(&9<#c@Zs6uU?xU8?TX&zOT)1$7=jY$muC-lQA?VSQCwHoYw-0^wv;WnWf53il zV`^HOi0yZkRKpSjjhnY_^(GWE>JE#}adGxIO&a%*@QD{TDXfrsD_@)J~VQ&wh08 z-i_gsB?Bvllt{PPwF(LfV}tcgyMacM9mWB0i#`lh6lYaZ>t7{ud7p=V%NMn^~YHd4mWX5RElSJ|q<(Knk9 zT>bIj`-4Z1HWx4aKC@H5V56DY($dlAm%d6&{QA0i?b@~BCbu^-GaG*`un%uE@|3+{ zT6>@K;K9w#Q@<+k85$bal~}c=-}(6^&jjB%Gbbmc>Eh=c{s49<-{X(=M;*SkIx{=F zEU&|j=IGI*ibcL-BO|3Xp@O;0S-J&w{A{9@JQ)T?0-@Am*6ptg?1x4I-RD=Ju;D#J zo3irqD(hvI{P8BsRCiHS9`0GSv@qN56P+ z+U>!guh}1`B^0cutgP%Z(;L>`l(b=SJaTE9xHu~|L5qK9&8LqaJHKA*sK9Ds;NS?v zy|S#(*Vh+~GbnNjn)Vy%Z{+shB(gksyJ|~#&^ik4(wn8lDH&|;qc(a`YNZ_=99OPf zk(jDEe&WO%Unap!%VvSJl~@S{4nK2S_bo{~|K8b>uJ0EV#Hd*G@#AU5vWr$$H0I{! zid+8`*hF2ve98z`UN_$KfrP!lj~_pJjGpWi5^8*L#U$^qjBa)M z!-uTW^CNO;QWw+G(nd4f7nJvWo%t3hbL5GHeM5pOhd;X%+pb-^`afpHob!vut$u}G zHg5gzJ0^eT%eRS⁣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

pduDk9a2(gLs!vZU|^=yh5V3w#fsp80I3{d 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 literal 0 HcmV?d00001 diff --git a/docs/roadmap/image-4.png b/docs/roadmap/image-4.png new file mode 100644 index 0000000000000000000000000000000000000000..77530008e024f1935ec66d85582f84a20edefecd GIT binary patch literal 141456 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

8`h&t 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Â- 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 literal 0 HcmV?d00001 diff --git a/docs/roadmap/image.png b/docs/roadmap/image.png new file mode 100644 index 0000000000000000000000000000000000000000..fdaa8491d2ff5bb3543f2d0c9008dcb72119f655 GIT binary patch literal 197736 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 G9P~dlxKjTB literal 0 HcmV?d00001 diff --git a/docs/task.md b/docs/roadmap/task.md similarity index 100% rename from docs/task.md rename to docs/roadmap/task.md diff --git a/docs/git 운영 규칙.md b/docs/version_control/Gitea Operational Rules.md similarity index 100% rename from docs/git 운영 규칙.md rename to docs/version_control/Gitea Operational Rules.md diff --git a/docs/version manage.md b/docs/version_control/version manage.md similarity index 100% rename from docs/version manage.md rename to docs/version_control/version manage.md diff --git a/server/index.js b/server/index.js index 11f005a..6f019bf 100644 --- a/server/index.js +++ b/server/index.js @@ -81,15 +81,21 @@ app.use(session({ app.use(async (req, res, next) => { if (req.session && req.session.user) { // Skip session extension for background check requests - // These requests are prefixed by /api from the client but might be handled differently in middleware - // Checking both common forms for safety if (req.path === '/api/check' || req.path === '/check' || req.path.includes('/auth/check')) { return next(); } try { - const [rows] = await db.query("SELECT setting_value FROM system_settings WHERE setting_key = 'session_timeout'"); - const timeoutMinutes = rows.length > 0 ? parseInt(rows[0].setting_value) : 60; + // Priority: User's individual timeout > System default + let timeoutMinutes = 60; // Default fallback + + if (req.session.user.session_timeout) { + timeoutMinutes = parseInt(req.session.user.session_timeout); + } else { + const [rows] = await db.query("SELECT setting_value FROM system_settings WHERE setting_key = 'session_timeout'"); + timeoutMinutes = rows.length > 0 ? parseInt(rows[0].setting_value) : 10; // New default fallback 10 as requested + } + req.session.cookie.maxAge = timeoutMinutes * 60 * 1000; // Explicitly save session before moving to next middleware @@ -108,12 +114,24 @@ app.use(async (req, res, next) => { // Apply CSRF Protection app.use(csrfProtection); -// Request Logger +// Request Logger with Session Remaining Time app.use((req, res, next) => { const now = new Date(); - // UTC 시간에 9시간을 더한 뒤 ISO 문자열로 변환하고 끝의 'Z'를 제거하여 한국 시간 형식 생성 - const kstDate = new Date(now.getTime() + (9 * 60 * 60 * 1000)).toISOString().replace('Z', ''); - console.log(`[${kstDate}] ${req.method} ${req.url}`); + const kstDate = new Date(now.getTime() + (9 * 60 * 60 * 1000)).toISOString().replace('Z', '').replace('T', ' '); + + let sessionInfo = ''; + if (req.session && req.session.cookie && req.session.cookie.expires) { + const remainingMs = req.session.cookie.expires - now; + if (remainingMs > 0) { + const remMin = Math.floor(remainingMs / 60000); + const remSec = Math.floor((remainingMs % 60000) / 1000); + sessionInfo = ` [Session: ${remMin}m ${remSec}s left]`; + } else { + sessionInfo = ` [Session: Expired]`; + } + } + + console.log(`[${kstDate}]${sessionInfo} ${req.method} ${req.url}`); next(); }); @@ -171,6 +189,14 @@ const initTables = async () => { console.log("✅ Added 'quantity' column to assets"); } + // Check/Add 'parent_id' column to assets for sub-equipment management + const [parentIdCols] = await db.query("SHOW COLUMNS FROM assets LIKE 'parent_id'"); + if (parentIdCols.length === 0) { + await db.query("ALTER TABLE assets ADD COLUMN parent_id VARCHAR(20) AFTER id"); + await db.query("ALTER TABLE assets ADD CONSTRAINT fk_assets_parent FOREIGN KEY (parent_id) REFERENCES assets(id) ON DELETE SET NULL"); + console.log("✅ Added 'parent_id' column to assets"); + } + // Create maintenance_parts table const maintenancePartsTable = ` CREATE TABLE IF NOT EXISTS maintenance_parts ( @@ -196,20 +222,14 @@ const initTables = async () => { position VARCHAR(100), phone VARCHAR(255), role ENUM('supervisor', 'admin', 'user') DEFAULT 'user', + session_timeout INT DEFAULT 10, last_login TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; `; await db.query(usersTableSQL); - - // Update existing table if needed - try { - await db.query("ALTER TABLE users MODIFY COLUMN role ENUM('supervisor', 'admin', 'user') DEFAULT 'user'"); - } catch (e) { - // Ignore if it fails (e.g. column doesn't exist yet handled by SQL above) - } - console.log('✅ Users Table Initialized with Supervisor role'); + console.log('✅ Users Table Created'); // Default Admin const adminId = 'admin'; @@ -222,12 +242,22 @@ const initTables = async () => { [adminId, hashedPass, '관리자', 'supervisor', 'IT팀', '관리자'] ); console.log('✅ Default Admin Created as Supervisor'); - } else { - // Ensure existing admin has supervisor role for this transition - await db.query('UPDATE users SET role = "supervisor" WHERE id = ?', [adminId]); } } + // 2. Ensure schema updates for existing table + try { + await db.query("ALTER TABLE users MODIFY COLUMN role ENUM('supervisor', 'admin', 'user') DEFAULT 'user'"); + } catch (e) { + // Ignore + } + + const [userTimeoutCols] = await db.query("SHOW COLUMNS FROM users LIKE 'session_timeout'"); + if (userTimeoutCols.length === 0) { + await db.query("ALTER TABLE users ADD COLUMN session_timeout INT DEFAULT 10 AFTER role"); + console.log("✅ Added 'session_timeout' column to users"); + } + console.log('✅ Tables Initialized'); // Create asset_manuals table const manualTable = ` @@ -242,43 +272,105 @@ const initTables = async () => { `; await db.query(manualTable); - // Create camera_settings table + // Create asset_accessories table + const accessoryTable = ` + CREATE TABLE IF NOT EXISTS asset_accessories ( + id INT AUTO_INCREMENT PRIMARY KEY, + asset_id VARCHAR(20) NOT NULL, + name VARCHAR(100) NOT NULL, + spec VARCHAR(100), + quantity INT DEFAULT 1, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (asset_id) REFERENCES assets(id) ON DELETE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + `; + await db.query(accessoryTable); + + // 1. Rename camera_settings to cctv_settings if old table exists + const [oldCamTable] = await db.query("SHOW TABLES LIKE 'camera_settings'"); + if (oldCamTable.length > 0) { + await db.query("RENAME TABLE camera_settings TO cctv_settings"); + console.log("✅ Renamed 'camera_settings' to 'cctv_settings'"); + } + + // Create cctv_settings table const cameraTable = ` - CREATE TABLE IF NOT EXISTS camera_settings ( + CREATE TABLE IF NOT EXISTS cctv_settings ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, + zone VARCHAR(50) DEFAULT '기본 구역', ip_address VARCHAR(100) NOT NULL, port INT DEFAULT 554, username VARCHAR(100), - password VARCHAR(100), + password VARCHAR(255), stream_path VARCHAR(200) DEFAULT '/stream1', + is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; `; await db.query(cameraTable); + // Ensure password field is long enough for encryption + await db.query("ALTER TABLE cctv_settings MODIFY COLUMN password VARCHAR(255)"); + // Check for 'transport_mode' and 'rtsp_encoding' columns and add if missing - const [camColumns] = await db.query("SHOW COLUMNS FROM camera_settings LIKE 'transport_mode'"); + const [camColumns] = await db.query("SHOW COLUMNS FROM cctv_settings LIKE 'transport_mode'"); if (camColumns.length === 0) { - await db.query("ALTER TABLE camera_settings ADD COLUMN transport_mode ENUM('tcp', 'udp', 'auto') DEFAULT 'tcp' AFTER stream_path"); - await db.query("ALTER TABLE camera_settings ADD COLUMN rtsp_encoding BOOLEAN DEFAULT FALSE AFTER transport_mode"); - await db.query("ALTER TABLE camera_settings ADD COLUMN quality ENUM('low', 'medium', 'original') DEFAULT 'low' AFTER transport_mode"); // Default to low for stability - console.log("✅ Added 'transport_mode', 'quality', and 'rtsp_encoding' columns to camera_settings"); + await db.query("ALTER TABLE cctv_settings ADD COLUMN transport_mode ENUM('tcp', 'udp', 'auto') DEFAULT 'tcp' AFTER stream_path"); + await db.query("ALTER TABLE cctv_settings ADD COLUMN rtsp_encoding BOOLEAN DEFAULT FALSE AFTER transport_mode"); + await db.query("ALTER TABLE cctv_settings ADD COLUMN quality ENUM('low', 'medium', 'original') DEFAULT 'low' AFTER transport_mode"); // Default to low for stability + console.log("✅ Added 'transport_mode', 'quality', and 'rtsp_encoding' columns to cctv_settings"); } else { // Check if quality exists (for subsequent updates) - const [qualCol] = await db.query("SHOW COLUMNS FROM camera_settings LIKE 'quality'"); + const [qualCol] = await db.query("SHOW COLUMNS FROM cctv_settings LIKE 'quality'"); if (qualCol.length === 0) { - await db.query("ALTER TABLE camera_settings ADD COLUMN quality ENUM('low', 'medium', 'original') DEFAULT 'low' AFTER transport_mode"); - console.log("✅ Added 'quality' column to camera_settings"); + await db.query("ALTER TABLE cctv_settings ADD COLUMN quality ENUM('low', 'medium', 'original') DEFAULT 'low' AFTER transport_mode"); + console.log("✅ Added 'quality' column to cctv_settings"); } } + // Check for 'zone' column + const [zoneCol] = await db.query("SHOW COLUMNS FROM cctv_settings LIKE 'zone'"); + if (zoneCol.length === 0) { + await db.query("ALTER TABLE cctv_settings ADD COLUMN zone VARCHAR(50) DEFAULT '기본 구역' AFTER name"); + console.log("✅ Added 'zone' column to cctv_settings"); + } + // Check for 'display_order' column - const [orderCol] = await db.query("SHOW COLUMNS FROM camera_settings LIKE 'display_order'"); + const [orderCol] = await db.query("SHOW COLUMNS FROM cctv_settings LIKE 'display_order'"); if (orderCol.length === 0) { - await db.query("ALTER TABLE camera_settings ADD COLUMN display_order INT DEFAULT 0 AFTER quality"); - console.log("✅ Added 'display_order' column to camera_settings"); + await db.query("ALTER TABLE cctv_settings ADD COLUMN display_order INT DEFAULT 0 AFTER quality"); + console.log("✅ Added 'display_order' column to cctv_settings"); + } + + // Create cctv_zones table + const zoneTable = ` + CREATE TABLE IF NOT EXISTS cctv_zones ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(50) NOT NULL UNIQUE, + layout ENUM('1', '1*2', '2*2') DEFAULT '2*2', + display_order INT DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + `; + await db.query(zoneTable); + + // Check for 'layout' column (for migration) + const [layoutCol] = await db.query("SHOW COLUMNS FROM cctv_zones LIKE 'layout'"); + if (layoutCol.length === 0) { + await db.query("ALTER TABLE cctv_zones ADD COLUMN layout VARCHAR(10) DEFAULT '2*2' AFTER name"); + console.log("✅ Added 'layout' column to cctv_zones"); + } else { + // Migration: Convert ENUM to VARCHAR + await db.query("ALTER TABLE cctv_zones MODIFY COLUMN layout VARCHAR(10) DEFAULT '2*2'"); + } + + // Initialize default zone if empty + const [existingZones] = await db.query('SELECT 1 FROM cctv_zones LIMIT 1'); + if (existingZones.length === 0) { + await db.query("INSERT INTO cctv_zones (name, display_order) VALUES ('기본 구역', 0)"); + console.log("✅ Initialized default CCTV zone"); } // Create system_settings table (Key-Value store) @@ -348,7 +440,12 @@ const initTables = async () => { const insert = `INSERT INTO system_modules (code, name, is_active, license_type) VALUES (?, ?, ?, ?)`; await db.query(insert, ['asset', '자산 관리', true, 'dev']); await db.query(insert, ['production', '생산 관리', false, null]); - await db.query(insert, ['monitoring', 'CCTV', false, null]); + await db.query(insert, ['cctv', 'CCTV', true, 'dev']); + } else { + // One-time update: Rename 'monitoring' code to 'cctv' and ensure it's active + await db.query("UPDATE system_modules SET code = 'cctv', is_active = 1 WHERE code = 'monitoring'"); + // Also ensure 'cctv' is active if it already exists but was inactive due to renaming glitches + await db.query("UPDATE system_modules SET is_active = 1 WHERE code = 'cctv'"); } console.log('✅ Tables Initialized'); diff --git a/server/modules/asset/routes.js b/server/modules/asset/routes.js index 5713ce6..acf205c 100644 --- a/server/modules/asset/routes.js +++ b/server/modules/asset/routes.js @@ -23,7 +23,22 @@ router.get('/assets/:id', async (req, res) => { try { const [rows] = await db.query('SELECT * FROM assets WHERE id = ?', [req.params.id]); if (rows.length === 0) return res.status(404).json({ error: 'Asset not found' }); - res.json(rows[0]); + + const asset = rows[0]; + + // Fetch sub-assets (children) + const [children] = await db.query('SELECT id, name, category, status, location FROM assets WHERE parent_id = ?', [req.params.id]); + asset.children = children; + + // Fetch parent name if exists + if (asset.parent_id) { + const [parentRows] = await db.query('SELECT name FROM assets WHERE id = ?', [asset.parent_id]); + if (parentRows.length > 0) { + asset.parent_name = parentRows[0].name; + } + } + + res.json(asset); } catch (err) { console.error(err); res.status(500).json({ error: 'Database error' }); @@ -32,14 +47,14 @@ router.get('/assets/:id', async (req, res) => { // Create Asset router.post('/assets', async (req, res) => { - const { id, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url } = req.body; + const { id, parent_id, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url, quantity } = req.body; try { const sql = ` - INSERT INTO assets (id, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + INSERT INTO assets (id, parent_id, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url, quantity) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) `; - await db.query(sql, [id, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url]); + await db.query(sql, [id, parent_id || null, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url, quantity || 1]); res.status(201).json({ message: 'Asset created', id }); } catch (err) { console.error(err); @@ -49,15 +64,15 @@ router.post('/assets', async (req, res) => { // Update Asset router.put('/assets/:id', async (req, res) => { - const { name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url } = req.body; + const { parent_id, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url, quantity } = req.body; try { const sql = ` UPDATE assets - SET name=?, category=?, model_name=?, serial_number=?, manufacturer=?, location=?, purchase_date=?, manager=?, status=?, specs=?, purchase_price=?, image_url=? + SET parent_id=?, name=?, category=?, model_name=?, serial_number=?, manufacturer=?, location=?, purchase_date=?, manager=?, status=?, specs=?, purchase_price=?, image_url=?, quantity=? WHERE id=? `; - const [result] = await db.query(sql, [name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url, req.params.id]); + const [result] = await db.query(sql, [parent_id || null, name, category, model_name, serial_number, manufacturer, location, purchase_date, manager, status, specs, purchase_price, image_url, quantity || 1, req.params.id]); if (result.affectedRows === 0) return res.status(404).json({ error: 'Asset not found' }); res.json({ message: 'Asset updated' }); @@ -279,4 +294,46 @@ router.delete('/manuals/:id', async (req, res) => { } }); +// ========================================== +// 4. Accessories +// ========================================== + +// Get Accessories for an Asset +router.get('/assets/:asset_id/accessories', async (req, res) => { + try { + const [rows] = await db.query('SELECT * FROM asset_accessories WHERE asset_id = ? ORDER BY created_at ASC', [req.params.asset_id]); + res.json(rows); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Database error' }); + } +}); + +// Add Accessory to Asset +router.post('/assets/:asset_id/accessories', async (req, res) => { + const { name, spec, quantity } = req.body; + const { asset_id } = req.params; + + try { + const sql = `INSERT INTO asset_accessories (asset_id, name, spec, quantity) VALUES (?, ?, ?, ?)`; + const [result] = await db.query(sql, [asset_id, name, spec, quantity || 1]); + res.status(201).json({ message: 'Accessory added', id: result.insertId }); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Database error' }); + } +}); + +// Delete Accessory +router.delete('/accessories/:id', async (req, res) => { + try { + const [result] = await db.query('DELETE FROM asset_accessories WHERE id = ?', [req.params.id]); + if (result.affectedRows === 0) return res.status(404).json({ error: 'Accessory not found' }); + res.json({ message: 'Accessory deleted' }); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Database error' }); + } +}); + module.exports = router; diff --git a/server/modules/cctv/routes.js b/server/modules/cctv/routes.js index dd98f9f..ef8b5a0 100644 --- a/server/modules/cctv/routes.js +++ b/server/modules/cctv/routes.js @@ -3,12 +3,21 @@ const router = express.Router(); const db = require('../../db'); const { isAuthenticated, hasRole } = require('../../middleware/authMiddleware'); const { requireModule } = require('../../middleware/licenseMiddleware'); +const cryptoUtil = require('../../utils/cryptoUtil'); // Get all cameras - Protected by Module License -router.get('/', requireModule('monitoring'), async (req, res) => { +router.get('/', requireModule('cctv'), async (req, res) => { try { - const [rows] = await db.query('SELECT * FROM camera_settings ORDER BY display_order ASC, created_at DESC'); - res.json(rows); + const [rows] = await db.query('SELECT * FROM cctv_settings ORDER BY display_order ASC, created_at DESC'); + + // Decrypt usernames and passwords for the UI + const cameras = rows.map(cam => ({ + ...cam, + username: cam.username ? cryptoUtil.decryptMasterKey(cam.username) : cam.username, + password: cam.password ? cryptoUtil.decryptMasterKey(cam.password) : cam.password + })); + + res.json(cameras); } catch (err) { console.error(err); res.status(500).json({ error: 'Database error' }); @@ -32,7 +41,7 @@ router.put('/reorder', hasRole('admin'), async (req, res) => { const id = typeof cam === 'object' ? cam.id : cam; const order = i; - await db.query('UPDATE camera_settings SET display_order = ? WHERE id = ?', [order, id]); + await db.query('UPDATE cctv_settings SET display_order = ? WHERE id = ?', [order, id]); } await db.query('COMMIT'); @@ -43,13 +52,73 @@ router.put('/reorder', hasRole('admin'), async (req, res) => { res.status(500).json({ error: 'Database error' }); } }); +// --- Zone Management --- + +// Get all zones +router.get('/zones', isAuthenticated, async (req, res) => { + try { + const [rows] = await db.query('SELECT * FROM cctv_zones ORDER BY display_order ASC, name ASC'); + res.json(rows); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Database error' }); + } +}); + +// Update zones (Sync list) +router.put('/zones', hasRole('admin'), async (req, res) => { + const { zones } = req.body; + if (!Array.isArray(zones)) return res.status(400).json({ error: 'Invalid data' }); + + try { + await db.query('START TRANSACTION'); + + // Rebuild zone table for simplicity since we link by name string in cctv_settings + await db.query('DELETE FROM cctv_zones'); + + for (let i = 0; i < zones.length; i++) { + const z = zones[i]; + const name = typeof z === 'string' ? z : z.name; + const layout = typeof z === 'object' ? (z.layout || '2*2') : '2*2'; + + if (name) { + await db.query('INSERT INTO cctv_zones (name, layout, display_order) VALUES (?, ?, ?)', [name, layout, i]); + } + } + + await db.query('COMMIT'); + res.json({ message: 'Zones updated' }); + } catch (err) { + await db.query('ROLLBACK'); + console.error(err); + res.status(500).json({ error: 'Failed to update zones' }); + } +}); + +// Update specific zone layout (Real-time override) +router.patch('/zones/:name/layout', hasRole('admin'), async (req, res) => { + const { layout } = req.body; + try { + const [result] = await db.query('UPDATE cctv_zones SET layout = ? WHERE name = ?', [layout, req.params.name]); + if (result.affectedRows === 0) return res.status(404).json({ error: 'Zone not found' }); + res.json({ success: true, message: 'Layout updated' }); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Failed to update layout' }); + } +}); // Get single camera router.get('/:id', async (req, res) => { try { - const [rows] = await db.query('SELECT * FROM camera_settings WHERE id = ?', [req.params.id]); + const [rows] = await db.query('SELECT * FROM cctv_settings WHERE id = ?', [req.params.id]); if (rows.length === 0) return res.status(404).json({ error: 'Camera not found' }); - res.json(rows[0]); + + const camera = rows[0]; + camera.username = camera.username ? cryptoUtil.decryptMasterKey(camera.username) : camera.username; + camera.password = camera.password ? cryptoUtil.decryptMasterKey(camera.password) : camera.password; + + res.json(camera); } catch (err) { console.error(err); res.status(500).json({ error: 'Database error' }); @@ -58,10 +127,13 @@ router.get('/:id', async (req, res) => { // Add camera (Admin only) router.post('/', hasRole('admin'), async (req, res) => { - const { name, ip_address, port, username, password, stream_path, transport_mode, rtsp_encoding, quality } = req.body; + const { name, zone, ip_address, port, username, password, stream_path, transport_mode, rtsp_encoding, quality } = req.body; try { - const sql = `INSERT INTO camera_settings (name, ip_address, port, username, password, stream_path, transport_mode, rtsp_encoding, quality) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`; - const [result] = await db.query(sql, [name, ip_address, port || 554, username, password, stream_path || '/stream1', transport_mode || 'tcp', rtsp_encoding || false, quality || 'low']); + const encryptedUser = username ? cryptoUtil.encryptMasterKey(username) : username; + const encryptedPass = password ? cryptoUtil.encryptMasterKey(password) : password; + + const sql = `INSERT INTO cctv_settings (name, zone, ip_address, port, username, password, stream_path, transport_mode, rtsp_encoding, quality) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`; + const [result] = await db.query(sql, [name, zone || '기본 구역', ip_address, port || 554, encryptedUser, encryptedPass, stream_path || '/stream1', transport_mode || 'tcp', rtsp_encoding || false, quality || 'low']); res.status(201).json({ message: 'Camera added', id: result.insertId }); } catch (err) { console.error(err); @@ -71,10 +143,13 @@ router.post('/', hasRole('admin'), async (req, res) => { // Update camera (Admin only) router.put('/:id', hasRole('admin'), async (req, res) => { - const { name, ip_address, port, username, password, stream_path, transport_mode, rtsp_encoding, quality } = req.body; + const { name, zone, ip_address, port, username, password, stream_path, transport_mode, rtsp_encoding, quality } = req.body; try { - const sql = `UPDATE camera_settings SET name=?, ip_address=?, port=?, username=?, password=?, stream_path=?, transport_mode=?, rtsp_encoding=?, quality=? WHERE id=?`; - const [result] = await db.query(sql, [name, ip_address, port, username, password, stream_path, transport_mode, rtsp_encoding, quality, req.params.id]); + const encryptedUser = username ? cryptoUtil.encryptMasterKey(username) : username; + const encryptedPass = password ? cryptoUtil.encryptMasterKey(password) : password; + + const sql = `UPDATE cctv_settings SET name=?, zone=?, ip_address=?, port=?, username=?, password=?, stream_path=?, transport_mode=?, rtsp_encoding=?, quality=? WHERE id=?`; + const [result] = await db.query(sql, [name, zone, ip_address, port, encryptedUser, encryptedPass, stream_path, transport_mode, rtsp_encoding, quality, req.params.id]); if (result.affectedRows === 0) return res.status(404).json({ error: 'Camera not found' }); // Force stream reset (kick clients to trigger reconnect) @@ -95,7 +170,7 @@ router.put('/:id', hasRole('admin'), async (req, res) => { router.patch('/:id/status', hasRole('admin'), async (req, res) => { const { is_active } = req.body; try { - const [result] = await db.query('UPDATE camera_settings SET is_active = ? WHERE id = ?', [is_active, req.params.id]); + const [result] = await db.query('UPDATE cctv_settings SET is_active = ? WHERE id = ?', [is_active, req.params.id]); if (result.affectedRows === 0) return res.status(404).json({ error: 'Camera not found' }); const streamRelay = req.app.get('streamRelay'); @@ -115,7 +190,7 @@ router.patch('/:id/status', hasRole('admin'), async (req, res) => { // Delete camera (Admin only) router.delete('/:id', hasRole('admin'), async (req, res) => { try { - const [result] = await db.query('DELETE FROM camera_settings WHERE id = ?', [req.params.id]); + const [result] = await db.query('DELETE FROM cctv_settings WHERE id = ?', [req.params.id]); if (result.affectedRows === 0) return res.status(404).json({ error: 'Camera not found' }); // Stop stream @@ -135,10 +210,11 @@ const { exec } = require('child_process'); // ... existing routes ... + // 7. Ping Test (Troubleshooting) router.get('/:id/ping', isAuthenticated, async (req, res) => { try { - const [rows] = await db.query('SELECT ip_address FROM camera_settings WHERE id = ?', [req.params.id]); + const [rows] = await db.query('SELECT ip_address FROM cctv_settings WHERE id = ?', [req.params.id]); if (rows.length === 0) return res.status(404).json({ error: 'Camera not found' }); const ip = rows[0].ip_address; diff --git a/server/modules/cctv/streamRelay.js b/server/modules/cctv/streamRelay.js index dc3a6f9..014c066 100644 --- a/server/modules/cctv/streamRelay.js +++ b/server/modules/cctv/streamRelay.js @@ -3,6 +3,7 @@ const ffmpeg = require('fluent-ffmpeg'); const staticFfmpegBinary = require('ffmpeg-static'); // Renamed for clarity const db = require('../../db'); const fs = require('fs'); +const cryptoUtil = require('../../utils/cryptoUtil'); // We don't set global ffmpeg path here immediately because we might want to switch per-stream or check system paths dynamically // (though fluent-ffmpeg usage usually suggests setting it once if possible, but we check inside startFFmpeg for robustness) @@ -76,7 +77,7 @@ class StreamRelay { if (!stream) return; try { - const [rows] = await db.query('SELECT * FROM camera_settings WHERE id = ?', [cameraId]); + const [rows] = await db.query('SELECT * FROM cctv_settings WHERE id = ?', [cameraId]); if (rows.length === 0) { console.error(`Camera ${cameraId} not found`); return; @@ -96,8 +97,10 @@ class StreamRelay { let rtspUrl = 'rtsp://'; if (camera.username && camera.password) { - const user = camera.rtsp_encoding ? encodeURIComponent(camera.username) : camera.username; - const pass = camera.rtsp_encoding ? encodeURIComponent(camera.password) : camera.password; + const decUser = cryptoUtil.decryptMasterKey(camera.username); + const decPass = cryptoUtil.decryptMasterKey(camera.password); + const user = camera.rtsp_encoding ? encodeURIComponent(decUser) : decUser; + const pass = camera.rtsp_encoding ? encodeURIComponent(decPass) : decPass; rtspUrl += `${user}:${pass}@`; } rtspUrl += `${camera.ip_address}:${camera.port || 554}${camera.stream_path || '/stream1'}`; diff --git a/server/routes/auth.js b/server/routes/auth.js index 402da7d..c04dbb0 100644 --- a/server/routes/auth.js +++ b/server/routes/auth.js @@ -63,24 +63,29 @@ router.post('/login', async (req, res) => { } }); -// 1.5. Check Session (New) +// 1.5. Check Session router.get('/check', async (req, res) => { try { if (req.session.user) { - // Ensure CSRF token exists, if not generate one (edge case) + // Ensure CSRF token exists if (!req.session.csrfToken) { req.session.csrfToken = generateToken(); } - // Fetch session timeout from settings - const [rows] = await db.query("SELECT setting_value FROM system_settings WHERE setting_key = 'session_timeout'"); - const timeoutMinutes = rows.length > 0 ? parseInt(rows[0].setting_value) : 60; + // Priority: User's individual timeout > System default + let timeoutMinutes = 60; + if (req.session.user.session_timeout) { + timeoutMinutes = parseInt(req.session.user.session_timeout); + } else { + const [rows] = await db.query("SELECT setting_value FROM system_settings WHERE setting_key = 'session_timeout'"); + timeoutMinutes = rows.length > 0 ? parseInt(rows[0].setting_value) : 10; + } res.json({ isAuthenticated: true, user: req.session.user, csrfToken: req.session.csrfToken, - sessionTimeout: timeoutMinutes * 60 * 1000 // Convert to ms + sessionTimeout: timeoutMinutes * 60 * 1000 }); } else { res.json({ isAuthenticated: false }); @@ -130,7 +135,7 @@ router.post('/verify-supervisor', isAuthenticated, async (req, res) => { // 2. List Users (Admin Only) router.get('/users', isAuthenticated, hasRole('admin'), async (req, res) => { try { - const [rows] = await db.query('SELECT id, name, department, position, phone, role, last_login, created_at, updated_at FROM users ORDER BY created_at DESC'); + const [rows] = await db.query('SELECT id, name, department, position, phone, role, session_timeout, last_login, created_at, updated_at FROM users ORDER BY created_at DESC'); if (!rows || rows.length === 0) { return res.json([]); @@ -154,7 +159,7 @@ router.get('/users', isAuthenticated, hasRole('admin'), async (req, res) => { // 3. Create User router.post('/users', isAuthenticated, hasRole('admin'), async (req, res) => { - const { id, password, name, department, position, phone, role } = req.body; + const { id, password, name, department, position, phone, role, session_timeout } = req.body; if (!id || !password || !name) { return res.status(400).json({ error: 'Missing required fields' }); @@ -171,11 +176,11 @@ router.post('/users', isAuthenticated, hasRole('admin'), async (req, res) => { const encryptedPhone = await encrypt(phone); const sql = ` - INSERT INTO users (id, password, name, department, position, phone, role) - VALUES (?, ?, ?, ?, ?, ?, ?) + INSERT INTO users (id, password, name, department, position, phone, role, session_timeout) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) `; - await db.query(sql, [id, hashedPassword, name, department, position, encryptedPhone, role || 'user']); + await db.query(sql, [id, hashedPassword, name, department, position, encryptedPhone, role || 'user', session_timeout || 10]); res.status(201).json({ message: 'User created' }); } catch (err) { @@ -186,41 +191,20 @@ router.post('/users', isAuthenticated, hasRole('admin'), async (req, res) => { // 4. Update User router.put('/users/:id', isAuthenticated, hasRole('admin'), async (req, res) => { - const { password, name, department, position, phone, role } = req.body; + const { password, name, department, position, phone, role, session_timeout } = req.body; const userId = req.params.id; try { - // Fetch current to keep old values if not provided? Frontend usually sends all. - // We update everything provided. - - // Build query dynamically or just assume full update + // ... (existing logic) let updates = []; let params = []; - - if (password) { - updates.push('password = ?'); - params.push(hashPassword(password)); - } - if (name) { - updates.push('name = ?'); - params.push(name); - } - if (department !== undefined) { - updates.push('department = ?'); - params.push(department); - } - if (position !== undefined) { - updates.push('position = ?'); - params.push(position); - } - if (phone !== undefined) { - updates.push('phone = ?'); - params.push(await encrypt(phone)); - } - if (role) { - updates.push('role = ?'); - params.push(role); - } + if (password) { updates.push('password = ?'); params.push(hashPassword(password)); } + if (name) { updates.push('name = ?'); params.push(name); } + if (department !== undefined) { updates.push('department = ?'); params.push(department); } + if (position !== undefined) { updates.push('position = ?'); params.push(position); } + if (phone !== undefined) { updates.push('phone = ?'); params.push(await encrypt(phone)); } + if (role) { updates.push('role = ?'); params.push(role); } + if (session_timeout !== undefined) { updates.push('session_timeout = ?'); params.push(session_timeout); } if (updates.length === 0) return res.json({ message: 'No changes' }); @@ -229,7 +213,53 @@ router.put('/users/:id', isAuthenticated, hasRole('admin'), async (req, res) => await db.query(sql, params); res.json({ message: 'User updated' }); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Database error' }); + } +}); +// 4.5. Update My Profile (New) +router.put('/profile', isAuthenticated, async (req, res) => { + const { name, phone, session_timeout } = req.body; + const userId = req.session.user.id; + + try { + let updates = []; + let params = []; + + if (name) { + updates.push('name = ?'); + params.push(name); + } + if (phone !== undefined) { + updates.push('phone = ?'); + params.push(await encrypt(phone)); + } + if (session_timeout !== undefined) { + updates.push('session_timeout = ?'); + params.push(session_timeout); + } + + if (updates.length === 0) return res.json({ message: 'No changes' }); + + const sql = `UPDATE users SET ${updates.join(', ')} WHERE id = ?`; + params.push(userId); + + await db.query(sql, params); + + // Update session user object + const [rows] = await db.query('SELECT id, name, department, position, phone, role, session_timeout FROM users WHERE id = ?', [userId]); + req.session.user = rows[0]; + + // Also update cookie maxAge if timeout changed + if (session_timeout) { + req.session.cookie.maxAge = parseInt(session_timeout) * 60 * 1000; + } + + req.session.save(() => { + res.json({ message: 'Profile updated', user: req.session.user }); + }); } catch (err) { console.error(err); res.status(500).json({ error: 'Database error' }); diff --git a/server/routes/system.js b/server/routes/system.js index 543bc05..ae382bf 100644 --- a/server/routes/system.js +++ b/server/routes/system.js @@ -274,7 +274,7 @@ router.get('/modules', isAuthenticated, async (req, res) => { const [rows] = await db.query('SELECT * FROM system_modules'); const modules = {}; - const defaults = ['asset', 'production', 'monitoring']; + const defaults = ['asset', 'production', 'cctv']; // Get stored subscriber ID const [subRows] = await db.query("SELECT setting_value FROM system_settings WHERE setting_key = 'subscriber_id'"); @@ -375,7 +375,7 @@ router.post('/modules/:code/activate', isAuthenticated, hasRole('admin'), async const names = { 'asset': '자산 관리', 'production': '생산 관리', - 'monitoring': 'CCTV' + 'cctv': 'CCTV' }; await db.query(sql, [code, names[code] || code, licenseKey, result.type, result.expiryDate, result.subscriberId]); diff --git a/server/utils/cryptoUtil.js b/server/utils/cryptoUtil.js index a4f68c9..032eb46 100644 --- a/server/utils/cryptoUtil.js +++ b/server/utils/cryptoUtil.js @@ -63,6 +63,13 @@ const cryptoUtil = { return this._internalProcess(plainKey, true); }, + /** + * 내부 보안으로 암호화된 키를 복호화하는 함수 + */ + decryptMasterKey(encryptedKey) { + return this._internalProcess(encryptedKey, false); + }, + clearCache() { cachedKey = null; }, diff --git a/src/core/types.ts b/src/core/types.ts index 8c5858e..6b740dc 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -18,6 +18,7 @@ export interface IModuleRoute { */ export interface IModuleDefinition { moduleName: string; // 紐⑤뱢 ?앸퀎??(?? 'asset-management') + label?: string; // 紐⑤뱢 ?쒖떆 紐낆묶 (?? 'CCTV') basePath: string; // 紐⑤뱢??湲곕낯 寃쎈줈 (?? '/asset') routes: IModuleRoute[]; // 紐⑤뱢 ?대? ?쇱슦???뺣낫 requiredRoles?: string[]; // 紐⑤뱢 ?묎렐???꾪븳 ?꾩슂 沅뚰븳 (Optional) diff --git a/src/modules/asset/components/AssetBasicInfo.tsx b/src/modules/asset/components/AssetBasicInfo.tsx index a0a5882..a414b8d 100644 --- a/src/modules/asset/components/AssetBasicInfo.tsx +++ b/src/modules/asset/components/AssetBasicInfo.tsx @@ -10,7 +10,7 @@ import { createPortal } from 'react-dom'; import { useAuth } from '../../../shared/auth/AuthContext'; interface AssetBasicInfoProps { - asset: Asset & { image?: string, consumables?: any[] }; + asset: Asset & { image?: string, accessories?: any[] }; onRefresh: () => void; } @@ -21,6 +21,39 @@ export function AssetBasicInfo({ asset, onRefresh }: AssetBasicInfoProps) { const [isEditing, setIsEditing] = useState(false); const [editData, setEditData] = useState(asset); const [isZoomed, setIsZoomed] = useState(false); + const [allAssets, setAllAssets] = useState([]); + const [accessories, setAccessories] = useState([]); + const [showAccModal, setShowAccModal] = useState(false); + const [newAcc, setNewAcc] = useState({ name: '', spec: '', quantity: 1 }); + + React.useEffect(() => { + loadAccessories(); + }, [asset.id]); + + const loadAccessories = async () => { + try { + const data = await assetApi.getAccessories(asset.id); + setAccessories(data); + } catch (err) { + console.error("Failed to load accessories", err); + } + }; + + React.useEffect(() => { + if (isEditing) { + const loadAllAssets = async () => { + try { + const data = await assetApi.getAll(); + setAllAssets(data); + } catch (err) { + console.error("Failed to load assets", err); + } + }; + loadAllAssets(); + } + }, [isEditing]); + + const isFacility = asset.category === '설비'; const handleChange = ( e: React.ChangeEvent @@ -64,6 +97,28 @@ export function AssetBasicInfo({ asset, onRefresh }: AssetBasicInfoProps) { setIsEditing(false); }; + const handleAddAccessory = async () => { + if (!newAcc.name) return alert('품명을 입력해주세요.'); + try { + await assetApi.addAccessory(asset.id, newAcc); + setNewAcc({ name: '', spec: '', quantity: 1 }); + setShowAccModal(false); + loadAccessories(); + } catch (err) { + alert('등록 실패'); + } + }; + + const handleDeleteAccessory = async (id: number) => { + if (!confirm('삭제하시겠습니까?')) return; + try { + await assetApi.deleteAccessory(id); + loadAccessories(); + } catch (err) { + alert('삭제 실패'); + } + }; + return ( <>
@@ -75,7 +130,7 @@ export function AssetBasicInfo({ asset, onRefresh }: AssetBasicInfoProps) { ) : ( canEdit && )} - +
@@ -327,51 +382,202 @@ export function AssetBasicInfo({ asset, onRefresh }: AssetBasicInfoProps) { ) : (
- + {editData.status === 'active' ? '정상 가동' : editData.status === 'disposed' ? '폐기 (말소)' : editData.status === 'maintain' ? '점검 중' : '수리 필요'}
)} + {isFacility && ( + + 상위 설비 + + {isEditing ? ( +
+ +
+ ) : ( +
+ )} + + + )} + {/* Sub-Equipment Section (Only for Facilities) */} + {isFacility && ( +
+
+

부속 설비 내역

+ {canEdit && ( + + )} +
+ + + + + + + + + + + + {asset.children && asset.children.length > 0 ? ( + asset.children.map(child => ( + + + + + + + + )) + ) : ( + + + + )} + +
관리번호설비명위치상태관리
{child.id}{child.name}{child.location} + + {child.status === 'active' ? '정상' : '점검/이동'} + + + 이동 +
등록된 부속 설비가 없습니다.
+
+ )} +
- {/* Consumables Section */} -
-
-

관련 소모품 관리

- {canEdit && } -
- - - - - - - - - - - {asset.consumables?.map(item => ( - - - - - + {/* Accessories Section (For non-facility or all?) - User said skip hierarchical for others, use simple accessories */} + {!isFacility && ( +
+
+

부속품 관리

+ {canEdit && ( + + )} +
+
품명규격현재고관리
{item.name}{item.spec}{item.qty}개 - -
+ + + + + + - ))} - -
품명규격수량관리
-
+ + + {accessories.length > 0 ? ( + accessories.map(item => ( + + {item.name} + {item.spec || '-'} + {item.quantity}개 + + + + + )) + ) : ( + + 등록된 부속품이 없습니다. + + )} + + + + )} + {/* Accessory Add Modal */} + {showAccModal && createPortal( +
+
+

부속품 추가

+
+
+ + setNewAcc({ ...newAcc, name: e.target.value })} + /> +
+
+ + setNewAcc({ ...newAcc, spec: e.target.value })} + /> +
+
+ + setNewAcc({ ...newAcc, quantity: Number(e.target.value) })} + /> +
+
+
+ + +
+
+
, + document.body + )} + {/* Image Zoom Modal - Moved to Portal */} {isZoomed && editData.image && createPortal(
필터 + {canRegister && ( diff --git a/src/modules/asset/pages/AssetRegisterPage.tsx b/src/modules/asset/pages/AssetRegisterPage.tsx index fe10a3b..e7f3cbf 100644 --- a/src/modules/asset/pages/AssetRegisterPage.tsx +++ b/src/modules/asset/pages/AssetRegisterPage.tsx @@ -19,6 +19,7 @@ export function AssetRegisterPage() { const [formData, setFormData] = useState({ id: '', // Asset ID (Auto-generated) + parentId: '', name: '', categoryId: '', // Use ID for selection model: '', @@ -33,6 +34,20 @@ export function AssetRegisterPage() { manufacturer: '' }); + const [allAssets, setAllAssets] = useState([]); + + useEffect(() => { + const loadAllAssets = async () => { + try { + const data = await assetApi.getAll(); + setAllAssets(data); + } catch (err) { + console.error("Failed to load assets for parent selection", err); + } + }; + loadAllAssets(); + }, []); + // Auto-generate Asset ID useEffect(() => { // If category is required by rule but not selected, can't generate fully @@ -106,6 +121,7 @@ export function AssetRegisterPage() { const payload: Partial = { id: formData.id, + parentId: isFacility ? formData.parentId : undefined, name: formData.name, category: selectedCategory ? selectedCategory.name : '미지정', model: formData.model, @@ -129,6 +145,8 @@ export function AssetRegisterPage() { } }; + const isFacility = categories.find(c => c.id === formData.categoryId)?.name === '설비'; + return (
@@ -155,6 +173,22 @@ export function AssetRegisterPage() { required /> + {isFacility && ( + , label: '실시간 관제' }, + { path: '/manage', element: , label: '장치 관리' }, + { path: '/settings', element: , label: '기본 설정' }, ], requiredRoles: ['admin', 'operator', 'user'] }; diff --git a/src/modules/cctv/pages/CameraManagementPage.tsx b/src/modules/cctv/pages/CameraManagementPage.tsx new file mode 100644 index 0000000..97296b7 --- /dev/null +++ b/src/modules/cctv/pages/CameraManagementPage.tsx @@ -0,0 +1,392 @@ +import { useState, useEffect, useRef } from 'react'; +import { Card } from '../../../shared/ui/Card'; +import { Button } from '../../../shared/ui/Button'; +import { Input } from '../../../shared/ui/Input'; +import { apiClient } from '../../../shared/api/client'; +import { + Plus, Edit2, Trash2, X, Check, Search, + Settings, Video, RefreshCcw, Power, + PowerOff, LayoutGrid +} from 'lucide-react'; +import { useAuth } from '../../../shared/auth/AuthContext'; +import { useNavigate } from 'react-router-dom'; + +interface Camera { + id: number; + name: string; + ip_address: string; + port: number; + username?: string; + password?: string; + stream_path?: string; + transport_mode?: 'tcp' | 'udp' | 'auto'; + rtsp_encoding?: boolean; + quality?: 'low' | 'medium' | 'original'; + is_active?: boolean | number; + display_order?: number; + zone?: string; +} + +export function CameraManagementPage() { + const { user } = useAuth(); + const navigate = useNavigate(); + const [cameras, setCameras] = useState([]); + const [loading, setLoading] = useState(false); + const [searchTerm, setSearchTerm] = useState(''); + const [availableZones, setAvailableZones] = useState([]); + const fetchedRef = useRef(false); + + // Modal State + const [isModalOpen, setIsModalOpen] = useState(false); + const [isEditing, setIsEditing] = useState(false); + const [formData, setFormData] = useState>({ + name: '', + ip_address: '', + port: 554, + username: '', + password: '', + stream_path: '/stream1', + transport_mode: 'tcp', + rtsp_encoding: false, + quality: 'low', + zone: '기본 구역' + }); + + useEffect(() => { + if (fetchedRef.current) return; + fetchedRef.current = true; + fetchCameras(); + fetchZones(); + }, []); + + const fetchZones = async () => { + try { + const res = await apiClient.get('/cameras/zones'); + setAvailableZones(res.data.map((z: any) => z.name)); + } catch (err) { + console.error('Failed to fetch zones', err); + } + }; + + const fetchCameras = async () => { + setLoading(true); + try { + const res = await apiClient.get('/cameras'); + setCameras(res.data); + } catch (error) { + console.error('Failed to fetch cameras', error); + } finally { + setLoading(false); + } + }; + + const handleOpenAdd = () => { + setFormData({ + name: '', + ip_address: '', + port: 554, + username: '', + password: '', + stream_path: '/stream1', + transport_mode: 'tcp', + rtsp_encoding: false, + quality: 'low', + zone: '기본 구역' + }); + setIsEditing(false); + setIsModalOpen(true); + }; + + const handleOpenEdit = (camera: Camera) => { + setFormData(camera); + setIsEditing(true); + setIsModalOpen(true); + }; + + const handleDelete = async (id: number) => { + if (!confirm('정말 이 카메라를 삭제하시겠습니까?')) return; + try { + await apiClient.delete(`/cameras/${id}`); + fetchCameras(); + } catch (error) { + console.error('Failed to delete camera', error); + alert('삭제 실패'); + } + }; + + const handleToggleStatus = async (camera: Camera) => { + const newStatus = !(camera.is_active !== 0 && camera.is_active !== false); + try { + await apiClient.patch(`/cameras/${camera.id}/status`, { is_active: newStatus }); + fetchCameras(); + } catch (err) { + console.error('Failed to toggle status', err); + alert('상태 변경 실패'); + } + }; + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + try { + if (isEditing) { + await apiClient.put(`/cameras/${formData.id}`, formData); + alert('수정되었습니다.'); + } else { + await apiClient.post('/cameras', formData); + alert('등록되었습니다.'); + } + setIsModalOpen(false); + fetchCameras(); + } catch (error: any) { + alert(`오류: ${error.response?.data?.error || error.message}`); + } + }; + + const filteredCameras = cameras.filter(cam => + cam.name.toLowerCase().includes(searchTerm.toLowerCase()) || + cam.ip_address.includes(searchTerm) + ); + + return ( +
+
+
+

+

+

시스템에 등록된 모든 CCTV 장치를 목록 형태로 관리합니다.

+
+
+ + {(user?.role === 'admin' || user?.role === 'supervisor') && ( + + )} +
+
+ + +
+
+ + setSearchTerm(e.target.value)} + /> +
+ +
+
+ + +
+ + + + + + + + + + + + {loading ? ( + + + + ) : filteredCameras.map((camera) => { + const isActive = camera.is_active !== 0 && camera.is_active !== false; + return ( + + + + + + + + ); + })} + {!loading && filteredCameras.length === 0 && ( + + + + )} + +
상태카메라 명칭구역네트워크 정보 (IP:Port)관리
데이터를 불러오는 중...
+ + +
{camera.name}
+
ID: {camera.id}
+
+ + {camera.zone || '기본 구역'} + + + {camera.ip_address}:{camera.port} + +
+ {(user?.role === 'admin' || user?.role === 'supervisor') && ( + <> + + + + )} +
+
검색 결과가 없습니다.
+
+
+ + {/* Modal */} + {isModalOpen && ( +
+ +
+

+ + {isEditing ? '장치 설정 수정' : '새 장치 등록'} +

+ +
+
+
+
+ + setFormData({ ...formData, name: e.target.value })} + placeholder="예: 정문 CCTV" + required + /> +
+
+ + +
+
+ + setFormData({ ...formData, ip_address: e.target.value })} + placeholder="192.168.1.100" + required + /> +
+
+ + setFormData({ ...formData, port: parseInt(e.target.value) || 554 })} + placeholder="554" + /> +
+
+ +
+
+ + setFormData({ ...formData, username: e.target.value })} + placeholder="admin" + /> +
+
+ + setFormData({ ...formData, password: e.target.value })} + placeholder="••••••••" + /> +
+
+ +
+
+ + setFormData({ ...formData, stream_path: e.target.value })} + placeholder="/stream1" + /> +
+
+
+ + +
+
+ + +
+
+
+ setFormData({ ...formData, rtsp_encoding: e.target.checked })} + className="w-4 h-4 text-indigo-600 rounded border-slate-300 focus:ring-indigo-500" + /> + +
+
+ +
+ + +
+
+
+
+ )} +
+ ); +} diff --git a/src/modules/cctv/pages/CctvSettingsPage.tsx b/src/modules/cctv/pages/CctvSettingsPage.tsx new file mode 100644 index 0000000..f49a9fd --- /dev/null +++ b/src/modules/cctv/pages/CctvSettingsPage.tsx @@ -0,0 +1,147 @@ +import { useState, useEffect } from 'react'; +import { Card } from '../../../shared/ui/Card'; +import { Button } from '../../../shared/ui/Button'; +import { Input } from '../../../shared/ui/Input'; +import { apiClient } from '../../../shared/api/client'; +import { Plus, Trash2, Save, GripVertical, Settings } from 'lucide-react'; + +interface ZoneConfig { + name: string; + layout: '1' | '1*2' | '2*2'; +} + +export function CctvSettingsPage() { + const [zones, setZones] = useState([]); + const [loading, setLoading] = useState(false); + + useEffect(() => { + fetchZones(); + }, []); + + const fetchZones = async () => { + try { + const res = await apiClient.get('/cameras/zones'); + setZones(res.data.map((z: any) => ({ + name: z.name, + layout: z.layout || '2*2' + }))); + } catch (err) { + console.error('Failed to fetch zones', err); + } + }; + + const handleAddZone = () => { + setZones([...zones, { name: '', layout: '2*2' }]); + }; + + const handleRemoveZone = (index: number) => { + const newZones = [...zones]; + newZones.splice(index, 1); + setZones(newZones); + }; + + const handleZoneNameChange = (index: number, value: string) => { + const newZones = [...zones]; + newZones[index].name = value; + setZones(newZones); + }; + + const handleZoneLayoutChange = (index: number, value: '1' | '1*2' | '2*2') => { + const newZones = [...zones]; + newZones[index].layout = value; + setZones(newZones); + }; + + const handleSave = async () => { + if (loading) return; + setLoading(true); + try { + const filteredZones = zones.filter(z => z.name.trim() !== ''); + if (filteredZones.length === 0) { + alert('최소 하나 이상의 구역이 필요합니다.'); + setLoading(false); + return; + } + await apiClient.put('/cameras/zones', { zones: filteredZones }); + alert('구역 및 레이아웃 설정이 저장되었습니다.'); + fetchZones(); + } catch (err) { + console.error(err); + alert('저장 실패'); + } finally { + setLoading(false); + } + }; + + return ( +
+
+

+ + CCTV 기본 설정 +

+

CCTV 모듈의 전역 설정을 관리합니다.

+
+ + +

설치 구역 및 레이아웃 관리

+

+ 관제 화면에서 사용할 구역과 각 구역별 화면 분할(레이아웃) 방식을 설정합니다. +

+ +
+
+
#
+
구역 명칭
+
분할 레이아웃 (행*열)
+
+
+ {zones.map((zone, index) => ( +
+
+ +
+ handleZoneNameChange(index, e.target.value)} + placeholder="예: 정문, A구역 등" + className="flex-1" + /> + + +
+ ))} + + {zones.length === 0 && ( +
+ 등록된 구역이 없습니다. 구역을 추가해 주세요. +
+ )} +
+ +
+ + +
+
+
+ ); +} diff --git a/src/modules/cctv/pages/MonitoringPage.tsx b/src/modules/cctv/pages/MonitoringPage.tsx index 385deab..e578184 100644 --- a/src/modules/cctv/pages/MonitoringPage.tsx +++ b/src/modules/cctv/pages/MonitoringPage.tsx @@ -1,7 +1,8 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useRef } from 'react'; +import { createPortal } from 'react-dom'; import { apiClient } from '../../../shared/api/client'; import { JSMpegPlayer } from '../components/JSMpegPlayer'; -import { Plus, Settings, Trash2, X, Video } from 'lucide-react'; +import { Video, LayoutGrid, ChevronDown } from 'lucide-react'; import { useAuth } from '../../../shared/auth/AuthContext'; import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core'; import { arrayMove, SortableContext, sortableKeyboardCoordinates, useSortable, rectSortingStrategy } from '@dnd-kit/sortable'; @@ -20,6 +21,7 @@ interface Camera { quality?: 'low' | 'medium' | 'original'; display_order?: number; is_active?: boolean | number; + zone?: string; } // Wrap Camera Card with Sortable @@ -38,7 +40,7 @@ function SortableCamera({ camera, children, disabled }: { camera: Camera, childr }; return ( -
+
{children}
); @@ -47,22 +49,12 @@ function SortableCamera({ camera, children, disabled }: { camera: Camera, childr export function MonitoringPage() { const { user } = useAuth(); const [cameras, setCameras] = useState([]); - const [showForm, setShowForm] = useState(false); - const [editingCamera, setEditingCamera] = useState(null); - const [formData, setFormData] = useState>({ - name: '', - ip_address: '', - port: 554, - username: '', - password: '', - stream_path: '/stream1', - transport_mode: 'tcp', - rtsp_encoding: false, - quality: 'low' - }); - const [loading, setLoading] = useState(false); + const [activeZone, setActiveZone] = useState(''); + const [availableZones, setAvailableZones] = useState<{ name: string, layout: string }[]>([]); + const [showLayoutMenu, setShowLayoutMenu] = useState(false); + const fetchedRef = useRef(false); - const [streamVersions, setStreamVersions] = useState<{ [key: number]: number }>({}); + const [streamVersions] = useState<{ [key: number]: number }>({}); const sensors = useSensors( useSensor(PointerSensor), @@ -72,6 +64,8 @@ export function MonitoringPage() { ); useEffect(() => { + if (fetchedRef.current) return; + fetchedRef.current = true; fetchCameras(); }, []); @@ -84,61 +78,49 @@ export function MonitoringPage() { } }; - const handleInputChange = (e: React.ChangeEvent) => { - const { name, value } = e.target; - setFormData(prev => ({ ...prev, [name]: value })); - }; - - const handleSubmit = async (e: React.FormEvent) => { - e.preventDefault(); - setLoading(true); + const fetchZones = async () => { try { - if (editingCamera) { - await apiClient.put(`/cameras/${editingCamera.id}`, formData); - // Force stream refresh for this camera - setStreamVersions(prev => ({ ...prev, [editingCamera.id]: Date.now() })); - } else { - await apiClient.post('/cameras', formData); + const res = await apiClient.get('/cameras/zones'); + const zones = res.data.map((z: any) => ({ + name: z.name, + layout: z.layout || '2*2' + })); + setAvailableZones(zones); + + // Default to the first available zone to show video immediately + if (!activeZone && zones.length > 0) { + setActiveZone(zones[0].name); } - setShowForm(false); - setEditingCamera(null); - setFormData({ - name: '', - ip_address: '', - port: 554, - username: '', - password: '', - stream_path: '/stream1', - transport_mode: 'tcp', - rtsp_encoding: false, - quality: 'low' - }); - fetchCameras(); } catch (err) { - console.error('Failed to save camera', err); - const errMsg = (err as any).response?.data?.error || (err as any).message || '카메라 저장 실패'; - alert(`오류 발생: ${errMsg}`); - } finally { - setLoading(false); + console.error('Failed to fetch zones', err); } }; - const handleEdit = (camera: Camera) => { - setEditingCamera(camera); - setFormData(camera); - setShowForm(true); - }; + // Determine layout based on active zone's setting + const currentZoneConfig = availableZones.find(z => z.name === activeZone); + const viewLayout = currentZoneConfig ? currentZoneConfig.layout : '2*2'; + + const handleLayoutChange = async (newLayout: string) => { + if (!activeZone) return; + + // Optimistic UI update + setAvailableZones(prev => prev.map(z => + z.name === activeZone ? { ...z, layout: newLayout } : z + )); + setShowLayoutMenu(false); - const handleDelete = async (id: number) => { - if (!window.confirm('정말 삭제하시겠습니까?')) return; try { - await apiClient.delete(`/cameras/${id}`); - fetchCameras(); + await apiClient.patch(`/cameras/zones/${activeZone}/layout`, { layout: newLayout }); } catch (err) { - console.error('Failed to delete camera', err); + console.error('Failed to update layout', err); + // Revert or show alert if needed } }; + const filteredCameras = !activeZone + ? [] + : cameras.filter(c => (c.zone || '기본 구역') === activeZone); + const handleToggleStatus = async (camera: Camera) => { // Optimistic UI Update: Calculate new status const currentStatus = camera.is_active !== 0 && camera.is_active !== false; @@ -226,185 +208,186 @@ export function MonitoringPage() { useEffect(() => { fetchCameras(); + fetchZones(); checkServerVersion(); }, []); - return ( -
-
-

-

- {(user?.role === 'admin' || user?.role === 'supervisor') && ( - - )} -
- {/* Camera Grid with DnD */} - - c.id)} - strategy={rectSortingStrategy} + const HeaderDropdown = () => { + const portalRoot = document.getElementById('header-portal-root'); + if (!portalRoot) return null; + + // Tabs: [Zones...] + const zoneTabs = availableZones.map(z => z.name); + const layoutOptions = [ + { id: '1', label: '1개', icon:
}, + { id: '1*2', label: '1*2', icon:
}, + { id: '2*2', label: '2*2', icon:
}, + { id: '3*3', label: '3*3', icon:
}, + { id: '4*4', label: '4*4', icon:
}, + { id: '5*5', label: '5*5', icon:
}, + { id: '6*6', label: '6*6', icon:
} + ]; + + return createPortal( +
+ {/* Left Area: Zone Tabs */} +
+ {zoneTabs.map(name => ( + + ))} +
+ + {/* Spacer to push everything else to the right */} +
+ + {/* Right Area: Layout Selector */} +
+
+ + + {showLayoutMenu && activeZone && ( +
+
+ Monitor Arrangement +
+
+ {layoutOptions.map(opt => ( + + ))} +
+
+ )} +
+
+
, + portalRoot + ); + }; + + const getLayoutInfo = () => { + if (viewLayout === '1') return { cols: 'grid-cols-1', total: 1 }; + if (viewLayout === '1*2') return { cols: 'grid-cols-2', total: 2 }; + + // Multi-grid like 2*2, 3*3, 4*4 + const parts = viewLayout.split('*'); + if (parts.length === 2) { + const n = parseInt(parts[0]); + return { cols: `grid-cols-${n}`, total: n * n }; + } + + return { cols: 'grid-cols-2', total: 4 }; + }; + + const layoutInfo = getLayoutInfo(); + const totalSlots = Math.max(layoutInfo.total, filteredCameras.length); + // Fill slots: actual cameras + empty placeholders if needed to complete the grid rows + const slots = Array.from({ length: totalSlots }).map((_, i) => filteredCameras[i] || null); + + return ( +
+ + +
+ -
- {cameras.map(camera => ( - -
- - {/* Overlay Controls */} - {(user?.role === 'admin' || user?.role === 'supervisor') && ( -
e.stopPropagation()}> - - - - + c.id)} + strategy={rectSortingStrategy} + disabled={true} + > +
layoutInfo.total ? 'overflow-y-auto' : ''}`} + style={{ gridAutoRows: (viewLayout === '1' || viewLayout === '1*2') ? '100%' : `${100 / Math.sqrt(layoutInfo.total)}%` }}> + {slots.map((camera, index) => ( +
+ {camera ? ( + +
+ {/* VMS Slot Header */} +
+
+
+ {camera.name} +
+ + {(user?.role === 'admin' || user?.role === 'supervisor') && ( +
e.stopPropagation()}> + + +
+ )} +
+ + {/* Streaming Video */} +
+ +
+ + {/* Small persistent ID or Name overlay */} +
+ CH {index + 1} | {camera.ip_address} +
+
+
+ ) : ( +
+
)} -
-

- - {camera.name} {(camera.is_active === 0 || camera.is_active === false) && (중지됨)} -

- {/* IP/Port Hidden as requested */} -
- - ))} -
-
- - - {cameras.length === 0 && ( -
-
- )} - - {/* Add/Edit Modal */} - {showForm && ( -
-
-
-

- {editingCamera ? '카메라 설정 수정' : '새 카메라 추가'} -

- + ))}
- -
-
- - -
-
-
-
-
-
-
-
-
-
- - -
- - {/* Advanced Settings */} -
-

- 고급 설정 -

-
-
- - -
-
- -
-
- - -
-
-
- -
- - -
-
-
-
- )} + + +
); } diff --git a/src/platform/pages/BasicSettingsPage.tsx b/src/platform/pages/BasicSettingsPage.tsx index 0462313..2056404 100644 --- a/src/platform/pages/BasicSettingsPage.tsx +++ b/src/platform/pages/BasicSettingsPage.tsx @@ -1,10 +1,10 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useRef } from 'react'; import { Card } from '../../shared/ui/Card'; import { Button } from '../../shared/ui/Button'; import { Input } from '../../shared/ui/Input'; import { apiClient } from '../../shared/api/client'; import { useAuth } from '../../shared/auth/AuthContext'; -import { Save, Clock, Database, Server, CheckCircle2, AlertCircle, Key, RefreshCcw, ShieldAlert, Lock, Unlock } from 'lucide-react'; +import { Save, Database, Server, CheckCircle2, AlertCircle, Key, RefreshCcw, ShieldAlert, Lock, Unlock, Clock } from 'lucide-react'; interface SystemSettings { session_timeout: number; @@ -65,8 +65,11 @@ export function BasicSettingsPage() { const [verifyPassword, setVerifyPassword] = useState(''); const [verifying, setVerifying] = useState(false); const [verifyError, setVerifyError] = useState(''); + const fetchedRef = useRef(false); useEffect(() => { + if (fetchedRef.current) return; + fetchedRef.current = true; fetchSettings(); fetchEncryptionStatus(); }, []); @@ -236,56 +239,15 @@ export function BasicSettingsPage() {
- {/* Section 1: Security & Session */} - -
-

- - 보안 및 세션 -

-
-
- -
-
- { - const h = parseInt(e.target.value) || 0; - setSettings({ ...settings, session_timeout: (h * 60) + (settings.session_timeout % 60) }); - }} - /> - 시간 -
-
- { - const m = parseInt(e.target.value) || 0; - setSettings({ ...settings, session_timeout: (Math.floor(settings.session_timeout / 60) * 60) + m }); - }} - /> - -
-
-
-
-
- {saveResults.security && ( -
- {saveResults.security.success ? : } - {saveResults.security.message} -
- )} -
-
- - -
+ {/* v0.4.1.0 Info: Session Timeout relocation notice */} + + +
+

세션 관리 정책 변경 안내 (v0.4.1.0)

+

+ 보안 강화 및 개인화 설정을 위해 전역 세션 로그아웃 설정이 개별 사용자 설정으로 이전되었습니다.
+ 좌측 메뉴 하단의 [기본 설정] 메뉴 또는 [사용자 관리] 메뉴에서 사용자별로 시간을 설정하실 수 있습니다. +

diff --git a/src/platform/pages/GeneralPreferencesPage.tsx b/src/platform/pages/GeneralPreferencesPage.tsx index d47535d..ea90809 100644 --- a/src/platform/pages/GeneralPreferencesPage.tsx +++ b/src/platform/pages/GeneralPreferencesPage.tsx @@ -2,14 +2,18 @@ import { useState } from 'react'; import { Card } from '../../shared/ui/Card'; import { Button } from '../../shared/ui/Button'; import { Select } from '../../shared/ui/Select'; -import { Save, Home, User } from 'lucide-react'; +import { Input } from '../../shared/ui/Input'; +import { Save, Home, User, Clock, ShieldAlert, RefreshCcw } from 'lucide-react'; import { useAuth } from '../../shared/auth/AuthContext'; +import { apiClient } from '../../shared/api/client'; export function GeneralPreferencesPage() { const { user } = useAuth(); const [preferences, setPreferences] = useState({ - landingPage: localStorage.getItem(`landing_page_${user?.id}`) || '/home' + landingPage: localStorage.getItem(`landing_page_${user?.id}`) || '/home', + sessionTimeout: user?.session_timeout || 10 }); + const [isSaving, setIsSaving] = useState(false); const [isSaved, setIsSaved] = useState(false); const landingPageOptions = [ @@ -19,10 +23,25 @@ export function GeneralPreferencesPage() { { label: '생산 대시보드', value: '/production/dashboard' } ]; - const handleSave = () => { - localStorage.setItem(`landing_page_${user?.id}`, preferences.landingPage); - setIsSaved(true); - setTimeout(() => setIsSaved(false), 3000); + const handleSave = async () => { + setIsSaving(true); + try { + // 1. Save local preferences + localStorage.setItem(`landing_page_${user?.id}`, preferences.landingPage); + + // 2. Save server-side preferences (Session Timeout) + await apiClient.put('/profile', { + session_timeout: preferences.sessionTimeout + }); + + setIsSaved(true); + setTimeout(() => setIsSaved(false), 3000); + } catch (error) { + console.error('Failed to save preferences', error); + alert('설정 저장 중 오류가 발생했습니다.'); + } finally { + setIsSaving(false); + } }; return ( @@ -71,18 +90,65 @@ export function GeneralPreferencesPage() { 소속 부서 {user?.department || '미지정'}
+
+ 현재 세션 만료 + {user?.session_timeout}분 +
+ +
+ +

보안 및 세션 설정

+
+ +
+

+ 활동이 없을 경우 자동으로 로그아웃되는 시간을 설정합니다. (단위: 분) +

+
+ setPreferences({ ...preferences, sessionTimeout: parseInt(e.target.value) || 0 })} + min={5} + max={1440} + className="!w-32" + /> + 분 후 자동 로그아웃 +
+

+ * 최소 5분에서 최대 1440분(24시간)까지 설정 가능합니다. +

+
+
+ + {user?.role !== 'user' && ( + +
+ +
+

관리자 안내

+

+ 기존 '시스템 관리 - 기본 설정'에 있던 전역 세션 설정은 v0.4.1.0 업데이트로 인해 폐지되었습니다.
+ 이제 모든 사용자의 세션 시간은 각 사용자의 개별 설정 또는 사용자 관리 메뉴에서 개별적으로 관리됩니다. +

+
+
+
+ )} +
{isSaved && ✓ 설정이 저장되었습니다.}
diff --git a/src/platform/pages/UserManagementPage.tsx b/src/platform/pages/UserManagementPage.tsx index ab493cf..5bb57c2 100644 --- a/src/platform/pages/UserManagementPage.tsx +++ b/src/platform/pages/UserManagementPage.tsx @@ -1,9 +1,9 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useRef } from 'react'; import { Card } from '../../shared/ui/Card'; import { Button } from '../../shared/ui/Button'; import { Input } from '../../shared/ui/Input'; import { apiClient } from '../../shared/api/client'; -import { Plus, Edit2, Trash2, X, Check, Shield, User as UserIcon, ShieldCheck, RefreshCcw } from 'lucide-react'; +import { Plus, Edit2, Trash2, X, Check, Shield, User as UserIcon, ShieldCheck, RefreshCcw, Printer } from 'lucide-react'; import type { User } from '../../shared/auth/AuthContext'; import { useAuth } from '../../shared/auth/AuthContext'; import './UserManagementPage.css'; @@ -16,12 +16,14 @@ interface UserFormData { position: string; phone: string; role: 'supervisor' | 'admin' | 'user'; + session_timeout: number; } export function UserManagementPage() { const { user: currentUser } = useAuth(); const [users, setUsers] = useState([]); const [loading, setLoading] = useState(false); + const fetchedRef = useRef(false); // Modal State const [isModalOpen, setIsModalOpen] = useState(false); @@ -33,10 +35,13 @@ export function UserManagementPage() { department: '', position: '', phone: '', - role: 'user' + role: 'user', + session_timeout: 10 }); useEffect(() => { + if (fetchedRef.current) return; + fetchedRef.current = true; fetchUsers(); }, []); @@ -61,7 +66,8 @@ export function UserManagementPage() { department: '', position: '', phone: '', - role: 'user' + role: 'user', + session_timeout: 10 }); setIsEditing(false); setIsModalOpen(true); @@ -75,7 +81,8 @@ export function UserManagementPage() { department: user.department || '', position: user.position || '', phone: user.phone || '', - role: user.role + role: user.role, + session_timeout: (user as any).session_timeout || 10 }); setIsEditing(true); setIsModalOpen(true); @@ -149,7 +156,10 @@ export function UserManagementPage() {

시스템 관리 - 사용자 관리

시스템 접속 권한 및 사용자 정보를 관리합니다.

- +
+ + +
@@ -160,6 +170,7 @@ export function UserManagementPage() { 아이디 / 권한 이름 소속 / 직위 + 세션 (분) 연락처 마지막 접속 관리 @@ -186,6 +197,9 @@ export function UserManagementPage() {
{user.department || '-'}
{user.position}
+ + {(user as any).session_timeout || 10} + {user.phone || '-'} {user.last_login ? new Date(user.last_login).toLocaleString() : '미접속'} @@ -265,17 +279,14 @@ export function UserManagementPage() { value={formData.role} onChange={(e) => setFormData({ ...formData, role: e.target.value as any })} disabled={ - // 1. 현재 관리자(admin)는 최고관리자(supervisor)의 권한을 바꿀 수 없음 (isEditing && users.find(u => u.id === formData.id)?.role === 'supervisor' && currentUser?.role !== 'supervisor') || - // 2. 현재 관리자(admin)는 자기 자신의 권한을 'supervisor'로 올릴 수 없음 (애초에 옵션에서 걸러지겠지만 안전 장치) (formData.role === 'supervisor' && currentUser?.role !== 'supervisor') } > - + - {/* 최고관리자(supervisor) 옵션은 오직 최고관리자만 부여 가능 */} {(currentUser?.role === 'supervisor' || (isEditing && users.find(u => u.id === formData.id)?.role === 'supervisor')) && ( - + )} {currentUser?.role !== 'supervisor' && ( @@ -301,14 +312,29 @@ export function UserManagementPage() {
-
- - setFormData({ ...formData, phone: formatPhoneNumber(e.target.value) })} - placeholder="010-0000-0000" - maxLength={13} - /> +
+
+ + setFormData({ ...formData, phone: formatPhoneNumber(e.target.value) })} + placeholder="010-0000-0000" + maxLength={13} + /> +
+
+ + setFormData({ ...formData, session_timeout: parseInt(e.target.value) || 0 })} + min={5} + placeholder="기본 10" + required + /> +
diff --git a/src/platform/styles/global.css b/src/platform/styles/global.css index ab6842e..73045aa 100644 --- a/src/platform/styles/global.css +++ b/src/platform/styles/global.css @@ -113,4 +113,126 @@ button { opacity: 1; transform: translateY(0); } +} + +/* ========================================== + Print Styles + ========================================== */ +@media print { + + /* Hide UI elements that shouldn't be printed */ + header, + nav, + aside, + .sidebar, + .top-header, + .no-print, + button, + .btn, + .ui-button, + .table-toolbar, + .pagination-bar, + .form-actions, + .form-actions-footer, + .section-divider, + .badge-neutral { + display: none !important; + } + + /* Reset layout for print */ + body { + background-color: white !important; + } + + .layout-container { + display: block !important; + } + + .main-content { + margin-left: 0 !important; + padding: 0 !important; + width: 100% !important; + } + + .content-area { + padding: 0 !important; + } + + .page-container { + margin: 0 !important; + padding: 0 !important; + } + + .content-card, + .sokuree-card { + border: none !important; + box-shadow: none !important; + padding: 0 !important; + margin: 0 !important; + } + + /* Ensure original layout is kept but scaled to fit */ + .document-layout { + display: flex !important; + flex-direction: row !important; + /* Keep original row layout */ + gap: 15pt !important; + align-items: flex-start !important; + width: 100% !important; + zoom: 0.85; + /* Scale down slightly to fit Portrait width */ + } + + /* Adjust image area for print to be more compact */ + .doc-image-area { + width: 200pt !important; + height: 200pt !important; + flex: none !important; + border: 1px solid #e2e8f0 !important; + } + + .doc-info-area { + flex: 1 !important; + min-width: 0 !important; + /* Allow shrinking */ + } + + .doc-table { + width: 100% !important; + table-layout: fixed !important; + /* Maintain the fixed structure requested */ + border: 1px solid #cbd5e1 !important; + } + + .doc-table th, + .doc-table td { + padding: 4pt 6pt !important; + /* Tighter padding for print */ + font-size: 10pt !important; + height: 35pt !important; + /* Reduced height for compactness */ + word-break: break-all !important; + } + + /* Reset colgroup if needed specifically for print if still tight */ + .doc-table col { + height: auto !important; + } + + /* Force background colors and colors to show up */ + * { + -webkit-print-color-adjust: exact !important; + print-color-adjust: exact !important; + } + + /* Typography adjustments for print */ + .page-title-text { + font-size: 24pt !important; + margin-bottom: 20pt !important; + text-align: center; + } + + .doc-table th { + background-color: #f1f5f9 !important; + } } \ No newline at end of file diff --git a/src/shared/api/assetApi.ts b/src/shared/api/assetApi.ts index 2aefcbe..e4c2aa7 100644 --- a/src/shared/api/assetApi.ts +++ b/src/shared/api/assetApi.ts @@ -3,6 +3,8 @@ import { apiClient } from './client'; // Frontend Interface (CamelCase) export interface Asset { id: string; + parentId?: string; // DB: parent_id + parentName?: string; // Joined name: string; category: string; model: string; // DB: model_name @@ -16,11 +18,15 @@ export interface Asset { image?: string; // DB: image_url calibrationCycle?: string; // DB: calibration_cycle specs?: string; + quantity?: number; + children?: Partial[]; // List of sub-assets } // DB Interface (SnakeCase) - for internal mapping interface DBAsset { id: string; + parent_id?: string; + parent_name?: string; // Joined or added in response name: string; category: string; model_name: string; @@ -34,8 +40,10 @@ interface DBAsset { image_url?: string; calibration_cycle: string; specs: string; + quantity?: number; created_at: string; updated_at: string; + children?: any[]; } export interface MaintenanceRecord { @@ -81,7 +89,20 @@ export const assetApi = { getById: async (id: string): Promise => { const response = await apiClient.get(`/assets/${id}`); - return mapDBToAsset(response.data); + const asset = mapDBToAsset(response.data); + if (response.data.children) { + asset.children = response.data.children.map(c => ({ + id: c.id, + name: c.name, + category: c.category, + status: c.status, + location: c.location + })); + } + if (response.data.parent_name) { + asset.parentName = response.data.parent_name; + } + return asset; }, create: (data: Partial) => { @@ -136,12 +157,27 @@ export const assetApi = { deleteManual: async (id: number) => { return apiClient.delete(`/manuals/${id}`); + }, + + // Accessories + getAccessories: async (assetId: string): Promise => { + const response = await apiClient.get(`/assets/${assetId}/accessories`); + return response.data; + }, + + addAccessory: async (assetId: string, data: { name: string, spec: string, quantity: number }) => { + return apiClient.post(`/assets/${assetId}/accessories`, data); + }, + + deleteAccessory: async (id: number) => { + return apiClient.delete(`/accessories/${id}`); } }; // Helper Mappers const mapDBToAsset = (db: DBAsset): Asset => ({ id: db.id, + parentId: db.parent_id, name: db.name, category: db.category, model: db.model_name || '', @@ -154,11 +190,13 @@ const mapDBToAsset = (db: DBAsset): Asset => ({ purchasePrice: db.purchase_price, image: db.image_url, calibrationCycle: db.calibration_cycle || '', - specs: db.specs || '' + specs: db.specs || '', + quantity: db.quantity }); const mapAssetToDB = (asset: Partial): Partial => { const db: any = { ...asset }; + if (asset.parentId !== undefined) { db.parent_id = asset.parentId; delete db.parentId; } if (asset.model !== undefined) { db.model_name = asset.model; delete db.model; } if (asset.serialNumber !== undefined) { db.serial_number = asset.serialNumber; delete db.serialNumber; } if (asset.purchaseDate !== undefined) { db.purchase_date = asset.purchaseDate; delete db.purchaseDate; } diff --git a/src/shared/auth/AuthContext.tsx b/src/shared/auth/AuthContext.tsx index d5d292f..9f1672d 100644 --- a/src/shared/auth/AuthContext.tsx +++ b/src/shared/auth/AuthContext.tsx @@ -1,4 +1,4 @@ -import { createContext, useContext, useState, type ReactNode, useEffect } from 'react'; +import { createContext, useContext, useState, type ReactNode, useEffect, useRef } from 'react'; import { apiClient, setCsrfToken } from '../api/client'; export interface User { @@ -8,6 +8,7 @@ export interface User { department?: string; position?: string; phone?: string; + session_timeout?: number; last_login?: string; } @@ -24,46 +25,46 @@ const AuthContext = createContext(null); export function AuthProvider({ children }: { children: ReactNode }) { const [user, setUser] = useState(null); const [isLoading, setIsLoading] = useState(true); + const isCheckingRef = useRef(false); + const lastActivityRef = useRef(Date.now()); + const timeoutMsRef = useRef(3600000); // 1 hour default - // Check for existing session on mount and periodically useEffect(() => { - let lastActivity = Date.now(); - let timeoutMs = 3600000; // Default 1 hour + const checkSession = async (isBackground = false) => { + if (isCheckingRef.current) return; + isCheckingRef.current = true; - const checkSession = async () => { try { const response = await apiClient.get('/check'); if (response.data.isAuthenticated) { setUser(response.data.user); if (response.data.csrfToken) setCsrfToken(response.data.csrfToken); - if (response.data.sessionTimeout) timeoutMs = response.data.sessionTimeout; + if (response.data.sessionTimeout) { + timeoutMsRef.current = response.data.sessionTimeout; + } } else { // Safety: only redirect if we were previously logged in setUser(prev => { - if (prev) { + if (prev || !isBackground) { setCsrfToken(null); - window.location.href = '/login?expired=true'; + if (!window.location.pathname.includes('/login')) { + window.location.href = '/login?expired=true'; + } return null; } return prev; }); } } catch (error) { - setUser(prev => { - if (prev) { - setCsrfToken(null); - window.location.href = '/login?expired=true'; - return null; - } - return prev; - }); + console.error('Session check failed', error); } finally { + isCheckingRef.current = false; setIsLoading(false); } }; const updateActivity = () => { - lastActivity = Date.now(); + lastActivityRef.current = Date.now(); }; // Activity Listeners @@ -72,25 +73,19 @@ export function AuthProvider({ children }: { children: ReactNode }) { window.addEventListener('scroll', updateActivity); window.addEventListener('click', updateActivity); + // Initial check on mount checkSession(); - // Check activity status every 30 seconds + // Check activity status const activityInterval = setInterval(() => { - // Functional check to avoid stale user closure - setUser(current => { - if (current) { - const idleTime = Date.now() - lastActivity; - if (idleTime >= timeoutMs) { - console.log('Idle timeout reached. Checking session...'); - checkSession(); - } - } - return current; - }); + const idleTime = Date.now() - lastActivityRef.current; + if (idleTime >= timeoutMsRef.current) { + checkSession(true); + } }, 30000); - // Fallback polling every 5 minutes (for secondary tabs etc) - const pollInterval = setInterval(checkSession, 300000); + // Fallback polling + const pollInterval = setInterval(() => checkSession(true), 300000); return () => { window.removeEventListener('mousemove', updateActivity); @@ -100,7 +95,7 @@ export function AuthProvider({ children }: { children: ReactNode }) { clearInterval(activityInterval); clearInterval(pollInterval); }; - }, []); // Removed [user] to prevent infinite loop + }, []); const login = async (id: string, password: string) => { try { diff --git a/src/shared/context/SystemContext.tsx b/src/shared/context/SystemContext.tsx index 72ed3aa..1484897 100644 --- a/src/shared/context/SystemContext.tsx +++ b/src/shared/context/SystemContext.tsx @@ -1,4 +1,4 @@ -import { createContext, useContext, useState, useEffect, type ReactNode } from 'react'; +import { createContext, useContext, useState, useEffect, type ReactNode, useRef } from 'react'; import { apiClient } from '../api/client'; import { useAuth } from '../auth/AuthContext'; @@ -20,6 +20,7 @@ export function SystemProvider({ children }: { children: ReactNode }) { const [modules, setModules] = useState>({}); const [isLoading, setIsLoading] = useState(true); const { isAuthenticated } = useAuth(); // Only load if authenticated + const isFetchingRef = useRef(null); // Track if already fetched for current state const refreshModules = async () => { try { @@ -40,8 +41,12 @@ export function SystemProvider({ children }: { children: ReactNode }) { useEffect(() => { if (isAuthenticated) { + // Only fetch if we haven't fetched for this authenticated state yet + if (isFetchingRef.current === 'authed') return; + isFetchingRef.current = 'authed'; refreshModules(); } else { + isFetchingRef.current = 'guest'; setModules({}); setIsLoading(false); } diff --git a/src/system/pages/LicensePage.tsx b/src/system/pages/LicensePage.tsx index a63f45d..9b68183 100644 --- a/src/system/pages/LicensePage.tsx +++ b/src/system/pages/LicensePage.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { useSystem } from '../../shared/context/SystemContext'; import { apiClient } from '../../shared/api/client'; -import { Check, X, Key, Shield, AlertTriangle, Terminal } from 'lucide-react'; +import { Check, X, Key, Shield, AlertTriangle, Terminal, Printer } from 'lucide-react'; export function LicensePage() { const { modules, refreshModules } = useSystem(); @@ -92,10 +92,19 @@ export function LicensePage() { return (
-

- - 라이선스 및 모듈 관리 -

+
+

+ + 라이선스 및 모듈 관리 +

+ +

diff --git a/src/widgets/layout/MainLayout.css b/src/widgets/layout/MainLayout.css index 27634a5..396d929 100644 --- a/src/widgets/layout/MainLayout.css +++ b/src/widgets/layout/MainLayout.css @@ -203,11 +203,17 @@ background-color: var(--sokuree-bg-card); border-bottom: 1px solid var(--sokuree-border-color); display: flex; - align-items: flex-end; - padding: 0 2.5rem; + align-items: center; + padding: 0 1.5rem; color: var(--sokuree-text-primary); - justify-content: flex-end; - /* Align to right */ + justify-content: space-between; +} + +.header-portal-root { + flex: 1; + display: flex; + align-items: center; + height: 100%; } .header-tabs { diff --git a/src/widgets/layout/MainLayout.tsx b/src/widgets/layout/MainLayout.tsx index d50cdb1..bcf6fcc 100644 --- a/src/widgets/layout/MainLayout.tsx +++ b/src/widgets/layout/MainLayout.tsx @@ -111,8 +111,8 @@ export function MainLayout({ modulesList }: MainLayoutProps) { onClick={() => toggleModule(mod.moduleName)} >
- - {mod.moduleName.split('-')[0].charAt(0).toUpperCase() + mod.moduleName.split('-')[0].slice(1)} 관리 + {mod.moduleName === 'cctv' ?
{isExpanded ? : } @@ -182,7 +182,7 @@ export function MainLayout({ modulesList }: MainLayoutProps) { >
)} @@ -262,6 +262,7 @@ export function MainLayout({ modulesList }: MainLayoutProps) {

)}
+