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:
@@ -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) {
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user