273 lines
7.2 KiB
SQL
273 lines
7.2 KiB
SQL
-- 创建测试项目数据
|
||
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; |