lightning-auth-and-payment
Version:
Lightning Network authentication and payment processing library for modern web applications
98 lines (87 loc) • 2.35 kB
text/typescript
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
console.log('🌱 Seeding database...');
// Create sample users
const user1 = await prisma.user.upsert({
where: { lnPubkey: '03f1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' },
update: {},
create: {
lnPubkey: '03f1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
},
});
const user2 = await prisma.user.upsert({
where: { lnPubkey: '02a9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba' },
update: {},
create: {
lnPubkey: '02a9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba',
},
});
// Create sample orders
const order1 = await prisma.order.create({
data: {
userId: user1.id,
status: 'PAID',
totalSats: 10000,
items: {
create: [
{
productId: 'book-1',
quantity: 1,
priceSats: 10000,
metadata: JSON.stringify({ title: 'Bitcoin: A Peer-to-Peer Electronic Cash System' }),
},
],
},
},
});
const order2 = await prisma.order.create({
data: {
userId: user2.id,
status: 'PENDING',
totalSats: 5000,
items: {
create: [
{
productId: 'book-2',
quantity: 1,
priceSats: 5000,
metadata: JSON.stringify({ title: 'Mastering Bitcoin' }),
},
],
},
},
});
// Create sample payments
await prisma.payment.create({
data: {
userId: user1.id,
orderId: order1.id,
amountSats: 10000,
status: 'PAID',
description: 'Bitcoin: A Peer-to-Peer Electronic Cash System',
paidAt: new Date(),
},
});
await prisma.payment.create({
data: {
userId: user2.id,
orderId: order2.id,
amountSats: 5000,
status: 'PENDING',
description: 'Mastering Bitcoin',
},
});
console.log('✅ Database seeded successfully!');
console.log(`👤 Created ${2} users`);
console.log(`📦 Created ${2} orders`);
console.log(`💳 Created ${2} payments`);
}
main()
.catch((e) => {
console.error('❌ Error seeding database:', e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});