Add account registration flow
This commit is contained in:
@@ -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: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user