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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions