/** * Seed Script — Module 1 : Eco-Moto Business * Inserts a realistic Track + 3 TrackDays for testing. * Run: npx ts-node scripts/seed.ts * Or: add SEED_DATA to whatsapp trigger (handled in whatsapp.ts) */ import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function main() { console.log('🌱 Seeding database...'); // Upsert Track const track = await prisma.track.upsert({ where: { id: 'seed-module-1-ecomoto' }, update: {}, create: { id: 'seed-module-1-ecomoto', title: 'Lancer son Business – Module 1', description: 'Formation de 3 jours pour structurer son idée de business et rédiger son pitch.', duration: 3, language: 'FR', isPremium: false, } }); console.log(`✅ Track: ${track.title}`); const days = [ { dayNumber: 1, title: 'Jour 1 – Ton idée business', lessonText: `Bienvenue dans ta formation ! 🎉 Aujourd'hui, on parle de TON idée. Une bonne idée business répond à un problème réel que les gens autour de toi ont vraiment. 👉 EXEMPLE : La réparation de motos à domicile. Le problème ? Les gens perdent du temps à aller chez le mécanicien. La solution ? Le mécanicien vient à eux. Pour TON business, réponds à ces 3 questions : 1️⃣ Quel problème tu résous ? 2️⃣ Pour qui ? (femmes, jeunes, commerçants...) 3️⃣ Pourquoi toi et pas un autre ?`, exerciseType: 'TEXT' as const, exercisePrompt: '📝 Décris ton idée business en 2-3 phrases. Quel problème tu résous ? Pour qui ?', validationKeyword: null, }, { dayNumber: 2, title: 'Jour 2 – Tes clients cibles', lessonText: `Félicitations pour hier ! 🌟 Aujourd'hui : TES CLIENTS. Beaucoup d'entrepreneurs échouent parce qu'ils veulent vendre à "tout le monde". ❌ La règle d'or : commence par un groupe précis. 👤 EXEMPLE Eco-Moto : • Qui ? Artisans et commerçants de Dakar • Âge ? 25-45 ans • Problème spécifique ? Leur moto tombe en panne et ils perdent des clients Plus tu connais ton client, plus tu peux lui parler directement.`, exerciseType: 'TEXT' as const, exercisePrompt: '📝 Décris ton client cible idéal : Qui est-il ? Quel âge ? Où vit-il ? Quel est son problème principal ?', validationKeyword: null, }, { dayNumber: 3, title: 'Jour 3 – Ton pitch en 1 minute', lessonText: `Tu es presque un entrepreneur ! 🚀 Aujourd'hui : TON PITCH. Un pitch c'est une présentation rapide de ton business. En 60 secondes, tu dois convaincre quelqu'un d'investir ou d'acheter. 📣 STRUCTURE : 1. Le problème (10 sec) 2. Ta solution (10 sec) 3. Tes clients (10 sec) 4. Pourquoi toi (10 sec) 5. Ce que tu demandes (20 sec) EXEMPLE : "En Afrique, 60% des motos tombent en panne sans accès rapide à un mécanicien. Eco-Moto envoie un mécanicien qualifié chez vous en moins de 30 minutes. On cible les artisans et commerçants de Dakar qui dépendent de leur moto. On a déjà 50 clients satisfaits. On cherche 500 000 XOF pour acheter nos premiers équipements."`, exerciseType: 'TEXT' as const, exercisePrompt: '🎤 Écris ton pitch en utilisant la structure ci-dessus. Sois précis et concis !', validationKeyword: null, } ]; for (const day of days) { const existing = await prisma.trackDay.findFirst({ where: { trackId: track.id, dayNumber: day.dayNumber } }); if (existing) { await prisma.trackDay.update({ where: { id: existing.id }, data: day }); console.log(`✅ Updated Day ${day.dayNumber}: ${day.title}`); } else { await prisma.trackDay.create({ data: { ...day, trackId: track.id } }); console.log(`✅ Created Day ${day.dayNumber}: ${day.title}`); } } console.log('\n🎉 Seed complete! Track ID:', track.id); console.log('Send INSCRIPTION + FORMATION on WhatsApp to test.'); } main() .catch(console.error) .finally(() => prisma.$disconnect());