SportBuddy/apps/backend/prisma/seed.ts
2025-11-04 17:33:11 +01:00

98 lines
2.6 KiB
TypeScript

import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
async function main() {
console.log("🌱 Seeding database...");
// Create test venues
const venues = [
{
name: "Štadión Lokomotíva",
description: "Moderný futbalový štadión s umelým povrchom",
address: "Rastislavova 23",
city: "Košice",
latitude: 48.7164,
longitude: 21.2611,
sportTypes: ["FOOTBALL", "RUNNING"],
amenities: ["parking", "showers", "lockers"],
priceRange: "10-15€/hod",
phone: "+421 55 123 4567",
},
{
name: "Steel Aréna",
description: "Multifunkčná športová hala",
address: "Moldavská cesta 10",
city: "Košice",
latitude: 48.6975,
longitude: 21.2422,
sportTypes: ["BASKETBALL", "VOLLEYBALL", "BADMINTON"],
amenities: ["parking", "showers", "lockers", "cafe"],
priceRange: "15-20€/hod",
phone: "+421 55 234 5678",
},
{
name: "Tenisové kurty Anička",
description: "Vonkajšie a kryte tenisové kurty",
address: "Anička 12",
city: "Košice",
latitude: 48.7372,
longitude: 21.2599,
sportTypes: ["TENNIS"],
amenities: ["parking", "showers"],
priceRange: "12-18€/hod",
phone: "+421 55 345 6789",
},
{
name: "FitClub Gym",
description: "Moderná posilňovňa s najnovším vybavením",
address: "Hlavná 45",
city: "Košice",
latitude: 48.7214,
longitude: 21.2581,
sportTypes: ["GYM"],
amenities: ["showers", "lockers", "sauna"],
priceRange: "5-10€/vstup",
phone: "+421 55 456 7890",
},
{
name: "Plavecká hala Košice",
description: "50m bazén s tribunou",
address: "Trieda SNP 30",
city: "Košice",
latitude: 48.7098,
longitude: 21.2451,
sportTypes: ["SWIMMING"],
amenities: ["parking", "showers", "lockers", "cafe"],
priceRange: "3-5€/vstup",
phone: "+421 55 567 8901",
},
];
for (const venue of venues) {
const existing = await prisma.venue.findFirst({
where: { name: venue.name },
});
if (!existing) {
const created = await prisma.venue.create({
data: venue as any,
});
console.log(`✓ Created venue: ${created.name}`);
} else {
console.log(`⊘ Skipped existing venue: ${venue.name}`);
}
}
console.log("✅ Seeding completed!");
}
main()
.catch((e) => {
console.error("❌ Seeding failed:", e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});