-- ============================================================
-- Migration: 영상 댓글 테이블 추가
-- Date: 2026-05-21
-- Description: 영상 상세 페이지 댓글/대댓글 기능 (2-depth, 소프트 삭제)
-- ============================================================

CREATE TABLE IF NOT EXISTS comment (
    id         BIGINT       NOT NULL AUTO_INCREMENT COMMENT '고유 식별자',
    video_id   INT          NOT NULL                COMMENT '연결된 Video의 id',
    user_uuid  VARCHAR(36)  NOT NULL                COMMENT '작성자 UUID (user.user_uuid 참조, 응답 미노출)',
    nickname   VARCHAR(20)          NULL                COMMENT '작성자 닉네임 (null이면 익명으로 표시)',
    parent_id  BIGINT           NULL                COMMENT 'NULL=최상위 댓글, 값=대댓글의 부모 id',
    content    VARCHAR(100) NOT NULL                COMMENT '댓글 본문 (한글 기준 100자 이내)',
    is_deleted BOOLEAN      NOT NULL DEFAULT FALSE  COMMENT '소프트 삭제 여부',
    created_at DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성 일시',
    PRIMARY KEY (id),
    CONSTRAINT fk_comment_video  FOREIGN KEY (video_id)  REFERENCES video(id)         ON DELETE CASCADE,
    CONSTRAINT fk_comment_user   FOREIGN KEY (user_uuid) REFERENCES `user`(user_uuid) ON DELETE CASCADE,
    CONSTRAINT fk_comment_parent FOREIGN KEY (parent_id) REFERENCES comment(id)       ON DELETE CASCADE,
    INDEX idx_comment_video_id   (video_id),
    INDEX idx_comment_user_uuid  (user_uuid),
    INDEX idx_comment_parent_id  (parent_id),
    INDEX idx_comment_is_deleted (is_deleted)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='영상 댓글/대댓글';
