Sfoglia il codice sorgente

feat: add ads module seeding functionality in seed-admin.ts

Dave 1 mese fa
parent
commit
8a9846fff4
1 ha cambiato i file con 92 aggiunte e 1 eliminazioni
  1. 92 1
      prisma/mongo/seed-admin.ts

+ 92 - 1
prisma/mongo/seed-admin.ts

@@ -1,5 +1,5 @@
 // prisma/mongo/seed-admin.ts
-import { PrismaClient, MenuType } from '@prisma/mongo/client';
+import { PrismaClient, MenuType, AdType } from '@prisma/mongo/client';
 import type { Prisma } from '@prisma/mongo/client';
 
 const prisma = new PrismaClient();
@@ -1175,9 +1175,100 @@ async function seedMenus() {
 // =============================================================================
 
 async function main() {
+  const adsModules = [
+    {
+      adType: AdType.STARTUP,
+      adsModule: '启动页',
+      moduleDesc: '启动页(10:21)',
+      seq: 1,
+    },
+    {
+      adType: AdType.CAROUSEL,
+      adsModule: '轮播',
+      moduleDesc: '轮播(2:1)',
+      seq: 2,
+    },
+    {
+      adType: AdType.POPUP_ICON,
+      adsModule: '弹窗-图标',
+      moduleDesc: '弹窗-图标(1:1)',
+      seq: 3,
+    },
+    {
+      adType: AdType.POPUP_IMAGE,
+      adsModule: '弹窗-图片',
+      moduleDesc: '弹窗-图片(2:3)',
+      seq: 4,
+    },
+    {
+      adType: AdType.POPUP_OFFICIAL,
+      adsModule: '弹窗-官方',
+      moduleDesc: '弹窗-官方(2:3)',
+      seq: 5,
+    },
+    {
+      adType: AdType.WATERFALL_ICON,
+      adsModule: '瀑布流-图标',
+      moduleDesc: '瀑布流-图标(1:1)',
+      seq: 6,
+    },
+    {
+      adType: AdType.WATERFALL_TEXT,
+      adsModule: '瀑布流-文字',
+      moduleDesc: '瀑布流-文字',
+      seq: 7,
+    },
+    {
+      adType: AdType.WATERFALL_VIDEO,
+      adsModule: '瀑布流-视频',
+      moduleDesc: '瀑布流-视频(8:5)',
+      seq: 8,
+    },
+    {
+      adType: AdType.FLOATING_BOTTOM,
+      adsModule: '悬浮-底部',
+      moduleDesc: '悬浮-底部(1:1)',
+      seq: 9,
+    },
+    {
+      adType: AdType.FLOATING_EDGE,
+      adsModule: '悬浮-边缘',
+      moduleDesc: '悬浮-边缘(1:1)',
+      seq: 10,
+    },
+    {
+      adType: AdType.BANNER,
+      adsModule: 'banner',
+      moduleDesc: 'banner(4:1)',
+      seq: 11,
+    },
+    {
+      adType: AdType.PREROLL,
+      adsModule: '片头',
+      moduleDesc: '片头(8:5)',
+      seq: 12,
+    },
+    {
+      adType: AdType.PAUSE,
+      adsModule: '暂停',
+      moduleDesc: '暂停(2:1)',
+      seq: 13,
+    },
+  ];
+
   console.log('🌱 Starting database seeding...\n');
 
   try {
+    console.log('cleaning ads modules...');
+    await prisma.adsModule.deleteMany();
+
+    console.log('seeding ads modules...');
+    for (const module of adsModules) {
+      await prisma.adsModule.create({
+        data: module,
+      });
+    }
+
     // Seed in order: users first, then menus
     console.log('seeding users...');
     await seedUsers();