109 lines
5.0 KiB
JavaScript
109 lines
5.0 KiB
JavaScript
// 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();
|
||
|
|
});
|