-- ============================================
-- Gnuboard5 R2 Storage Migration
-- Version: 1.0.0
-- ============================================

-- 게시판 첨부파일 테이블에 R2 관련 컬럼 추가
ALTER TABLE `g5_board_file`
ADD COLUMN `bf_r2_key` VARCHAR(500) DEFAULT NULL COMMENT 'R2 object key (storage path)' AFTER `bf_type`,
ADD COLUMN `bf_storage_type` ENUM('local', 'r2') DEFAULT 'local' COMMENT 'Storage type' AFTER `bf_r2_key`;

-- 인덱스 추가 (R2 키 조회 최적화)
CREATE INDEX `idx_bf_r2_key` ON `g5_board_file` (`bf_r2_key`(255));
CREATE INDEX `idx_bf_storage_type` ON `g5_board_file` (`bf_storage_type`);

-- 1:1 문의 첨부파일 테이블 (있는 경우)
-- ALTER TABLE `g5_qa_content`
-- ADD COLUMN `qa_r2_key1` VARCHAR(500) DEFAULT NULL COMMENT 'R2 object key for file 1',
-- ADD COLUMN `qa_r2_key2` VARCHAR(500) DEFAULT NULL COMMENT 'R2 object key for file 2',
-- ADD COLUMN `qa_storage_type` ENUM('local', 'r2') DEFAULT 'local';

-- 에디터 첨부파일 추적 테이블 (신규 생성 - 선택사항)
CREATE TABLE IF NOT EXISTS `g5_editor_files` (
    `ef_no` INT(11) NOT NULL AUTO_INCREMENT,
    `mb_id` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Member ID',
    `ef_file` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'File name',
    `ef_source` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Original file name',
    `ef_filesize` INT(11) NOT NULL DEFAULT 0 COMMENT 'File size in bytes',
    `ef_width` INT(11) NOT NULL DEFAULT 0 COMMENT 'Image width',
    `ef_height` INT(11) NOT NULL DEFAULT 0 COMMENT 'Image height',
    `ef_type` TINYINT(4) NOT NULL DEFAULT 0 COMMENT 'File type (0=file, 1=image)',
    `ef_r2_key` VARCHAR(500) DEFAULT NULL COMMENT 'R2 object key',
    `ef_storage_type` ENUM('local', 'r2') DEFAULT 'local' COMMENT 'Storage type',
    `ef_datetime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Upload datetime',
    PRIMARY KEY (`ef_no`),
    KEY `idx_mb_id` (`mb_id`),
    KEY `idx_ef_r2_key` (`ef_r2_key`(255)),
    KEY `idx_ef_storage_type` (`ef_storage_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Editor uploaded files tracking';
