import { prisma as db } from "@repo/db/client"; import { InsertNpiProvider, NpiProvider } from "@repo/db/types"; export interface INpiProviderStorage { getNpiProvider(id: number): Promise; getNpiProvidersByUser(userId: number): Promise; createNpiProvider(data: InsertNpiProvider): Promise; updateNpiProvider( id: number, updates: Partial, ): Promise; deleteNpiProvider(userId: number, id: number): Promise; } export const npiProviderStorage: INpiProviderStorage = { async getNpiProvider(id: number) { return db.npiProvider.findUnique({ where: { id } }); }, async getNpiProvidersByUser(userId: number) { return db.npiProvider.findMany({ where: { userId }, orderBy: { createdAt: "desc" }, }); }, async createNpiProvider(data: InsertNpiProvider) { return db.npiProvider.create({ data: data as NpiProvider, }); }, async updateNpiProvider(id: number, updates: Partial) { return db.npiProvider.update({ where: { id }, data: updates, }); }, async deleteNpiProvider(userId: number, id: number) { try { await db.npiProvider.delete({ where: { id, userId }, }); return true; } catch { return false; } }, };