এই ভলিউমে · ভলিউম 14
পরিশিষ্ট
এরর কোড স্ট্যাটাস কোড

অধ্যায় ১৪.২ — স্ট্যাটাস কোড

১. উদ্দেশ্য

travoBooks-এর সব entity-র stable enumerated status values। integration contracts-এর ভিত্তি।

২. Convention

  • সর্বদা SCREAMING_SNAKE_CASE
  • কখনো ইনডেক্স-ভিত্তিক comparison না — string code ব্যবহার করুন
  • ভবিষ্যত versions স্ট্যাটাস যোগ করতে পারে; existing values কখনো পরিবর্তন হবে না
  • API consumers should "tolerate unknown" — পুরাতন consumer নতুন status দেখলে default fallback

৩. Booking

DRAFT, HELD, PENDING_PAYMENT, PENDING_APPROVAL, ISSUED,
PARTIALLY_USED, COMPLETED, CANCELLED_BEFORE_ISSUE, 
CANCELLED_AFTER_ISSUE, PARTIALLY_REFUNDED, EXPIRED

৪. Ticket

RESERVED, ISSUED, VOIDED, REFUNDED, PARTIALLY_REFUNDED,
EXCHANGED, FLOWN, EXPIRED

৫. EMD (Electronic Miscellaneous Document)

ISSUED, USED, REFUNDED, VOIDED, EXPIRED

৬. Invoice

DRAFT, ISSUED, PARTIALLY_PAID, PAID, OVERDUE,
VOIDED, WRITTEN_OFF

৭. Payment

INITIATED, AUTHORIZED, CAPTURED, APPLIED, RECONCILED,
FAILED, REFUNDED, CHARGEBACK, DISPUTED

৮. Payout

DRAFT, PENDING_APPROVAL, APPROVED, SENT, CONFIRMED,
FAILED, RECALLED

৯. Refund

REQUESTED, QUOTED, APPROVED, SUPPLIER_PROCESSING,
SUPPLIER_APPROVED, SUPPLIER_REJECTED,
PAYBACK_PENDING, PAYBACK_FAILED, COMPLETED,
REJECTED_BY_CUSTOMER

১০. Memo (ADM/ACM)

RECEIVED, UNLINKED, LINKED, UNDER_REVIEW,
DISPUTED, ACCEPTED, SETTLED_IN_BSP,
WITHDRAWN, WRITTEN_OFF

১১. Commission

ESTIMATED, ACCRUED, RECOGNISED, SETTLED,
RECONCILED, DISPUTED, RECALLED

১২. Period

Open, SoftClosed, Closed, Locked

(এটি mixed-case — historical reason)

১৩. Customer

PROSPECT, KYC_PENDING, ACTIVE, INACTIVE,
SUSPENDED, CREDIT_HOLD, SANCTIONS_HOLD

১৪. Supplier

PROSPECT, ONBOARDING, ACTIVE, INACTIVE,
SUSPENDED, BANK_HOLD

১৫. Import run

PENDING, RUNNING, COMPLETED, PARTIAL, FAILED, CANCELLED

১৬. Webhook delivery

PENDING, DELIVERED, RETRYING, FAILED, DEAD_LETTERED

১৭. JE

DRAFT, POSTED, REVERSED

JE itself simple — complexity period state-এ।

১৮. Reconciliation

Run status:

RUNNING, COMPLETED, FAILED

Match status:

MATCH_OK, COMMISSION_VARIANCE, AMOUNT_VARIANCE, 
TAX_VARIANCE, NOT_FOUND_IN_OUR_BOOKS, NOT_FOUND_IN_BSP,
DUPLICATE, MANUAL_MATCH, RECONFIRMED

Exception status:

OPEN, IN_PROGRESS, RESOLVED, WRITTEN_OFF

১৯. Tax Return

DRAFT, FILED, PAID, AMENDED, OVERDUE

২০. Approval

PENDING, APPROVED, REJECTED, CANCELLED, EXPIRED

২১. ইন্টিগ্রেশন রুল

// ✓ সঠিক
if (booking.status === 'ISSUED') { ... }
if (['ISSUED', 'PARTIALLY_USED', 'COMPLETED'].includes(booking.status)) { ... }

// ✗ ভুল
if (booking.status_id === 5) { ... }  // index unstable
if (booking.status > 3) { ... }       // ordering arbitrary

২২. সাধারণ ফাঁদ

  • ⚠️ Index-by-status — version upgrade-এ ভাঙবে
  • ⚠️ "Tolerate unknown" না করা — new status crash
  • ⚠️ Status-এর order compare — semantics নয়
  • ⚠️ Status translation in UI কিন্তু code-level uppercase preserve না করা