feat(14-05): add PhaseDispatchManager to tRPC context
- Import PhaseDispatchManager type from dispatch module - Add optional phaseDispatchManager to TRPCContext interface - Add phaseDispatchManager to CreateContextOptions - Wire phaseDispatchManager through createContext function Includes blocking fix: added 'blocked' status to phases schema enum
This commit is contained in:
@@ -47,7 +47,7 @@ export const phases = sqliteTable('phases', {
|
||||
number: integer('number').notNull(),
|
||||
name: text('name').notNull(),
|
||||
description: text('description'),
|
||||
status: text('status', { enum: ['pending', 'in_progress', 'completed'] })
|
||||
status: text('status', { enum: ['pending', 'in_progress', 'completed', 'blocked'] })
|
||||
.notNull()
|
||||
.default('pending'),
|
||||
createdAt: integer('created_at', { mode: 'timestamp' }).notNull(),
|
||||
|
||||
@@ -12,7 +12,7 @@ import type { MessageRepository } from '../db/repositories/message-repository.js
|
||||
import type { InitiativeRepository } from '../db/repositories/initiative-repository.js';
|
||||
import type { PhaseRepository } from '../db/repositories/phase-repository.js';
|
||||
import type { PlanRepository } from '../db/repositories/plan-repository.js';
|
||||
import type { DispatchManager } from '../dispatch/types.js';
|
||||
import type { DispatchManager, PhaseDispatchManager } from '../dispatch/types.js';
|
||||
import type { CoordinationManager } from '../coordination/types.js';
|
||||
|
||||
// Re-export for convenience
|
||||
@@ -44,6 +44,8 @@ export interface TRPCContext {
|
||||
phaseRepository?: PhaseRepository;
|
||||
/** Plan repository for plan CRUD operations (optional until server wiring complete) */
|
||||
planRepository?: PlanRepository;
|
||||
/** Phase dispatch manager for phase queue operations (optional until server wiring complete) */
|
||||
phaseDispatchManager?: PhaseDispatchManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,6 +63,7 @@ export interface CreateContextOptions {
|
||||
initiativeRepository?: InitiativeRepository;
|
||||
phaseRepository?: PhaseRepository;
|
||||
planRepository?: PlanRepository;
|
||||
phaseDispatchManager?: PhaseDispatchManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,5 +85,6 @@ export function createContext(options: CreateContextOptions): TRPCContext {
|
||||
initiativeRepository: options.initiativeRepository,
|
||||
phaseRepository: options.phaseRepository,
|
||||
planRepository: options.planRepository,
|
||||
phaseDispatchManager: options.phaseDispatchManager,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -818,7 +818,7 @@ export const appRouter = router({
|
||||
id: z.string().min(1),
|
||||
name: z.string().min(1).optional(),
|
||||
description: z.string().optional(),
|
||||
status: z.enum(['pending', 'in_progress', 'completed']).optional(),
|
||||
status: z.enum(['pending', 'in_progress', 'completed', 'blocked']).optional(),
|
||||
}))
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
const repo = requirePhaseRepository(ctx);
|
||||
|
||||
Reference in New Issue
Block a user