Skip to content

Feature: Introduce Typed Status Enums and Transition Guards #65

Description

@3m1n3nc3

Description

Replace free-form status strings with enums and domain-owned transition guards.

File Location

learnault-api/prisma/schema.prisma, learnault-api/src/types/, learnault-api/src/domain/, and migrations

Design Reference

API Roadmap Phase 0: Introduce Typed Status Enums and Transition Guards.

Dependencies

  • Status: Blocked
  • Blocked by: Feature: Repair Clean Install and Prisma Generation; Feature: Define Backend Domain Module Boundaries
  • Blocks: Feature: Add Transaction Outbox and Job Delivery Foundation; API Phase 1 session and wallet models

Tasks

  • Inventory statuses for transactions, sync, webhooks, notifications, users, and jobs
  • Define Prisma and TypeScript enums
  • Implement legal transition functions
  • Migrate known values and reject unknown legacy values
  • Update DTOs, filters, fixtures, and OpenAPI schemas
  • Add transition-table and migration tests

Acceptance Criteria

  • Covered statuses reject arbitrary strings
  • State changes use tested guards
  • Unknown legacy values are reported
  • Build and tests pass

Verification Evidence

  • Attach transition matrix, migration dry-run, and transition tests

Difficulty

Advanced

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions