Skip to content

[Backend] PaymentStatus enum not standardised — Prisma schema, service layer, and API responses use different values #626

Description

@Pvsaint

Problem

The TODO.md confirms issue #216 'PaymentStatus enum standardization' is still 'In Progress' at step 1/6. The Prisma schema, payment.service.ts, and frontend types.ts use different status string values, causing mismatch bugs at runtime when statuses are compared or stored.

Acceptance Criteria

  • PaymentStatus Prisma enum defined with canonical values: pending, partially_paid, confirmed, overpaid, expired, failed, paid, completed, refunded, partially_refunded
  • Payment.status field uses the enum type in schema
  • Migration generated and applied: add_payment_status_enum
  • payment.service.ts uses enum values everywhere (no raw strings)
  • API responses serialise enum values consistently
  • PAYMENT_LIFECYCLE.md created in docs describing each state transition
  • All existing tests pass after migration

Branch & Commit

branch: fix/payment-status-enum-migration
commit: fix(payments): standardise PaymentStatus enum across Prisma, services, and API

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions