Files
pk-lab-server/src/pk_lab_server/seeds.py
T
codex-bot 4d79c82695
Verify and deploy API / verify-deploy (push) Failing after 1m3s
feat: launch PK testing application
2026-09-18 21:50:25 +08:00

127 lines
6.7 KiB
Python

SEED_TESTS = [
{
"slug": "rice",
"title": "本命饭 PK",
"subtitle": "48 种饭一路二选一,选出今天最想吃的那碗",
"emoji": "🍚",
"accent": "#ff6b35",
"items": [
"蛋炒饭", "卤肉饭", "煲仔饭", "叉烧饭", "打抛饭", "竹筒饭", "猪脚饭", "海南鸡饭",
"石锅拌饭", "蛋包饭", "扬州炒饭", "酱油炒饭", "牛肉丼", "鳗鱼丼", "三文鱼丼", "天妇罗丼",
"咖喱猪排饭", "照烧鸡腿饭", "脆皮鸡米饭", "黄焖鸡米饭", "沙县大排饭", "沙县鸭腿饭", "沙县鸡腿饭", "梅菜扣肉饭",
"菠萝炒饭", "芒果糯米饭", "羊肉手抓饭", "土豆牛腩饭", "福清菜干饭", "上海菜饭", "番茄炒蛋盖饭", "麻婆豆腐饭",
"椰浆饭", "西班牙海鲜饭", "鲍汁捞饭", "蟹黄拌饭", "香菇滑鸡饭", "三杯鸡饭", "波奇饭", "滑蛋虾仁饭",
"泡菜炒饭", "印度香饭", "宫保鸡丁饭", "鱼香肉丝饭", "猪油捞饭", "荷叶饭", "芝士焗饭", "意式烩饭",
],
},
{
"slug": "drink",
"title": "下馆子配什么喝",
"subtitle": "从快乐水到奶茶,选出你的万能搭餐饮料",
"emoji": "🥤",
"accent": "#4c7cff",
"items": [
"可口可乐", "百事可乐", "雪碧", "芬达", "七喜", "椰汁", "王老吉", "红牛",
"尖叫", "苹果醋", "橙汁", "酸梅汤", "西瓜汁", "柠檬水", "气泡水", "苏打水",
"酸奶", "纯牛奶", "啤酒", "白酒", "矿泉水", "豆奶", "红茶", "绿茶",
"大麦茶", "乌龙茶", "北冰洋", "大窑", "旺仔牛奶", "AD钙奶", "咖啡", "奶茶",
],
},
{
"slug": "noodle",
"title": "本命面 PK",
"subtitle": "南北中外 48 碗面,哪一碗能走到最后",
"emoji": "🍜",
"accent": "#e59a28",
"items": [
"北京炸酱面", "刀削面", "热干面", "臊子面", "担担面", "重庆小面", "biangbiang面", "河南烩面",
"兰州牛肉面", "阳春面", "油泼面", "打卤面", "锅盖面", "苏氏面", "片儿川", "葱油拌面",
"小刀面", "延吉冷面", "鸡丝凉面", "烤冷面", "广式云吞面", "虾籽捞面", "豆角焖面", "河南蒸面",
"牛肉板面", "拉条子", "甜水面", "沙茶面", "竹升面", "福州线面", "天津捞面", "蟹黄拌面",
"南宁老友面", "担仔面", "宜宾燃面", "贵阳肠旺面", "南京皮肚面", "遵义豆花面", "韩式炸酱面", "火鸡面",
"乌冬面", "日式拉面", "意大利面", "千层面", "通心粉", "叻沙面", "炒方便面", "泡面",
],
},
{
"slug": "bbq",
"title": "烧烤菜品 PK",
"subtitle": "荤素主食饮料同台,决定你的烧烤局 MVP",
"emoji": "🍢",
"accent": "#f24f4f",
"items": [
"羊肉串", "五花肉", "里脊肉", "骨肉相连", "掌中宝", "猪脆骨", "大油边", "鱿鱼须",
"鸡中翅", "鸡爪", "火腿肠", "牛油", "牛肉串", "烤猪蹄", "牛舌", "羊腰子",
"大虾", "烤鱼", "蒜蓉生蚝", "粉丝扇贝", "猪肉串", "牛板筋", "鸡腿", "鸡胗",
"金针菇", "香菇", "素鸡", "土豆片", "面筋", "臭豆腐", "花菜", "韭菜",
"蒜头", "玉米", "茄子", "青椒", "面包片", "年糕", "豆皮", "鱼豆腐",
"小龙虾", "烤羊排", "炒饭", "炒面", "啤酒", "椰汁", "汽水", "凉茶",
],
},
{
"slug": "dumpling",
"title": "决战饺子之巅",
"subtitle": "家常与脑洞馅料混战,选出你的饺子冠军",
"emoji": "🥟",
"accent": "#7f6ad8",
"items": [
"胡萝卜猪肉", "玉米猪肉", "白菜猪肉", "猪肉大葱", "虾饺", "马蹄猪肉", "韭菜鸡蛋", "玉米虾仁",
"猪肉豆腐", "韭菜猪肉", "芹菜猪肉", "素三鲜", "莲藕猪肉", "羊肉大葱", "香菜牛肉", "黄瓜鸡蛋",
"酸菜猪肉", "茴香鸡蛋", "豆角猪肉", "西葫芦鸡蛋", "紫菜猪肉", "芥菜猪肉", "鲅鱼水饺", "香菇猪肉",
"香菇木耳", "紫菜猪肉", "番茄鸡蛋", "南瓜猪肉", "紫菜虾仁", "冬瓜羊肉", "白菜豆腐", "黄瓜虾仁",
],
},
{
"slug": "hotpot",
"title": "火锅菜品 PK",
"subtitle": "锅底、荤菜、素菜和主食,谁是下锅第一名",
"emoji": "🍲",
"accent": "#d9393e",
"items": [
"番茄锅", "牛油锅", "酸汤锅", "猪肚鸡", "菌汤锅", "骨汤锅", "肥牛卷", "牛上脑",
"羊肉卷", "羊上脑", "牛板腱", "吊龙", "猪脑花", "鸭掌", "黄喉", "郡肝",
"毛肚", "千层肚", "鹅肠", "鸭血", "午餐肉", "火腿肠", "牛蛙", "鱿鱼须",
"虾滑", "鱼籽福袋", "贡丸", "牛肉丸", "娃娃菜", "生菜", "藕片", "竹笋",
"土豆片", "山药", "金针菇", "香菇", "响铃卷", "豆腐", "豆皮", "腐竹",
"玉米", "海带", "面条", "粉丝", "炒饭", "小馒头", "小酥肉", "油条",
],
},
{
"slug": "milk-tea",
"title": "决战奶茶之巅",
"subtitle": "果茶、奶绿和经典奶茶,一杯一杯选到本命",
"emoji": "🧋",
"accent": "#aa6f4c",
"items": [
"黑糖珍珠牛乳", "烧仙草", "杨枝甘露", "牛油果甘露", "薄荷奶绿", "茉莉奶绿", "四季春茶", "棒打鲜橙",
"百香果汁", "蜜桃乌龙", "西瓜椰椰", "芋泥啵啵", "草莓奶冻", "莓莓麻薯", "多肉葡萄", "芝士葡萄",
"生椰抹茶", "生椰拿铁", "柠檬红茶", "锡兰红茶", "海盐冰奶", "芭乐冰奶", "桃胶木薯炖奶", "绿豆牛乳",
"港奶", "泰奶", "黑巧拿铁", "布蕾蛋糕", "咸法酪", "奶麻薯", "椰果", "脆啵啵",
],
},
]
def seed_database(session) -> None:
from sqlalchemy import select
from .models import Candidate, TestDefinition
existing = set(session.scalars(select(TestDefinition.slug)).all())
for order, seed in enumerate(SEED_TESTS):
if seed["slug"] in existing:
continue
test = TestDefinition(
slug=seed["slug"],
title=seed["title"],
subtitle=seed["subtitle"],
emoji=seed["emoji"],
accent=seed["accent"],
sort_order=order,
)
session.add(test)
session.flush()
for index, name in enumerate(seed["items"]):
session.add(Candidate(test_id=test.id, name=name, seed_order=index))
session.commit()