-- B03 청크 업로드 관련 테이블 생성 CREATE TABLE IF NOT EXISTS upload_sessions ( id VARCHAR(36) NOT NULL PRIMARY KEY, project_id VARCHAR(36) NOT NULL, original_filename VARCHAR(255) NOT NULL, file_size_bytes BIGINT NOT NULL, chunk_size_bytes BIGINT NOT NULL, total_chunks INT NOT NULL, completed_chunks INT DEFAULT 0, status ENUM('PENDING', 'IN_PROGRESS', 'COMPLETED', 'FAILED') DEFAULT 'PENDING', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE, INDEX idx_project_id (project_id), INDEX idx_status (status), INDEX idx_created_at (created_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS upload_chunks ( id INT AUTO_INCREMENT PRIMARY KEY, session_id VARCHAR(36) NOT NULL, chunk_index INT NOT NULL, chunk_hash VARCHAR(64), size_bytes BIGINT NOT NULL, stored_at VARCHAR(255), completed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uq_session_chunk (session_id, chunk_index), FOREIGN KEY (session_id) REFERENCES upload_sessions(id) ON DELETE CASCADE, INDEX idx_session_id (session_id), INDEX idx_completed_at (completed_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;