Skip to content

1.6.0

Released: TBD

Highlights

  • legal_status on invoices and credit notes is now a first-class LegalStatus enum, consistent with every other enumerated field in the system.

Added

Changed

  • GraphQLlegalStatus on Invoice, InvoiceLite, InvoiceLandingPage, Credit, and CreditLandingPage changes from String to the LegalStatus enum. Admin pacDocumentsReport / pacDocumentsReportAllCompanies legalStatus filter args change from String to LegalStatus. Output JSON is unchanged — Strawberry serializes enum members by name, so clients still receive the same "PAC_AUTHORIZED" / "DGI_AUTHORIZED" strings (or null).
  • Storageinvoices.legal_status and credits.legal_status are now SMALLINT columns backing the enum instead of VARCHAR(50).
  • Internal — the redundant PacLegalStatus(str, Enum) is removed; webhook payloads now parse the wire string directly into LegalStatus.

Fixed

  • (none)

Migrations

  • legal_status_int_invoices20260603_convert_invoices_legal_status_to_int_enum.py (converts invoices.legal_status VARCHAR(50)SMALLINT).
  • legal_status_int_credits20260603_convert_credits_legal_status_to_int_enum.py (converts credits.legal_status VARCHAR(50)SMALLINT).

Both migrations map the wire strings in place (PAC_AUTHORIZED→1, PAC_REJECTED→2, DGI_AUTHORIZED→3, DGI_REJECTED→4, anything else / NULLNULL) and implement a reversible downgrade. No one-off scripts.

Frontend impact

No runtime change is required. The legalStatus field still returns the same string values and null. The only difference is the SDL now types it as the LegalStatus enum, so clients that generate typed bindings should regenerate, and admin report filters must pass one of the enum members rather than an arbitrary string.