diff --git a/src/db/repositories/drizzle/initiative.ts b/src/db/repositories/drizzle/initiative.ts index c050c23..8eb0f47 100644 --- a/src/db/repositories/drizzle/initiative.ts +++ b/src/db/repositories/drizzle/initiative.ts @@ -54,6 +54,13 @@ export class DrizzleInitiativeRepository implements InitiativeRepository { return this.db.select().from(initiatives); } + async findByStatus(status: 'active' | 'completed' | 'archived'): Promise { + return this.db + .select() + .from(initiatives) + .where(eq(initiatives.status, status)); + } + async update(id: string, data: UpdateInitiativeData): Promise { const existing = await this.findById(id); if (!existing) { diff --git a/src/db/repositories/initiative-repository.ts b/src/db/repositories/initiative-repository.ts index f4e4417..a16cce6 100644 --- a/src/db/repositories/initiative-repository.ts +++ b/src/db/repositories/initiative-repository.ts @@ -44,6 +44,12 @@ export interface InitiativeRepository { */ findAll(): Promise; + /** + * Find all initiatives with a specific status. + * Returns empty array if none exist. + */ + findByStatus(status: 'active' | 'completed' | 'archived'): Promise; + /** * Update an initiative. * Throws if initiative not found.