Files
promote/backend/db/sql/postgres/create_fake_data.sql
2025-03-12 16:58:53 +08:00

273 lines
7.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 创建测试项目数据
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;