feat(11-02): add findByStatus method to InitiativeRepository

- Add findByStatus method to InitiativeRepository port interface
- Implement findByStatus in DrizzleInitiativeRepository adapter
- Filter initiatives by status (active/completed/archived)
This commit is contained in:
Lukas May
2026-01-31 19:03:26 +01:00
parent 1942d98ebb
commit 768c4d265e
2 changed files with 13 additions and 0 deletions

View File

@@ -54,6 +54,13 @@ export class DrizzleInitiativeRepository implements InitiativeRepository {
return this.db.select().from(initiatives);
}
async findByStatus(status: 'active' | 'completed' | 'archived'): Promise<Initiative[]> {
return this.db
.select()
.from(initiatives)
.where(eq(initiatives.status, status));
}
async update(id: string, data: UpdateInitiativeData): Promise<Initiative> {
const existing = await this.findById(id);
if (!existing) {

View File

@@ -44,6 +44,12 @@ export interface InitiativeRepository {
*/
findAll(): Promise<Initiative[]>;
/**
* Find all initiatives with a specific status.
* Returns empty array if none exist.
*/
findByStatus(status: 'active' | 'completed' | 'archived'): Promise<Initiative[]>;
/**
* Update an initiative.
* Throws if initiative not found.