fix(types): replace structural DB types with Pick<PrismaClient> and remove Prisma boundary as any casts

Replace ~440 lines of hand-written structural DB client types across 7 lib files
with `Pick<PrismaClient, ...>` from @capakraken/db. This eliminates all `as any`
casts at Prisma boundaries (cron routes, allocation effects, vacation procedures)
and surfaces two pre-existing bugs:
- weekly-digest.ts: `db.allocation.count()` called non-existent model (fixed → demandRequirement)
- estimate-reminders.ts: `submittedAt` field doesn't exist on EstimateVersion (fixed → updatedAt)

Also adds root eslint.config.mjs so lint-staged can lint package files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-10 15:09:16 +02:00
parent 82acc56b8d
commit 9051ff73d0
17 changed files with 257 additions and 581 deletions
@@ -22,8 +22,7 @@ export async function GET(request: Request) {
if (deny) return deny;
try {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const result = await sendWeeklyDigest(prisma as any);
const result = await sendWeeklyDigest(prisma);
return NextResponse.json({
ok: true,
@@ -32,9 +31,6 @@ export async function GET(request: Request) {
});
} catch (error) {
logger.error({ error, route: "/api/cron/weekly-digest" }, "Weekly digest cron failed");
return NextResponse.json(
{ ok: false, error: "Internal error" },
{ status: 500 },
);
return NextResponse.json({ ok: false, error: "Internal error" }, { status: 500 });
}
}