feat: 경영성과 대시보드 DB·엑셀 업로드·HTML 차트 연동
- mgmt_perf_uploads / mgmt_perf_snapshots 스키마 - POST /api/mgmt-perf/upload, 기본 페이로드 data/mgmt-perf-default-payload.json - 대시보드 페이지: 업로드 영역 + iframe embed - public/mgmt-perf: 원본 HTML 기반 CSS·dashboard-app.js - xlsx 미설치 시 기본 페이로드+메타만 저장 Made-with: Cursor
This commit is contained in:
@@ -270,3 +270,28 @@ CREATE TABLE IF NOT EXISTS lecture_thumbnail_events (
|
||||
CREATE INDEX IF NOT EXISTS idx_lecture_thumbnail_events_occurred ON lecture_thumbnail_events (occurred_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_lecture_thumbnail_events_type ON lecture_thumbnail_events (event_type);
|
||||
CREATE INDEX IF NOT EXISTS idx_lecture_thumbnail_events_lecture ON lecture_thumbnail_events (lecture_id);
|
||||
|
||||
-- 경영성과 대시보드: 엑셀 업로드·차트용 JSON 스냅샷
|
||||
CREATE TABLE IF NOT EXISTS mgmt_perf_uploads (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_email VARCHAR(320),
|
||||
original_filename TEXT NOT NULL,
|
||||
fiscal_year INT NOT NULL,
|
||||
quarter INT NOT NULL CHECK (quarter >= 1 AND quarter <= 4),
|
||||
file_path TEXT NOT NULL,
|
||||
file_size BIGINT,
|
||||
parse_status VARCHAR(32) NOT NULL DEFAULT 'ok',
|
||||
parse_error TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_mgmt_perf_uploads_created ON mgmt_perf_uploads (created_at DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mgmt_perf_snapshots (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
upload_id UUID NOT NULL UNIQUE REFERENCES mgmt_perf_uploads (id) ON DELETE CASCADE,
|
||||
payload JSONB NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_mgmt_perf_snapshots_upload ON mgmt_perf_snapshots (upload_id);
|
||||
|
||||
Reference in New Issue
Block a user