Add user seeding functionality and enhance user profiles: Update prisma.config to include seed script and modify seed.ts to add new users with character classes, avatars, and bios, enriching user profiles and gameplay experience.

This commit is contained in:
Julien Froidefond
2025-12-09 22:15:58 +01:00
parent 0ac6dbd423
commit e6201120b9
2 changed files with 80 additions and 3 deletions

View File

@@ -7,6 +7,7 @@ export default defineConfig({
schema: "prisma/schema.prisma",
migrations: {
path: "prisma/migrations",
seed: "tsx prisma/seed.ts",
},
datasource: {
url: env("DATABASE_URL"),

View File

@@ -2,6 +2,7 @@ import {
PrismaClient,
EventType,
EventStatus,
CharacterClass,
} from "@/prisma/generated/prisma/client";
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
import bcrypt from "bcryptjs";
@@ -32,7 +33,11 @@ async function main() {
const users = await Promise.all([
prisma.user.upsert({
where: { email: "user1@got-mc.com" },
update: {},
update: {
avatar: "/avatar-1.jpg",
bio: "DragonSlayer99 est né dans les flammes d'un volcan en éruption, dernier survivant d'un clan de guerriers légendaires. Formé dès l'enfance aux arts martiaux ancestraux, il a passé sa vie à traquer et terrasser les créatures les plus redoutables du royaume numérique. Sa lame, forgée dans le métal des serveurs en fusion, brille de la lueur des milliers d'âmes qu'il a libérées.\n\nAujourd'hui, DragonSlayer99 est un Guerrier d'élite, un combattant capable de défier les plus puissants adversaires grâce à sa force brute et sa détermination inébranlable.",
characterClass: CharacterClass.WARRIOR,
},
create: {
email: "user1@got-mc.com",
username: "DragonSlayer99",
@@ -43,28 +48,99 @@ async function main() {
maxHp: 1000,
xp: 3250,
maxXp: 5000,
avatar: "/avatar-1.jpg",
bio: "DragonSlayer99 est né dans les flammes d'un volcan en éruption, dernier survivant d'un clan de guerriers légendaires. Formé dès l'enfance aux arts martiaux ancestraux, il a passé sa vie à traquer et terrasser les créatures les plus redoutables du royaume numérique. Sa lame, forgée dans le métal des serveurs en fusion, brille de la lueur des milliers d'âmes qu'il a libérées.\n\nAujourd'hui, DragonSlayer99 est un Guerrier d'élite, un combattant capable de défier les plus puissants adversaires grâce à sa force brute et sa détermination inébranlable.",
characterClass: CharacterClass.WARRIOR,
},
}),
prisma.user.upsert({
where: { email: "user2@got-mc.com" },
update: {},
update: {
avatar: "/avatar-2.jpg",
bio: "MineMaster a découvert sa connexion avec les arcanes à l'âge de sept ans, lorsqu'il a accidentellement transformé son premier ordinateur en cristal magique. Élève prodige de l'Académie des Sciences Occultes, il a maîtrisé les arts de la manipulation élémentaire et de la transmutation numérique. Ses sorts peuvent réduire une montagne en poussière ou créer des réalités parallèles dans l'espace virtuel.\n\nAujourd'hui, MineMaster est un Mage de renommée mondiale, un sorcier capable de canaliser la puissance brute des algorithmes quantiques pour façonner la réalité à sa volonté.",
characterClass: CharacterClass.MAGE,
},
create: {
email: "user2@got-mc.com",
username: "MineMaster",
password: userPassword,
score: 118500,
level: 82,
avatar: "/avatar-2.jpg",
bio: "MineMaster a découvert sa connexion avec les arcanes à l'âge de sept ans, lorsqu'il a accidentellement transformé son premier ordinateur en cristal magique. Élève prodige de l'Académie des Sciences Occultes, il a maîtrisé les arts de la manipulation élémentaire et de la transmutation numérique. Ses sorts peuvent réduire une montagne en poussière ou créer des réalités parallèles dans l'espace virtuel.\n\nAujourd'hui, MineMaster est un Mage de renommée mondiale, un sorcier capable de canaliser la puissance brute des algorithmes quantiques pour façonner la réalité à sa volonté.",
characterClass: CharacterClass.MAGE,
},
}),
prisma.user.upsert({
where: { email: "user3@got-mc.com" },
update: {},
update: {
avatar: "/avatar-3.jpg",
bio: "CraftKing a grandi dans les bas-fonds du réseau, survivant grâce à son agilité et sa ruse exceptionnelles. Recruté par la Guilde des Ombres à l'adolescence, il a perfectionné l'art de l'infiltration et de l'assassinat numérique. Ses dagues virtuelles ont tranché plus de connexions que personne ne peut compter, et son nom inspire la terreur dans les couloirs des corporations.\n\nAujourd'hui, CraftKing est un Voleur légendaire, un maître de la furtivité capable de s'infiltrer dans les systèmes les plus sécurisés sans laisser la moindre trace de son passage.",
characterClass: CharacterClass.ROGUE,
},
create: {
email: "user3@got-mc.com",
username: "CraftKing",
password: userPassword,
score: 112000,
level: 80,
avatar: "/avatar-3.jpg",
bio: "CraftKing a grandi dans les bas-fonds du réseau, survivant grâce à son agilité et sa ruse exceptionnelles. Recruté par la Guilde des Ombres à l'adolescence, il a perfectionné l'art de l'infiltration et de l'assassinat numérique. Ses dagues virtuelles ont tranché plus de connexions que personne ne peut compter, et son nom inspire la terreur dans les couloirs des corporations.\n\nAujourd'hui, CraftKing est un Voleur légendaire, un maître de la furtivité capable de s'infiltrer dans les systèmes les plus sécurisés sans laisser la moindre trace de son passage.",
characterClass: CharacterClass.ROGUE,
},
}),
prisma.user.upsert({
where: { email: "user4@got-mc.com" },
update: {
avatar: "/avatar-4.jpg",
bio: "ForestWalker a passé sa jeunesse à explorer les territoires sauvages du réseau profond, apprenant les secrets de la nature numérique auprès des anciens gardiens des forêts de données. Expert en survie et en pistage, il connaît chaque sentier caché et chaque créature qui habite les zones non cartographiées. Son arc, taillé dans le bois des serveurs ancestraux, ne manque jamais sa cible.\n\nAujourd'hui, ForestWalker est un Rôdeur respecté, un chasseur capable de naviguer dans les environnements les plus hostiles grâce à sa connexion profonde avec les forces naturelles du cyberespace.",
characterClass: CharacterClass.RANGER,
},
create: {
email: "user4@got-mc.com",
username: "ForestWalker",
password: userPassword,
score: 105000,
level: 78,
avatar: "/avatar-4.jpg",
bio: "ForestWalker a passé sa jeunesse à explorer les territoires sauvages du réseau profond, apprenant les secrets de la nature numérique auprès des anciens gardiens des forêts de données. Expert en survie et en pistage, il connaît chaque sentier caché et chaque créature qui habite les zones non cartographiées. Son arc, taillé dans le bois des serveurs ancestraux, ne manque jamais sa cible.\n\nAujourd'hui, ForestWalker est un Rôdeur respecté, un chasseur capable de naviguer dans les environnements les plus hostiles grâce à sa connexion profonde avec les forces naturelles du cyberespace.",
characterClass: CharacterClass.RANGER,
},
}),
prisma.user.upsert({
where: { email: "user5@got-mc.com" },
update: {
avatar: "/avatar-5.jpg",
bio: "HolyGuardian a été choisi par les Gardiens Célestes pour servir de protecteur des innocents dans le monde numérique. Formé dans les temples sacrés de l'Ordre de la Lumière, il a juré de défendre les faibles et de punir les malfaiteurs. Sa foi inébranlable lui confère des pouvoirs de guérison et de protection, tandis que son épée bénie brûle avec la fureur de la justice divine.\n\nAujourd'hui, HolyGuardian est un Paladin vénéré, un champion de la lumière capable de repousser les ténèbres et de protéger ceux qui ne peuvent se défendre seuls.",
characterClass: CharacterClass.PALADIN,
},
create: {
email: "user5@got-mc.com",
username: "HolyGuardian",
password: userPassword,
score: 98000,
level: 75,
avatar: "/avatar-5.jpg",
bio: "HolyGuardian a été choisi par les Gardiens Célestes pour servir de protecteur des innocents dans le monde numérique. Formé dans les temples sacrés de l'Ordre de la Lumière, il a juré de défendre les faibles et de punir les malfaiteurs. Sa foi inébranlable lui confère des pouvoirs de guérison et de protection, tandis que son épée bénie brûle avec la fureur de la justice divine.\n\nAujourd'hui, HolyGuardian est un Paladin vénéré, un champion de la lumière capable de repousser les ténèbres et de protéger ceux qui ne peuvent se défendre seuls.",
characterClass: CharacterClass.PALADIN,
},
}),
prisma.user.upsert({
where: { email: "user6@got-mc.com" },
update: {
avatar: "/avatar-6.jpg",
bio: "TechSmith a commencé sa carrière comme apprenti dans les ateliers secrets des Maîtres Artificiers, où il a appris à fusionner la technologie moderne avec les anciennes traditions magiques. Ses inventions révolutionnaires ont transformé le paysage numérique, créant des artefacts capables de défier les lois de la physique. Chacune de ses créations est une œuvre d'art fonctionnelle, alliant l'élégance de la magie à la précision de l'ingénierie.\n\nAujourd'hui, TechSmith est un Ingénieur de génie, un créateur capable de forger des outils qui transcendent les limites entre le possible et l'impossible.",
characterClass: CharacterClass.ENGINEER,
},
create: {
email: "user6@got-mc.com",
username: "TechSmith",
password: userPassword,
score: 92000,
level: 73,
avatar: "/avatar-6.jpg",
bio: "TechSmith a commencé sa carrière comme apprenti dans les ateliers secrets des Maîtres Artificiers, où il a appris à fusionner la technologie moderne avec les anciennes traditions magiques. Ses inventions révolutionnaires ont transformé le paysage numérique, créant des artefacts capables de défier les lois de la physique. Chacune de ses créations est une œuvre d'art fonctionnelle, alliant l'élégance de la magie à la précision de l'ingénierie.\n\nAujourd'hui, TechSmith est un Ingénieur de génie, un créateur capable de forger des outils qui transcendent les limites entre le possible et l'impossible.",
characterClass: CharacterClass.ENGINEER,
},
}),
]);