CREATE TABLE comments (
                          id BIGINT PRIMARY KEY,
                          post_id BIGINT NOT NULL REFERENCES posts(id),
                          author_id BIGINT NOT NULL,
                          content TEXT NOT NULL,
                          like_count INT DEFAULT 0,
                          created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
                          deleted_at TIMESTAMPTZ
);

-- 基础索引
CREATE INDEX idx_comments_post ON comments(post_id, created_at) WHERE deleted_at IS NULL;
CREATE INDEX idx_comments_author ON comments(author_id, created_at DESC) WHERE deleted_at IS NULL;

-- 三元组索引用于评论内容搜索
CREATE INDEX idx_comments_content_trgm ON comments USING gin(content gin_trgm_ops)
    WHERE deleted_at IS NULL;

-- 热门评论索引
CREATE INDEX idx_comments_post_likes ON comments(post_id, like_count DESC, created_at)
    WHERE deleted_at IS NULL;