69 lines
3.1 KiB
TypeScript
69 lines
3.1 KiB
TypeScript
import { prisma } from "@stamp/shared";
|
|
|
|
async function seed() {
|
|
console.log("Seeding database...");
|
|
|
|
// Create sample stamps
|
|
const stamps = await Promise.all([
|
|
prisma.stamp.create({
|
|
data: { name: "古桥印记", note: "始建于明代的石拱桥", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 1 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "老街风韵", note: "百年历史的商业老街", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 2 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "园林雅趣", note: "江南古典园林", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 3 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "茶馆时光", note: "百年老茶馆", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 4 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "水乡晨曲", note: "清晨的水乡渔市", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 5 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "戏台余韵", note: "古戏台与昆曲", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 6 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "巷弄深处", note: "青石板铺就的幽深小巷", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 7 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "月下拱桥", note: "夜晚灯火映照的拱桥", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 8 },
|
|
}),
|
|
prisma.stamp.create({
|
|
data: { name: "匠心工坊", note: "传统手工艺作坊", imageColor: "/uploads/placeholder-color.svg", imageGrey: "/uploads/placeholder-grey.svg", sortOrder: 9 },
|
|
}),
|
|
]);
|
|
|
|
console.log(`Created ${stamps.length} stamps`);
|
|
|
|
// Create redemption rules
|
|
const rules = await Promise.all([
|
|
prisma.redemptionRule.create({
|
|
data: { name: "纪念书签", description: "精美城市纪念书签一枚", threshold: 3, sortOrder: 1 },
|
|
}),
|
|
prisma.redemptionRule.create({
|
|
data: { name: "手绘明信片套装", description: "一套 5 张手绘城市明信片", threshold: 5, sortOrder: 2 },
|
|
}),
|
|
prisma.redemptionRule.create({
|
|
data: { name: "限定徽章礼盒", description: "城市限定版金属徽章礼盒", threshold: 7, sortOrder: 3 },
|
|
}),
|
|
prisma.redemptionRule.create({
|
|
data: { name: "城市记忆礼包", description: "包含纪念 T 恤、帆布袋和城市画册", threshold: 9, sortOrder: 4 },
|
|
}),
|
|
]);
|
|
|
|
console.log(`Created ${rules.length} redemption rules`);
|
|
|
|
// Print stamp IDs for QR code testing
|
|
console.log("\nStamp IDs for testing:");
|
|
stamps.forEach((s) => {
|
|
console.log(` ${s.name}: /collect/${s.id}`);
|
|
});
|
|
|
|
console.log("\nSeed complete!");
|
|
}
|
|
|
|
seed()
|
|
.catch(console.error)
|
|
.finally(() => prisma.$disconnect());
|