검증게시판 기능 추가

This commit is contained in:
Macbook
2026-05-27 15:41:19 +09:00
parent 7a0af36b9b
commit 63693d47c0
57 changed files with 4480 additions and 14 deletions
@@ -2,6 +2,11 @@ spring:
application:
name: goldenchart-backend
servlet:
multipart:
max-file-size: 6MB
max-request-size: 30MB
profiles:
active: ${SPRING_PROFILES_ACTIVE:local}
@@ -95,6 +100,10 @@ goldenchart:
enabled: true
tick-ms: 1000
queue-capacity: 16
verification:
upload-dir: ${GC_VERIFICATION_UPLOAD_DIR:data/verification-images}
max-image-size-mb: 5
max-images-per-issue: 30
cors:
allowed-origins:
- http://localhost:5173
@@ -0,0 +1,13 @@
-- 검증게시판 이슈
CREATE TABLE gc_verification_issue (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(300) NOT NULL,
content TEXT NOT NULL,
stage VARCHAR(32) NOT NULL DEFAULT 'REGISTERED',
user_id BIGINT NULL,
device_id VARCHAR(100) NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_verification_issue_stage (stage),
INDEX idx_verification_issue_updated (updated_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@@ -0,0 +1,6 @@
-- 검증게시판 메뉴 권한
INSERT INTO gc_role_menu_permission (role, menu_id, allowed) VALUES
('ADMIN', 'verification-board', 1),
('USER', 'verification-board', 1),
('GUEST', 'verification-board', 0)
ON DUPLICATE KEY UPDATE allowed = VALUES(allowed);
@@ -0,0 +1,14 @@
-- 검증 이슈 댓글
CREATE TABLE gc_verification_issue_comment (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
issue_id BIGINT NOT NULL,
content TEXT NOT NULL,
author_name VARCHAR(100) NULL,
user_id BIGINT NULL,
device_id VARCHAR(100) NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_vic_issue_id (issue_id),
CONSTRAINT fk_vic_issue FOREIGN KEY (issue_id)
REFERENCES gc_verification_issue (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@@ -0,0 +1,14 @@
-- 검증 이슈 첨부 이미지
CREATE TABLE gc_verification_issue_image (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
issue_id BIGINT NOT NULL,
file_name VARCHAR(255) NOT NULL,
content_type VARCHAR(100) NOT NULL,
storage_path VARCHAR(500) NOT NULL,
file_size BIGINT NOT NULL DEFAULT 0,
sort_order INT NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
INDEX idx_vii_issue_id (issue_id),
CONSTRAINT fk_vii_issue FOREIGN KEY (issue_id)
REFERENCES gc_verification_issue (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@@ -0,0 +1,2 @@
ALTER TABLE gc_verification_issue
ADD COLUMN reproduction_path VARCHAR(500) NULL AFTER content;
@@ -0,0 +1,4 @@
-- 검증 이슈 등록·단계 변경 알림 팝업 ON/OFF
ALTER TABLE gc_app_settings
ADD COLUMN verification_issue_notify TINYINT(1) NOT NULL DEFAULT 1
COMMENT '검증 이슈 등록·단계 변경 알림 팝업';