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(),
|
number: integer('number').notNull(),
|
||||||
name: text('name').notNull(),
|
name: text('name').notNull(),
|
||||||
description: text('description'),
|
description: text('description'),
|
||||||
status: text('status', { enum: ['pending', 'in_progress', 'completed'] })
|
status: text('status', { enum: ['pending', 'in_progress', 'completed', 'blocked'] })
|
||||||
.notNull()
|
.notNull()
|
||||||
.default('pending'),
|
.default('pending'),
|
||||||
createdAt: integer('created_at', { mode: 'timestamp' }).notNull(),
|
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 { InitiativeRepository } from '../db/repositories/initiative-repository.js';
|
||||||
import type { PhaseRepository } from '../db/repositories/phase-repository.js';
|
import type { PhaseRepository } from '../db/repositories/phase-repository.js';
|
||||||
import type { PlanRepository } from '../db/repositories/plan-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';
|
import type { CoordinationManager } from '../coordination/types.js';
|
||||||
|
|
||||||
// Re-export for convenience
|
// Re-export for convenience
|
||||||
@@ -44,6 +44,8 @@ export interface TRPCContext {
|
|||||||
phaseRepository?: PhaseRepository;
|
phaseRepository?: PhaseRepository;
|
||||||
/** Plan repository for plan CRUD operations (optional until server wiring complete) */
|
/** Plan repository for plan CRUD operations (optional until server wiring complete) */
|
||||||
planRepository?: PlanRepository;
|
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;
|
initiativeRepository?: InitiativeRepository;
|
||||||
phaseRepository?: PhaseRepository;
|
phaseRepository?: PhaseRepository;
|
||||||
planRepository?: PlanRepository;
|
planRepository?: PlanRepository;
|
||||||
|
phaseDispatchManager?: PhaseDispatchManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -82,5 +85,6 @@ export function createContext(options: CreateContextOptions): TRPCContext {
|
|||||||
initiativeRepository: options.initiativeRepository,
|
initiativeRepository: options.initiativeRepository,
|
||||||
phaseRepository: options.phaseRepository,
|
phaseRepository: options.phaseRepository,
|
||||||
planRepository: options.planRepository,
|
planRepository: options.planRepository,
|
||||||
|
phaseDispatchManager: options.phaseDispatchManager,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -818,7 +818,7 @@ export const appRouter = router({
|
|||||||
id: z.string().min(1),
|
id: z.string().min(1),
|
||||||
name: z.string().min(1).optional(),
|
name: z.string().min(1).optional(),
|
||||||
description: z.string().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 }) => {
|
.mutation(async ({ ctx, input }) => {
|
||||||
const repo = requirePhaseRepository(ctx);
|
const repo = requirePhaseRepository(ctx);
|
||||||
|
|||||||
Reference in New Issue
Block a user