-- 增加更多网红数据，平台多样化
INSERT INTO
  public .influencers (
    influencer_id,
    name,
    platform,
    profile_url,
    external_id,
    followers_count,
    video_count,
    platform_count,
    created_at,
    updated_at
  )
VALUES
  -- 超大粉丝量的头部KOL
  (
    gen_random_uuid(),
    '陈明星',
    'instagram',
    'https://instagram.com/chenstar',
    'insta_chenstar_' || floor(random() * 1000) :: text,
    5000000,
    2100,
    3,
    CURRENT_TIMESTAMP - interval '2 years',
    CURRENT_TIMESTAMP
  ),
  -- 中等体量的KOL
  (
    gen_random_uuid(),
    '林美妆',
    'youtube',
    'https://youtube.com/linbeauty',
    'yt_linbeauty_' || floor(random() * 1000) :: text,
    850000,
    320,
    2,
    CURRENT_TIMESTAMP - interval '18 months',
    CURRENT_TIMESTAMP
  ),
  -- 小众但精准的垂直领域KOL
  (
    gen_random_uuid(),
    '孙专家',
    'tiktok',
    'https://tiktok.com/sunexpert',
    'tt_sunexpert_' || floor(random() * 1000) :: text,
    120000,
    450,
    1,
    CURRENT_TIMESTAMP - interval '1 year',
    CURRENT_TIMESTAMP
  ),
  -- 新兴快速成长的KOL
  (
    gen_random_uuid(),
    '吴新人',
    'twitter',
    'https://twitter.com/wunewbie',
    'tw_wunewbie_' || floor(random() * 1000) :: text,
    50000,
    180,
    2,
    CURRENT_TIMESTAMP - interval '6 months',
    CURRENT_TIMESTAMP
  ),
  -- 超小众但高互动的KOL
  (
    gen_random_uuid(),
    '周小众',
    'facebook',
    'https://facebook.com/zhousmall',
    'fb_zhousmall_' || floor(random() * 1000) :: text,
    15000,
    95,
    1,
    CURRENT_TIMESTAMP - interval '3 months',
    CURRENT_TIMESTAMP
  );

-- 将新增网红与项目关联
INSERT INTO
  public .project_influencers (project_id, influencer_id)
SELECT
  '37954d21-57b3-4e25-a614-001eaa9033b8',
  influencer_id
FROM
  public .influencers
WHERE
  name IN ('陈明星', '林美妆', '孙专家', '吴新人', '周小众')
  AND NOT EXISTS (
    SELECT
      1
    FROM
      public .project_influencers
    WHERE
      project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
      AND influencer_id = influencers.influencer_id
  );

-- 增加具有较大时间跨度的帖子数据（从2年前到未来）
-- 过去2年的高热度内容
INSERT INTO
  public .posts (
    post_id,
    influencer_id,
    platform,
    post_url,
    title,
    description,
    published_at,
    created_at,
    updated_at,
    project_id
  )
SELECT
  gen_random_uuid(),
  i.influencer_id,
  i.platform,
  'https://' || i.platform || '.com/post/' || replace(md5(random() :: text), '-', ''),
  '2022年度爆款产品全盘点',
  '2022年马上就要结束了，这一年中爆火的产品实在太多，今天来给大家做个年度总结！#年度盘点 #爆款产品',
  CURRENT_TIMESTAMP - interval '2 years' + (random() * 60 || ' days') :: interval,
  CURRENT_TIMESTAMP - interval '2 years',
  CURRENT_TIMESTAMP - interval '2 years',
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
WHERE
  i.name IN ('陈明星', '李小美')
  AND i.followers_count > 200000;

-- 18个月前的季节性内容
INSERT INTO
  public .posts (
    post_id,
    influencer_id,
    platform,
    post_url,
    title,
    description,
    published_at,
    created_at,
    updated_at,
    project_id
  )
SELECT
  gen_random_uuid(),
  i.influencer_id,
  i.platform,
  'https://' || i.platform || '.com/post/' || replace(md5(random() :: text), '-', ''),
  '冬季保暖又时尚的穿搭指南',
  '寒冷的冬天来了，如何既保暖又不失时尚感？这些单品让你温暖整个冬天！#冬季穿搭 #保暖时尚',
  CURRENT_TIMESTAMP - interval '18 months' + (random() * 30 || ' days') :: interval,
  CURRENT_TIMESTAMP - interval '18 months',
  CURRENT_TIMESTAMP - interval '18 months',
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
WHERE
  i.name IN ('林美妆', '张时尚', '王潮流')
LIMIT
  3;

-- 1年前的活动合作内容
INSERT INTO
  public .posts (
    post_id,
    influencer_id,
    platform,
    post_url,
    title,
    description,
    published_at,
    created_at,
    updated_at,
    project_id
  )
SELECT
  gen_random_uuid(),
  i.influencer_id,
  i.platform,
  'https://' || i.platform || '.com/post/' || replace(md5(random() :: text), '-', ''),
  '618电商节爆款推荐',
  '一年一度的618购物节即将来临，这些超值好物已经被我加入购物车了！#618购物节 #爆款推荐',
  CURRENT_TIMESTAMP - interval '1 year' + (random() * 30 || ' days') :: interval,
  CURRENT_TIMESTAMP - interval '1 year',
  CURRENT_TIMESTAMP - interval '1 year',
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
WHERE
  i.platform IN ('tiktok', 'instagram', 'youtube')
LIMIT
  4;

-- 6个月前的新品发布内容
INSERT INTO
  public .posts (
    post_id,
    influencer_id,
    platform,
    post_url,
    title,
    description,
    published_at,
    created_at,
    updated_at,
    project_id
  )
SELECT
  gen_random_uuid(),
  i.influencer_id,
  i.platform,
  'https://' || i.platform || '.com/post/' || replace(md5(random() :: text), '-', ''),
  '重磅新品抢先体验',
  '我竟然提前拿到了这款还未上市的重磅新品！赶紧来看看它的真实表现如何！#新品抢鲜 #独家测评',
  CURRENT_TIMESTAMP - interval '6 months' + (random() * 45 || ' days') :: interval,
  CURRENT_TIMESTAMP - interval '6 months',
  CURRENT_TIMESTAMP - interval '6 months',
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
ORDER BY
  random()
LIMIT
  5;

-- 3个月前的趋势内容
INSERT INTO
  public .posts (
    post_id,
    influencer_id,
    platform,
    post_url,
    title,
    description,
    published_at,
    created_at,
    updated_at,
    project_id
  )
SELECT
  gen_random_uuid(),
  i.influencer_id,
  i.platform,
  'https://' || i.platform || '.com/post/' || replace(md5(random() :: text), '-', ''),
  '这个超火的国外趋势终于传到国内了',
  '这个趋势在欧美已经火了半年，现在终于传到国内了！一起来看看这个风靡全球的潮流！#全球趋势 #潮流前沿',
  CURRENT_TIMESTAMP - interval '3 months' + (random() * 30 || ' days') :: interval,
  CURRENT_TIMESTAMP - interval '3 months',
  CURRENT_TIMESTAMP - interval '3 months',
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
ORDER BY
  random()
LIMIT
  5;

-- 当前正在进行的活动内容
INSERT INTO
  public .posts (
    post_id,
    influencer_id,
    platform,
    post_url,
    title,
    description,
    published_at,
    created_at,
    updated_at,
    project_id
  )
SELECT
  gen_random_uuid(),
  i.influencer_id,
  i.platform,
  'https://' || i.platform || '.com/post/' || replace(md5(random() :: text), '-', ''),
  '正在直播：限时新品首发',
  '大家久等了！我们终于可以揭晓这个神秘新品的真面目，现在正在直播间等你！#限时首发 #直播带货',
  CURRENT_TIMESTAMP - interval '2 days' + (random() * 4 || ' days') :: interval,
  CURRENT_TIMESTAMP - interval '2 days',
  CURRENT_TIMESTAMP - interval '2 days',
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
WHERE
  i.followers_count > 100000
ORDER BY
  random()
LIMIT
  3;

-- 未来计划发布的内容（预排）
INSERT INTO
  public .posts (
    post_id,
    influencer_id,
    platform,
    post_url,
    title,
    description,
    published_at,
    created_at,
    updated_at,
    project_id
  )
SELECT
  gen_random_uuid(),
  i.influencer_id,
  i.platform,
  'https://' || i.platform || '.com/post/' || replace(md5(random() :: text), '-', ''),
  '即将上市：2024下半年必入新品预告',
  '提前为大家带来2024下半年即将上市的重磅新品预告，这些产品一定会成为下半年的爆款！#新品预告 #爆款预测',
  CURRENT_TIMESTAMP + interval '1 month' + (random() * 60 || ' days') :: interval,
  CURRENT_TIMESTAMP,
  CURRENT_TIMESTAMP,
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
WHERE
  i.name IN ('陈明星', '林美妆', '李小美', '张时尚')
LIMIT
  4;

-- 添加互动数据差异大的评论
-- 为2年前的内容添加少量评论（老内容）
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  '当时买了推荐的第三个，用到现在还不错',
  0.7,
  p.published_at + interval '5 days' + (random() * 30 || ' days') :: interval,
  p.published_at + interval '5 days' + (random() * 30 || ' days') :: interval
FROM
  public .posts p
WHERE
  p.title = '2022年度爆款产品全盘点'
  AND p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8';

-- 为18个月前的内容添加一些评论，有正面也有负面的
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN random() > 0.7 THEN '这些单品在南方可能不太适用，还是太薄了'
    WHEN random() > 0.4 THEN '第二款外套买了，确实很保暖又时尚！'
    ELSE '价格有点贵啊，有没有平价替代？'
  END,
  CASE
    WHEN random() > 0.7 THEN 0.3
    WHEN random() > 0.4 THEN 0.9
    ELSE 0.5
  END,
  p.published_at + interval '1 day' + (random() * 15 || ' days') :: interval,
  p.published_at + interval '1 day' + (random() * 15 || ' days') :: interval
FROM
  public .posts p,
  generate_series(1, 5) AS s
WHERE
  p.title = '冬季保暖又时尚的穿搭指南'
  AND p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8';

-- 为1年前的电商活动帖子添加大量正面评论
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN random() > 0.8 THEN '这个推荐太及时了，刚好想买这个'
    WHEN random() > 0.6 THEN '已经下单了，期待收货！'
    WHEN random() > 0.4 THEN '之前一直在犹豫，看了你的推荐终于决定入手了'
    WHEN random() > 0.2 THEN '这款性价比也太高了吧！'
    ELSE '谢谢推荐，这个活动优惠力度确实很大'
  END,
  0.8 + random() * 0.2,
  p.published_at + (random() * 5 || ' days') :: interval,
  p.published_at + (random() * 5 || ' days') :: interval
FROM
  public .posts p,
  generate_series(1, 15) AS s
WHERE
  p.title = '618电商节爆款推荐'
  AND p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8';

-- 为6个月前的新品添加争议性评论（有褒有贬）
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN n % 3 = 0 THEN '这个新品感觉有点虚高啊，功能并没有宣传的那么神奇'
    WHEN n % 3 = 1 THEN '我已经用了一周了，确实比旧款提升不少'
    ELSE '颜值确实高，但实用性存疑，还是等更多人反馈吧'
  END,
  CASE
    WHEN n % 3 = 0 THEN 0.2
    WHEN n % 3 = 1 THEN 0.8
    ELSE 0.5
  END,
  p.published_at + interval '1 day' + (random() * 10 || ' days') :: interval,
  p.published_at + interval '1 day' + (random() * 10 || ' days') :: interval
FROM
  public .posts p,
  generate_series(1, 10) AS n
WHERE
  p.title = '重磅新品抢先体验'
  AND p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
LIMIT
  20;

-- 为3个月前的趋势内容添加大量评论和讨论
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN n % 5 = 0 THEN '这个趋势在国外都过时了，我们才刚开始流行'
    WHEN n % 5 = 1 THEN '真的很适合亚洲人，难怪会火起来'
    WHEN n % 5 = 2 THEN '已经在尝试了，确实很好上手！'
    WHEN n % 5 = 3 THEN '感觉还是更适合年轻人，我驾驭不了'
    ELSE '这个趋势确实很新颖，期待更多相关内容'
  END,
  CASE
    WHEN n % 5 = 0 THEN 0.3
    WHEN n % 5 = 1 THEN 0.9
    WHEN n % 5 = 2 THEN 0.8
    WHEN n % 5 = 3 THEN 0.4
    ELSE 0.7
  END,
  p.published_at + (random() * 7 || ' days') :: interval,
  p.published_at + (random() * 7 || ' days') :: interval
FROM
  public .posts p,
  generate_series(1, 8) AS n
WHERE
  p.title LIKE '%国外趋势%'
  AND p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8';

-- 为当前正在进行的直播内容添加实时评论，大部分是提问
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN n % 6 = 0 THEN '这个产品什么时候正式发售？'
    WHEN n % 6 = 1 THEN '有什么颜色可选吗？'
    WHEN n % 6 = 2 THEN '价格区间大概是多少？'
    WHEN n % 6 = 3 THEN '适合什么肤质/年龄段的人使用？'
    WHEN n % 6 = 4 THEN '直播间有优惠码吗？'
    ELSE '可以详细介绍一下使用效果吗？'
  END,
  0.6,
  p.published_at + interval '1 hour' + (random() * 3 || ' hours') :: interval,
  p.published_at + interval '1 hour' + (random() * 3 || ' hours') :: interval
FROM
  public .posts p,
  generate_series(1, 12) AS n
WHERE
  p.title LIKE '%直播%'
  AND p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8';

-- 为未来计划发布的内容预先添加一些内部评论（测试用）
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN random() > 0.7 THEN '[内部评论] 需要调整发布时间，避开竞品活动'
    WHEN random() > 0.4 THEN '[内部评论] 文案需要再突出产品核心卖点'
    ELSE '[内部评论] 图片质量不够高，建议重新拍摄'
  END,
  0.5,
  CURRENT_TIMESTAMP - interval '3 days' + (random() * 2 || ' days') :: interval,
  CURRENT_TIMESTAMP - interval '3 days' + (random() * 2 || ' days') :: interval
FROM
  public .posts p
WHERE
  p.title LIKE '%2024下半年%'
  AND p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
LIMIT
  6;

-- 添加一些超长的详细评论
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
VALUES
  (
    gen_random_uuid(),
    (
      SELECT
        post_id
      FROM
        public .posts
      WHERE
        title = '重磅新品抢先体验'
        AND project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
      LIMIT
        1
    ), '作为一个已经使用类似产品超过3年的老用户，我来分享一下我的详细体验：这款新品确实在材质和工艺上有明显提升，尤其是在A部分的改进很贴心，解决了之前版本的主要痛点。不过B功能感觉不如宣传的那么神奇，实际使用中能感觉到提升但没有质的飞跃。价格方面比上一代贵了约20%，个人觉得溢价合理但不算特别值得。如果你是新用户，直接入手新款绝对不亏；如果已经有旧款在用，建议等降价再考虑升级。另外，官方宣传中没有提到的一点是，这款新品在极端环境下的表现出乎意料的好，我在最近的户外活动中亲测，即使在-10℃的环境下依然表现稳定，这点真的很加分！', 0.75, CURRENT_TIMESTAMP - interval '3 months' + interval '5 days',
    CURRENT_TIMESTAMP - interval '3 months' + interval '5 days'
  ),
  (
    gen_random_uuid(),
    (
      SELECT
        post_id
      FROM
        public .posts
      WHERE
        title LIKE '%国外趋势%'
        AND project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
      LIMIT
        1
    ), '我在国外生活了5年，这个趋势在当地已经持续了将近一年半的时间。有趣的是，它在国外经历了几次演变：最初是由小众设计师发起的实验性尝试，后来被几位知名艺人带火，然后迅速普及到大众市场。但到了去年年底，这个趋势在欧美已经开始降温，更多人开始转向另一种风格。不过我认为这个趋势在国内可能会有不同的发展轨迹，因为东西方审美差异和文化背景不同，很可能会在本土化过程中产生全新的变种，反而更有生命力。另外值得一提的是，这个趋势在国外主要流行于25-35岁的年龄段，而在国内似乎更受年轻群体欢迎。看到博主分享的这些内容，能感觉到已经融入了一些本土元素，这种创新性改良很可能让这个趋势在国内拥有更长的生命周期！', 0.85, CURRENT_TIMESTAMP - interval '2 months' + interval '3 days',
    CURRENT_TIMESTAMP - interval '2 months' + interval '3 days'
  );

-- 添加一些具有强烈情感倾向的评论
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
VALUES
  -- 非常正面的评论
  (
    gen_random_uuid(),
    (
      SELECT
        post_id
      FROM
        public .posts
      WHERE
        title = '618电商节爆款推荐'
        AND project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
      LIMIT
        1
    ), '我简直不敢相信这个推荐有多准！去年按照你的清单买了三款产品，每一个都成了我的年度最爱！你的专业眼光真的无可挑剔，今年我打算把你推荐的所有东西都买下来，因为知道绝对不会踩雷。你是我关注的所有博主里面眼光最准的一个，每次买你推荐的东西都超值！', 0.98, CURRENT_TIMESTAMP - interval '1 year' + interval '3 days',
    CURRENT_TIMESTAMP - interval '1 year' + interval '3 days'
  ),
  -- 非常负面的评论
  (
    gen_random_uuid(),
    (
      SELECT
        post_id
      FROM
        public .posts
      WHERE
        title = '重磅新品抢先体验'
        AND project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
      LIMIT
        1
    ), '说实话这是我见过的最失望的开箱测评，产品明显有问题却还在强行吹，是收了多少广告费？我朋友已经提前买了这个产品，根本不像视频里说的那么好用，各种bug不说，质量也远低于预期，真的对这个测评感到失望透顶。希望博主能够真实客观一点，而不是只顾着收钱。', 0.05, CURRENT_TIMESTAMP - interval '5 months' + interval '2 days',
    CURRENT_TIMESTAMP - interval '5 months' + interval '2 days'
  );