Backend: - Characters-Modul (CRUD, HP-Tracking, Conditions) - Pathbuilder 2e JSON Import Service - Claude API Integration für automatische Übersetzungen - Translations-Modul mit Datenbank-Caching - Prisma Schema erweitert (Character, Abilities, Skills, Feats, Items, Resources) Frontend: - Kampagnen-Detailseite mit Mitglieder- und Charakterverwaltung - Charakter erstellen Modal - Pathbuilder Import Modal (Datei-Upload + JSON-Paste) - Logo-Integration (Dimension 47 + Zeasy) - Cinzel Font für Branding Weitere Änderungen: - Auth 401 Redirect Fix für Login-Seite - PROGRESS.md mit Projektfortschritt Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
29 lines
760 B
TypeScript
29 lines
760 B
TypeScript
import 'dotenv/config';
|
|
import * as bcrypt from 'bcrypt';
|
|
import { PrismaClient } from '../src/generated/prisma/client.js';
|
|
import { PrismaPg } from '@prisma/adapter-pg';
|
|
|
|
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
|
|
const prisma = new PrismaClient({ adapter });
|
|
|
|
async function main() {
|
|
const passwordHash = await bcrypt.hash('admin123', 10);
|
|
|
|
const user = await prisma.user.upsert({
|
|
where: { email: 'admin@dimension47.local' },
|
|
update: {},
|
|
create: {
|
|
username: 'admin',
|
|
email: 'admin@dimension47.local',
|
|
passwordHash,
|
|
role: 'ADMIN',
|
|
},
|
|
});
|
|
|
|
console.log('Admin user created:', user.username, user.email);
|
|
}
|
|
|
|
main()
|
|
.catch(console.error)
|
|
.finally(() => prisma.$disconnect());
|