60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
const { PrismaClient } = require('@prisma/client');
|
|
const bcrypt = require('bcrypt');
|
|
const { v4: uuidv4 } = require('uuid');
|
|
const crypto = require('crypto');
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
const VENUE_NAME = process.env.SETUP_VENUE_NAME || process.argv[2] || 'My Venue';
|
|
const ADMIN_EMAIL = process.env.SETUP_ADMIN_EMAIL || process.argv[3] || 'admin@example.com';
|
|
const ADMIN_PASSWORD = process.env.SETUP_ADMIN_PASSWORD || process.argv[4] || 'admin123';
|
|
|
|
async function main() {
|
|
console.log('=== KoolTap Production Setup ===\n');
|
|
|
|
// Wipe everything
|
|
await prisma.auditLog.deleteMany();
|
|
await prisma.remoteCommand.deleteMany();
|
|
await prisma.openTabSnapshot.deleteMany();
|
|
await prisma.tabOwnership.deleteMany();
|
|
await prisma.refreshToken.deleteMany();
|
|
await prisma.registrationCode.deleteMany();
|
|
await prisma.device.deleteMany();
|
|
await prisma.clientUser.deleteMany();
|
|
await prisma.venue.deleteMany();
|
|
console.log('✓ Cleared existing data');
|
|
|
|
// Create venue
|
|
const venueId = uuidv4();
|
|
await prisma.venue.create({ data: { id: venueId, name: VENUE_NAME } });
|
|
console.log(`✓ Created venue: ${VENUE_NAME}`);
|
|
|
|
// Create admin user
|
|
const hash = await bcrypt.hash(ADMIN_PASSWORD, 10);
|
|
await prisma.clientUser.create({
|
|
data: {
|
|
id: uuidv4(),
|
|
venueId,
|
|
email: ADMIN_EMAIL,
|
|
passwordHash: hash,
|
|
name: 'Admin',
|
|
role: 'admin',
|
|
},
|
|
});
|
|
console.log(`✓ Created admin: ${ADMIN_EMAIL}`);
|
|
|
|
console.log('\n=== Setup complete ===');
|
|
console.log(` Venue: ${VENUE_NAME}`);
|
|
console.log(` Venue ID: ${venueId}`);
|
|
console.log(` Admin: ${ADMIN_EMAIL}`);
|
|
console.log(` Password: ${ADMIN_PASSWORD}`);
|
|
console.log('\nSave the Venue ID — the Flutter app needs it to find your venue.');
|
|
console.log('Login at https://kooltap.com with the admin credentials above.');
|
|
|
|
await prisma.$disconnect();
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error('Setup failed:', err);
|
|
process.exit(1);
|
|
}); |