import { PrismaClient } from '@prisma/client'; import fs from 'fs'; import path from 'path'; const prisma = new PrismaClient(); async function insertCities() { try { const statesFolder = path.join(process.cwd(), 'states-cities'); const files = fs.readdirSync(statesFolder); for (const file of files) { if (!file.endsWith('.json')) continue; const stateName = file.replace('.json', ''); const state = await prisma.states.findFirst({ where: { stateName }, }); if (!state) { console.log(`❌ State not found: ${stateName}`); continue; } const filePath = path.join(statesFolder, file); const citiesData = JSON.parse( fs.readFileSync(filePath, 'utf-8') ); await prisma.cities.createMany({ data: citiesData.map((city) => ({ stateXid: state.id, cityName: typeof city === 'string' ? city.trim() : city.cityName.trim(), })), skipDuplicates: true, }); console.log(`✅ ${stateName} cities inserted`); } console.log('🎉 All cities inserted successfully'); } catch (error) { console.error('Error inserting cities:', error); } finally { await prisma.$disconnect(); } } insertCities();