Files
Lucky_Wheel/apps/api/release/seed.js
T

109 lines
5.0 KiB
JavaScript
Raw Normal View History

2026-09-15 17:26:42 +03:30
// prisma/seed.ts
var import_client = require("@prisma/client");
var prisma = new import_client.PrismaClient();
async function main() {
console.log("Seeding default demo campaign and prizes...");
const existingCampaign = await prisma.campaign.findUnique({
where: { slug: "default-campaign" }
});
if (existingCampaign) {
console.log("Default campaign already exists.");
return;
}
const campaign = await prisma.campaign.create({
data: {
title: "\u06AF\u0631\u062F\u0648\u0646\u0647 \u0634\u0627\u0646\u0633 \u062C\u0634\u0646\u0648\u0627\u0631\u0647 \u0628\u0632\u0631\u06AF \u0646\u0648\u0631\u0648\u0632\u06CC",
slug: "default-campaign",
description: "\u0647\u0631 \u0631\u0648\u0632 \u0628\u0627 \u0686\u0631\u062E\u0627\u0646\u062F\u0646 \u06AF\u0631\u062F\u0648\u0646\u0647\u060C \u0634\u0627\u0646\u0633 \u0628\u0631\u0646\u062F\u0647 \u0634\u062F\u0646 \u0622\u06CC\u0641\u0648\u0646\u060C \u0633\u06A9\u0647 \u0637\u0644\u0627\u060C \u0648 \u06A9\u062F\u0647\u0627\u06CC \u062A\u062E\u0641\u06CC\u0641 \u0634\u06AF\u0641\u062A\u200C\u0627\u0646\u06AF\u06CC\u0632 \u0631\u0627 \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u06CC\u062F!",
startAt: new Date(Date.now() - 24 * 3600 * 1e3),
endAt: new Date(Date.now() + 60 * 24 * 3600 * 1e3),
status: "ACTIVE",
defaultChances: 3,
ctaText: "\u0628\u0686\u0631\u062E\u0648\u0646 \u0648 \u0628\u0631\u0646\u062F\u0647 \u0634\u0648!",
wheelDesign: "CLASSIC_CASINO",
rules: "\u06F1. \u0647\u0631 \u06A9\u0627\u0631\u0628\u0631 \u062F\u0631 \u0628\u062F\u0648 \u0648\u0631\u0648\u062F \u06F3 \u0634\u0627\u0646\u0633 \u0686\u0631\u062E\u0627\u0646\u062F\u0646 \u0631\u0627\u06CC\u06AF\u0627\u0646 \u062F\u0631\u06CC\u0627\u0641\u062A \u0645\u06CC\u200C\u06A9\u0646\u062F.\n\u06F2. \u062C\u0648\u0627\u06CC\u0632 \u0641\u06CC\u0632\u06CC\u06A9\u06CC \u067E\u0633 \u0627\u0632 \u0647\u0645\u0627\u0647\u0646\u06AF\u06CC \u062A\u0644\u0641\u0646\u06CC \u062A\u0648\u0633\u0637 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0627\u0631\u0633\u0627\u0644 \u062E\u0648\u0627\u0647\u062F \u0634\u062F.\n\u06F3. \u06A9\u062F\u0647\u0627\u06CC \u062A\u062E\u0641\u06CC\u0641 \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u067E\u06CC\u0627\u0645\u06A9 \u0634\u062F\u0647 \u0648 \u062A\u0627 \u06F7 \u0631\u0648\u0632 \u067E\u0633 \u0627\u0632 \u062F\u0631\u06CC\u0627\u0641\u062A \u0645\u0639\u062A\u0628\u0631 \u0647\u0633\u062A\u0646\u062F.",
prizes: {
create: [
{
title: "\u0622\u06CC\u0641\u0648\u0646 \u06F1\u06F5 \u067E\u0631\u0648",
type: "PHYSICAL",
stockType: "LIMITED",
initialStock: 3,
remainingStock: 3,
weight: 1,
sortOrder: 1,
segmentColor: "#b91c1c"
},
{
title: "\u062A\u062E\u0641\u06CC\u0641 \u06F5\u06F0\u066A \u062F\u06CC\u062C\u06CC\u200C\u06A9\u0627\u0644\u0627",
type: "DISCOUNT_CODE",
stockType: "UNLIMITED",
weight: 25,
sortOrder: 2,
segmentColor: "#1e293b"
},
{
title: "\u06A9\u0627\u0631\u062A \u0647\u062F\u06CC\u0647 \u06F5\u06F0\u06F0 \u062A\u0648\u0645\u0627\u0646\u06CC",
type: "CREDIT",
stockType: "LIMITED",
initialStock: 50,
remainingStock: 50,
weight: 10,
sortOrder: 3,
segmentColor: "#b91c1c"
},
{
title: "\u067E\u0648\u0686 (\u062F\u0641\u0639\u0647 \u0628\u0639\u062F)",
type: "NO_PRIZE",
stockType: "UNLIMITED",
weight: 20,
sortOrder: 4,
segmentColor: "#1e293b"
},
{
title: "\u062A\u062E\u0641\u06CC\u0641 \u06F3\u06F0\u066A \u0627\u0633\u0646\u067E",
type: "DISCOUNT_CODE",
stockType: "UNLIMITED",
weight: 20,
sortOrder: 5,
segmentColor: "#b91c1c"
},
{
title: "\u0633\u0627\u0639\u062A \u0647\u0648\u0634\u0645\u0646\u062F",
type: "PHYSICAL",
stockType: "LIMITED",
initialStock: 10,
remainingStock: 10,
weight: 4,
sortOrder: 6,
segmentColor: "#1e293b"
},
{
title: "\u0634\u0627\u0646\u0633 \u0645\u062C\u062F\u062F",
type: "OTHER",
stockType: "UNLIMITED",
weight: 15,
sortOrder: 7,
segmentColor: "#b91c1c"
},
{
title: "\u067E\u0648\u0686 (\u0628\u062F\u0648\u0646 \u062C\u0627\u06CC\u0632\u0647)",
type: "NO_PRIZE",
stockType: "UNLIMITED",
weight: 5,
sortOrder: 8,
segmentColor: "#1e293b"
}
]
}
}
});
console.log(`Campaign created with ID: ${campaign.id} and 8 prizes.`);
}
main().catch((e) => {
console.error(e);
process.exit(1);
}).finally(async () => {
await prisma.$disconnect();
});