Fix signup defaults and asset management

This commit is contained in:
2026-08-13 18:33:59 +09:00
parent 7888a06d8f
commit 5daf2d3925
11 changed files with 217 additions and 56 deletions

View File

@@ -1,6 +1,8 @@
import type { PrismaClient } from '@prisma/client'
import type { Prisma, PrismaClient } from '@prisma/client'
export async function createDefaultMoneyData(prisma: PrismaClient, userId: string) {
type MoneyDataClient = PrismaClient | Prisma.TransactionClient
export async function createDefaultMoneyData(prisma: MoneyDataClient, userId: string) {
const cash = await prisma.asset.create({
data: {
userId,
@@ -34,3 +36,13 @@ export async function createDefaultMoneyData(prisma: PrismaClient, userId: strin
return { cash }
}
export async function ensureDefaultMoneyData(prisma: MoneyDataClient, userId: string) {
const [assetCount, categoryCount] = await Promise.all([
prisma.asset.count({ where: { userId } }),
prisma.category.count({ where: { userId } })
])
if (assetCount || categoryCount) return
await createDefaultMoneyData(prisma, userId)
}