feat: 사용자 의견(피드백) 기능 — 화면 캡처+이미지 첨부, 관리자 검토

- 전 화면 우하단 '의견' 위젯(embed/portal/admin 레이아웃) — 로그인 사용자
- 의견 + html2canvas 화면 캡처 + 이미지 첨부(최대 5장) 저장
- 화면 URL/계정/지자체 자동 수집(계정·지자체는 서버 세션 기준)
- 관리자 /admin/feedback 목록·상세·상태(접수/처리중/완료/보류)·메모, 테넌트 분리
- feedback/feedback_file 테이블, 첨부 이미지는 관리자 전용 라우트로 서빙

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
taekyoungc
2026-06-16 15:39:02 +09:00
parent 4e681d08cc
commit 59b33ccb42
13 changed files with 624 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
-- 사용자 의견 첨부 이미지(여러 장). 캡처/업로드 공통.
CREATE TABLE IF NOT EXISTS feedback_file (
ff_idx INT AUTO_INCREMENT PRIMARY KEY,
ff_fb_idx INT NOT NULL,
ff_kind VARCHAR(20) NOT NULL DEFAULT 'upload', -- capture | upload
ff_path VARCHAR(255) NOT NULL,
ff_mime VARCHAR(50) NULL,
ff_regdate DATETIME NULL,
INDEX idx_ff_fb (ff_fb_idx)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

View File

@@ -0,0 +1,21 @@
-- 사용자 의견(피드백) 테이블
-- 각 화면에서 사용자가 남긴 의견 + 자동수집 맥락(화면·계정·지자체) + 스크린샷 경로 저장.
CREATE TABLE IF NOT EXISTS feedback (
fb_idx INT AUTO_INCREMENT PRIMARY KEY,
fb_lg_idx INT NULL,
fb_mb_idx INT NULL,
fb_mb_name VARCHAR(100) NULL,
fb_mb_level INT NULL,
fb_content TEXT NOT NULL,
fb_page_url VARCHAR(255) NULL,
fb_page_title VARCHAR(255) NULL,
fb_screenshot VARCHAR(255) NULL,
fb_user_agent VARCHAR(255) NULL,
fb_status VARCHAR(20) NOT NULL DEFAULT 'new',
fb_admin_memo TEXT NULL,
fb_regdate DATETIME NULL,
fb_updated DATETIME NULL,
INDEX idx_fb_lg (fb_lg_idx),
INDEX idx_fb_status (fb_status),
INDEX idx_fb_regdate (fb_regdate)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;