85 lines
1.9 KiB
TypeScript
85 lines
1.9 KiB
TypeScript
import { prisma } from '@/app/lib/prisma'
|
|
|
|
async function seedDemoUsers() {
|
|
const teamAId = 'cmab28h050001ph4s8w2a0wsc'
|
|
const teamBId = 'cmab2acln0003ph4stxe3ad38'
|
|
|
|
const usersA = Array.from({ length: 4 }, (_, i) => ({
|
|
steamId: `76561198000000A${i}`,
|
|
name: `DemoA${i}`,
|
|
avatar: '/default-avatar.png',
|
|
location: 'DE',
|
|
team: teamAId,
|
|
}))
|
|
|
|
const usersB = Array.from({ length: 4 }, (_, i) => ({
|
|
steamId: `76561198000000B${i}`,
|
|
name: `DemoB${i}`,
|
|
avatar: '/default-avatar.png',
|
|
location: 'DE',
|
|
team: teamBId,
|
|
}))
|
|
|
|
// Benutzer einfügen oder updaten
|
|
const createdUsers = await Promise.all(
|
|
[...usersA, ...usersB].map((user) =>
|
|
prisma.user.upsert({
|
|
where: { steamId: user.steamId },
|
|
update: {},
|
|
create: user,
|
|
})
|
|
)
|
|
)
|
|
|
|
// Team-Aktive Spieler setzen
|
|
await prisma.team.update({
|
|
where: { id: teamAId },
|
|
data: { activePlayers: usersA.map((u) => u.steamId) },
|
|
})
|
|
|
|
await prisma.team.update({
|
|
where: { id: teamBId },
|
|
data: { activePlayers: usersB.map((u) => u.steamId) },
|
|
})
|
|
|
|
// Zuletzt erstelltes Match mit diesen Teams finden
|
|
const match = await prisma.match.findFirst({
|
|
where: {
|
|
teamAId,
|
|
teamBId,
|
|
},
|
|
orderBy: { createdAt: 'desc' },
|
|
})
|
|
|
|
if (!match) {
|
|
throw new Error('Kein Match zwischen den beiden Teams gefunden.')
|
|
}
|
|
|
|
// Spieler zu MatchPlayer hinzufügen
|
|
await prisma.matchPlayer.createMany({
|
|
data: [
|
|
...usersA.map((u) => ({
|
|
matchId: match.id,
|
|
userId: u.steamId,
|
|
teamId: teamAId,
|
|
})),
|
|
...usersB.map((u) => ({
|
|
matchId: match.id,
|
|
userId: u.steamId,
|
|
teamId: teamBId,
|
|
})),
|
|
],
|
|
skipDuplicates: true,
|
|
})
|
|
|
|
console.log('✅ Demouser erstellt und MatchPlayer zugewiesen.')
|
|
}
|
|
|
|
seedDemoUsers()
|
|
.catch((err) => {
|
|
console.error('❌ Fehler beim Seed:', err)
|
|
})
|
|
.finally(() => {
|
|
prisma.$disconnect()
|
|
})
|