-- 创建测试项目数据
INSERT INTO
  public .projects (
    id,
    name,
    description,
    created_by,
    created_at,
    updated_at
  )
VALUES
  (
    '37954d21-57b3-4e25-a614-001eaa9033b8',
    -- 固定UUID，便于引用
    '默认测试项目',
    '这是一个用于测试的默认项目',
    (
      SELECT
        id
      FROM
        auth.users
      LIMIT
        1
    ), -- 获取第一个用户作为创建者
    CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
  ) ON CONFLICT (id) DO NOTHING;

-- 如果已存在则不操作
-- 创建测试网红数据，使用允许的platform值
INSERT INTO
  public .influencers (
    influencer_id,
    name,
    platform,
    -- 必须是: 'youtube', 'instagram', 'tiktok', 'twitter', 'facebook'
    profile_url,
    external_id,
    followers_count,
    video_count,
    platform_count,
    created_at,
    updated_at
  )
VALUES
  (
    gen_random_uuid(),
    '李小美',
    'instagram',
    'https://instagram.com/lixiaomei',
    'insta_lixiaomei_' || floor(random() * 1000) :: text,
    250000,
    87,
    1,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
  ),
  (
    gen_random_uuid(),
    '张时尚',
    'tiktok',
    'https://tiktok.com/zhangss',
    'tt_zhangss_' || floor(random() * 1000) :: text,
    180000,
    65,
    2,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
  ),
  (
    gen_random_uuid(),
    '王潮流',
    'youtube',
    'https://youtube.com/wangcl',
    'yt_wangcl_' || floor(random() * 1000) :: text,
    320000,
    112,
    1,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
  ),
  (
    gen_random_uuid(),
    '赵科技',
    'facebook',
    'https://facebook.com/zhaokj',
    'fb_zhaokj_' || floor(random() * 1000) :: text,
    150000,
    45,
    1,
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
  ),
  (
    gen_random_uuid(),
    '钱生活',
    'twitter',
    'https://twitter.com/qiansh',
    'tw_qiansh_' || floor(random() * 1000) :: text,
    200000,
    78,
    1,
    CURRENT_TIMESTAMP,
    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
  );

-- 为每个网红创建帖子
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), '-', ''),
  CASE
    WHEN i.name = '李小美' THEN '2024春季必买单品推荐'
    WHEN i.name = '张时尚' THEN '我的日常护肤分享'
    WHEN i.name = '王潮流' THEN '三分钟学会这个流行妆容'
    WHEN i.name = '赵科技' THEN '最新科技产品评测'
    ELSE '生活方式指南'
  END,
  CASE
    WHEN i.name = '李小美' THEN '春季来了，分享我的必买清单，这些单品绝对让你眼前一亮！#春季购物 #时尚单品'
    WHEN i.name = '张时尚' THEN '很多人问我怎么保养皮肤，今天我终于来分享我的护肤秘籍啦！#护肤 #美妆'
    WHEN i.name = '王潮流' THEN '手残党也能学会的简单妆容，跟着我一起来化个春季流行妆吧！#化妆教程 #美妆博主'
    WHEN i.name = '赵科技' THEN '最新旗舰手机深度评测，看完再决定是否入手！#科技测评 #数码'
    ELSE '如何让你的生活更有品质，这些小技巧不容错过！#生活方式 #品质生活'
  END,
  CURRENT_TIMESTAMP - (floor(random() * 30) || ' days') :: interval,
  CURRENT_TIMESTAMP,
  CURRENT_TIMESTAMP,
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
WHERE
  i.name IN ('李小美', '张时尚', '王潮流', '赵科技', '钱生活');

-- 额外再创建一些帖子
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), '-', ''),
  CASE
    WHEN i.name = '李小美' THEN '新品开箱：限定联名系列'
    WHEN i.name = '张时尚' THEN '如何打造高级感穿搭'
    WHEN i.name = '王潮流' THEN '测评：这款产品值不值得买？'
    ELSE '社交媒体拍照技巧大揭秘'
  END,
  CASE
    WHEN i.name = '李小美' THEN '期待已久的联名系列终于到手了！开箱分享第一时间的感受和细节展示。#开箱 #限定联名'
    WHEN i.name = '张时尚' THEN '不需要花大价钱也能穿出高级感，这些单品搭配技巧请收好！#穿搭技巧 #时尚博主'
    WHEN i.name = '王潮流' THEN '近期超火的这款产品到底值不值得买？我用了两周后来告诉你真实感受。#产品测评 #种草拔草'
    ELSE '原来专业博主都是这样拍照的！学会这些技巧，让你的照片瞬间提升档次！#拍照技巧 #摄影教程'
  END,
  CURRENT_TIMESTAMP - (floor(random() * 15) || ' days') :: interval,
  CURRENT_TIMESTAMP,
  CURRENT_TIMESTAMP,
  '37954d21-57b3-4e25-a614-001eaa9033b8'
FROM
  public .influencers i
WHERE
  i.name IN ('李小美', '张时尚', '王潮流', '赵科技')
LIMIT
  4;

-- 为帖子添加评论
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN p.title LIKE '%春季%' THEN '太喜欢这些推荐了，已经下单第一个了！'
    WHEN p.title LIKE '%护肤%' THEN '你的皮肤真的太好了，请问精华液用的什么牌子？'
    WHEN p.title LIKE '%妆容%' THEN '学会了学会了，没想到这么简单就能化出这么好看的妆！'
    WHEN p.title LIKE '%开箱%' THEN '包装也太精美了吧！羡慕了'
    WHEN p.title LIKE '%穿搭%' THEN '这套搭配真的很适合日常，学到了'
    ELSE '内容很棒，继续加油！'
  END,
  0.8,
  -- 正面情绪评分
  CURRENT_TIMESTAMP - (floor(random() * 10) || ' days') :: interval,
  CURRENT_TIMESTAMP - (floor(random() * 10) || ' days') :: interval
FROM
  public .posts p
WHERE
  p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
ORDER BY
  random()
LIMIT
  10;

-- 再增加一些带有不同情绪的评论
INSERT INTO
  public .comments (
    comment_id,
    post_id,
    content,
    sentiment_score,
    created_at,
    updated_at
  )
SELECT
  gen_random_uuid(),
  p.post_id,
  CASE
    WHEN floor(random() * 3) = 0 THEN '这个内容一般，期待更好的分享'
    WHEN floor(random() * 3) = 1 THEN '不太理解这个内容的目的是什么'
    ELSE '价格有点贵，但看起来质量不错'
  END,
  0.3,
  -- 略微负面情绪评分
  CURRENT_TIMESTAMP - (floor(random() * 5) || ' days') :: interval,
  CURRENT_TIMESTAMP - (floor(random() * 5) || ' days') :: interval
FROM
  public .posts p
WHERE
  p.project_id = '37954d21-57b3-4e25-a614-001eaa9033b8'
ORDER BY
  random()
LIMIT
  5;