Add account registration flow

This commit is contained in:
2026-08-13 17:43:13 +09:00
parent 0117a0c097
commit 255a6e8529
6 changed files with 154 additions and 60 deletions

View File

@@ -1,5 +1,6 @@
import { hash } from 'bcryptjs'
import { PrismaClient } from '@prisma/client'
import { createDefaultMoneyData } from '../server/utils/defaults'
const prisma = new PrismaClient()
@@ -14,57 +15,17 @@ async function main() {
}
})
const cash = await prisma.asset.upsert({
where: { id: 'seed-cash' },
update: {},
create: {
id: 'seed-cash',
userId: user.id,
name: '현금',
balanceType: 'cumulative',
initialBalance: 0,
sortOrder: 0
}
})
await prisma.asset.upsert({
where: { id: 'seed-living' },
update: {},
create: {
id: 'seed-living',
userId: user.id,
name: '생활비',
balanceType: 'monthly_reset',
sortOrder: 1
}
})
const incomeParent = await prisma.category.upsert({
where: { id: 'seed-income-work' },
update: {},
create: { id: 'seed-income-work', userId: user.id, type: 'income', name: '근로', sortOrder: 0 }
})
const salary = await prisma.category.upsert({
where: { id: 'seed-income-salary' },
update: {},
create: { id: 'seed-income-salary', userId: user.id, type: 'income', name: '월급', parentId: incomeParent.id, sortOrder: 0 }
})
const foodParent = await prisma.category.upsert({
where: { id: 'seed-expense-food' },
update: {},
create: { id: 'seed-expense-food', userId: user.id, type: 'expense', name: '식비', sortOrder: 0 }
})
const meal = await prisma.category.upsert({
where: { id: 'seed-expense-meal' },
update: {},
create: { id: 'seed-expense-meal', userId: user.id, type: 'expense', name: '외식', parentId: foodParent.id, sortOrder: 0 }
})
const assetCount = await prisma.asset.count({ where: { userId: user.id } })
const categoryCount = await prisma.category.count({ where: { userId: user.id } })
if (assetCount === 0 && categoryCount === 0) {
await createDefaultMoneyData(prisma, user.id)
}
const transactionCount = await prisma.transaction.count({ where: { userId: user.id } })
if (transactionCount === 0) {
const cash = await prisma.asset.findFirstOrThrow({ where: { userId: user.id }, orderBy: { sortOrder: 'asc' } })
const salary = await prisma.category.findFirstOrThrow({ where: { userId: user.id, type: 'income', name: '월급' } })
const meal = await prisma.category.findFirstOrThrow({ where: { userId: user.id, type: 'expense', name: '외식' } })
await prisma.transaction.createMany({
data: [
{