import { prisma } from "@/lib/prisma"; import type { Account } from "@/lib/types"; export const accountService = { async create(data: Omit): Promise { const created = await prisma.account.create({ data: { name: data.name, bankId: data.bankId, accountNumber: data.accountNumber, type: data.type, folderId: data.folderId, balance: data.balance, currency: data.currency, lastImport: data.lastImport, externalUrl: data.externalUrl, }, }); return { id: created.id, name: created.name, bankId: created.bankId, accountNumber: created.accountNumber, type: created.type as Account["type"], folderId: created.folderId, balance: created.balance, currency: created.currency, lastImport: created.lastImport, externalUrl: created.externalUrl, }; }, async update( id: string, data: Partial>, ): Promise { const updated = await prisma.account.update({ where: { id }, data: { name: data.name, bankId: data.bankId, accountNumber: data.accountNumber, type: data.type, folderId: data.folderId, balance: data.balance, currency: data.currency, lastImport: data.lastImport, externalUrl: data.externalUrl, }, }); return { id: updated.id, name: updated.name, bankId: updated.bankId, accountNumber: updated.accountNumber, type: updated.type as Account["type"], folderId: updated.folderId, balance: updated.balance, currency: updated.currency, lastImport: updated.lastImport, externalUrl: updated.externalUrl, }; }, async delete(id: string): Promise { // Transactions will be deleted automatically due to onDelete: Cascade await prisma.account.delete({ where: { id }, }); }, };