diff --git a/src/db/repositories/drizzle/plan.ts b/src/db/repositories/drizzle/plan.ts index 9734aea..dad4248 100644 --- a/src/db/repositories/drizzle/plan.ts +++ b/src/db/repositories/drizzle/plan.ts @@ -4,7 +4,7 @@ * Implements PlanRepository interface using Drizzle ORM. */ -import { eq, asc } from 'drizzle-orm'; +import { eq, asc, max } from 'drizzle-orm'; import { nanoid } from 'nanoid'; import type { DrizzleDatabase } from '../../index.js'; import { plans, type Plan } from '../../schema.js'; @@ -58,6 +58,16 @@ export class DrizzlePlanRepository implements PlanRepository { .orderBy(asc(plans.number)); } + async getNextNumber(phaseId: string): Promise { + const result = await this.db + .select({ maxNumber: max(plans.number) }) + .from(plans) + .where(eq(plans.phaseId, phaseId)); + + const maxNumber = result[0]?.maxNumber ?? 0; + return maxNumber + 1; + } + async update(id: string, data: UpdatePlanData): Promise { const existing = await this.findById(id); if (!existing) {