Files
Codewalkers/apps/server/db/repositories/index.ts
Lukas May 940b0f8ed2 feat: Add errands persistence layer — repository port, Drizzle adapter, migration, and tests
- Add errand-repository.ts port with ErrandRepository, ErrandWithAlias, ErrandStatus types
- Add DrizzleErrandRepository adapter with create, findById (left-joins agents for alias),
  findAll (optional projectId/status filters, desc by createdAt), update, delete
- Wire exports into repositories/index.ts and repositories/drizzle/index.ts
- Add migration 0035_faulty_human_fly.sql (CREATE TABLE errands) and drizzle snapshot
- Add 13 tests covering CRUD, filtering, ordering, agentAlias join, cascade/set-null FK behaviour
- Update docs/database.md to document the errands table and ErrandRepository

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 12:35:06 +01:00

93 lines
1.8 KiB
TypeScript

/**
* Repository Port Interfaces
*
* Re-exports all repository port interfaces.
* These are the PORTS in hexagonal architecture.
* Implementations in ./drizzle/ are ADAPTERS.
*/
export type {
InitiativeRepository,
CreateInitiativeData,
UpdateInitiativeData,
} from './initiative-repository.js';
export type {
PhaseRepository,
CreatePhaseData,
UpdatePhaseData,
} from './phase-repository.js';
export type {
TaskRepository,
CreateTaskData,
UpdateTaskData,
} from './task-repository.js';
export type {
AgentRepository,
AgentStatus,
CreateAgentData,
} from './agent-repository.js';
export type {
MessageRepository,
MessageParticipantType,
MessageType,
MessageStatus,
CreateMessageData,
UpdateMessageData,
} from './message-repository.js';
export type {
PageRepository,
CreatePageData,
UpdatePageData,
} from './page-repository.js';
export type {
ProjectRepository,
CreateProjectData,
UpdateProjectData,
} from './project-repository.js';
export type {
AccountRepository,
CreateAccountData,
} from './account-repository.js';
export type {
ChangeSetRepository,
CreateChangeSetData,
CreateChangeSetEntryData,
ChangeSetWithEntries,
} from './change-set-repository.js';
export type {
LogChunkRepository,
} from './log-chunk-repository.js';
export type {
ConversationRepository,
CreateConversationData,
} from './conversation-repository.js';
export type {
ChatSessionRepository,
CreateChatSessionData,
CreateChatMessageData,
} from './chat-session-repository.js';
export type {
ReviewCommentRepository,
CreateReviewCommentData,
} from './review-comment-repository.js';
export type {
ErrandRepository,
ErrandWithAlias,
ErrandStatus,
CreateErrandData,
UpdateErrandData,
} from './errand-repository.js';