WORK ORDER: FKI Corporate Asset System Migration
Project Code: FKI-ASSET-V2 Date: 2026-02-08 To: Antigravity Development Team From: System Architect

1. Project Overview
기존 Notion으로 관리되던 한경협(FKI)의 4대 핵심 자산(직원, 노트북, 임시출입증, 복합기 계정) 데이터를 완벽하게 이관하고, PHP 8.4 + SQLite 기반의 독립적인 웹 애플리케이션을 구축한다. 핵심 목표는 **Zero Latency(즉각적인 반응 속도)**와 Data Integrity(데이터 무결성) 확보이며, 특히 **CSV 데이터의 자동 정규화 및 관계 연결(Mapping)**이 필수 요구사항이다.

2. Technical Stack & Environment
Platform: Synology NAS Web Station (Self-hosted)

Language: PHP 8.4 (Strong Typing, Modern Syntax)

Database: SQLite 3 (WAL Mode Enabled, Foreign Keys ON)

Frontend: HTML5, Tailwind CSS (CDN), Alpine.js (CDN)

Architecture: Single File DB (assets.db), RESTful API (api.php)

3. Database Schema Requirements (Finalized)
모든 테이블은 확장을 대비해 spare_1 ~ spare_5 컬럼을 포함할 것.

[A] departments (조직도)
계층형 구조 지원 (parent_id, level).

Migration Rule: CSV의 상위 항목 컬럼을 분석하여 부모-자식 관계를 자동으로 연결할 것.

[B] users (직원 마스터)
Columns: emp_id(사번), name, department_id, position(직위), email, phone(내선), mobile(휴대폰), status(active/resigned), accounting_type(회계구분).

Migration Rule: 사번이 없는 경우 FKI_TEMP_{id} 형식으로 임시 발급. 회계구분은 기본 '일반회계'로 설정하되 추후 수정 가능하도록 구현.

[C] laptop_models (모델 마스터)
Columns: model_name, manufacturer.

Migration Rule: 노트북 데이터에서 모델명을 추출하여 중복 없이 마스터 테이블로 생성.

[D] laptop_assets (노트북 실물)
Columns: asset_tag(자산관리번호-PK), model_id, current_user_id(FK), status(stock/assigned), serial_number, purchase_date.

Migration Rule (Critical):

CSV의 사용중노트북 컬럼(User CSV)과 배정 사용자(Laptop CSV) 양방향을 대조하여 매핑.

Notion Link 포맷(Name (Link))을 파싱하여 순수 텍스트만 추출해 매핑할 것.

[E] access_cards (임시 출입증)
Columns: card_number(보안실 넘버링-PK), card_type(임시 네이밍), nfc_id.

[F] mfp_accounts (복합기 계정)
Columns: account_id(이름-PK), account_pw, purpose(사용목적), status.

4. Migration & Initialization Logic (db_init.php)
핵심 요구사항: 별도의 CSV 업로드 과정 없이, 제공된 PHP 파일 실행 한 번으로 DB 생성부터 데이터 주입까지 완료되어야 함.

Embed SQL Data: 분석 완료된 CSV 데이터를 INSERT 쿼리 형태로 PHP 파일 내부에 하드코딩할 것 (약 400+ Rows).

Hierarchy Restoration: 부서명을 기준으로 부모 ID를 찾아 departments 테이블의 계층 구조를 복원할 것.

Smart Linking: 노트북의 asset_tag를 키로 사용하여 users 테이블과 laptop_assets 테이블의 Foreign Key 관계를 완벽하게 연결할 것.

5. UI/UX Specifications
5.1 Dashboard (index.php)
Layout: 4-Column Grid (Laptops, Access Cards, MFP, Users).

Metrics: 총 자산 수 vs 할당된 자산 수(Assign Rate)를 시각화 (Progress Bar).

Design: Clean & Corporate Style (Tailwind slate-800 as Primary).

5.2 User Management (users.php)
Table: 사번, 이름/직위, 부서(계층 경로 포함), 연락처(내선/휴대폰/이메일), 상태.

Feature: 검색 기능 및 상태(재직/퇴사) 필터링.

5.3 Asset Management
Laptop List: 자산번호, 모델명, 시리얼, 현재 사용자, 취득일 표시.

6. Deliverables (Files to Submit)
config.php: DB Path 및 WAL 모드 설정.

db_init.php: (중요) 스키마 생성 + CSV 데이터 파싱 완료된 Insert 쿼리 내장 + 자동 실행 로직.

api.php: 4대 자산 CRUD 및 대시보드 통계 API.

index.php: 통합 대시보드 Frontend.

users.php: 직원 관리 Frontend.

laptops.php: 노트북 관리 Frontend.

assets/style.css: 커스텀 스타일.

Note to Developer: db_init.php 작성 시 set_time_limit(300)을 반드시 포함하여 대량의 Insert 쿼리 실행 중 타임아웃이 발생하지 않도록 하십시오. 데이터 분석은 이미 완료되었으므로, 첨부된 SQL 데이터를 그대로 사용하면 됩니다.