এই ভলিউমে · ভলিউম 13
ওয়ার্কফ্লো
ওয়ার্কফ্লো সূচি বুকিং লাইফসাইকেল ওয়ার্কফ্লো রিফান্ড ওয়ার্কফ্লো অনুমোদন ওয়ার্কফ্লো পিরিয়ড ক্লোজ ওয়ার্কফ্লো

অধ্যায় ১৩.২ — বুকিং লাইফসাইকেল ওয়ার্কফ্লো

১. উদ্দেশ্য

বুকিং তৈরি থেকে সমাপ্তি পর্যন্ত পুরো ওয়ার্কফ্লো — দুটি প্রধান পথ: ক্যাশ এবং ক্রেডিট গ্রাহক।

২. Actors

Actor ভূমিকা
Customer বুকিংয়ের request
Agent travoBooks UI ব্যবহারকারী
travoBooks প্ল্যাটফর্ম logic
GDS / NDC এয়ারলাইন bookings
Payment Gateway কার্ড payments
Supplier এয়ারলাইন/হোটেল

৩. ক্যাশ গ্রাহক প্যাথ

sequenceDiagram participant C as Customer participant A as Agent participant T as travoBooks participant G as GDS participant P as Payment Gateway C->>A: ভ্রমণ অনুরোধ A->>T: Search request T->>G: AirShoppingRQ G-->>T: Offers T-->>A: Offers (with pricing) A->>C: Quote C->>A: Accept A->>T: Create booking (HELD) T->>G: Sell from offer G-->>T: PNR + price quote T-->>A: Booking HELD A->>C: Send pay link C->>P: Pay (card) P-->>T: payment.succeeded webhook T->>T: Verify signature, idempotency T->>G: Issue ticket (OUTSIDE DB transaction!) G-->>T: Ticket number T->>T: DB transaction: ticket + JE + state=ISSUED T->>C: E-ticket email T-->>A: Booking ISSUED

৪. ক্রেডিট গ্রাহক প্যাথ

sequenceDiagram participant C as Customer participant A as Agent participant T as travoBooks participant G as GDS participant Sup as Supervisor C->>A: ভ্রমণ অনুরোধ A->>T: Search + create booking T->>G: Sell G-->>T: PNR T->>T: Credit limit check alt Above approval threshold T-->>A: PENDING_APPROVAL T->>Sup: Approval request Sup->>T: Approve end T->>G: Issue ticket G-->>T: Ticket number T->>T: JE + AR posting + state=ISSUED T->>C: E-ticket T->>C: Invoice (per terms) Note over C,T: Customer pays later per net 30 etc.

৫. State machine

stateDiagram-v2 [*] --> DRAFT DRAFT --> HELD: সরবরাহকারী confirm hold HELD --> PENDING_PAYMENT: cash path HELD --> PENDING_APPROVAL: credit, > threshold HELD --> ISSUED: credit, below threshold PENDING_PAYMENT --> ISSUED: payment captured PENDING_APPROVAL --> ISSUED: approved PENDING_APPROVAL --> CANCELLED_BEFORE_ISSUE: rejected ISSUED --> PARTIALLY_USED: কুপন used PARTIALLY_USED --> COMPLETED: সব used ISSUED --> COMPLETED: ticket flown ISSUED --> CANCELLED_AFTER_ISSUE: void/refund HELD --> EXPIRED: TTL PENDING_PAYMENT --> EXPIRED: TTL PENDING_APPROVAL --> EXPIRED: TTL

৬. ফিন্যান্সিয়াল side-effects

ট্রানজিশন JE প্রভাব
DRAFT → HELD কোনো JE নেই
HELD → ISSUED full issuance JE (Dr 1101 AR, Cr 2031 Deferred, Cr 1109 Commission, etc.)
ISSUED → CANCELLED_AFTER_ISSUE (void) reversing JE
ISSUED → CANCELLED_AFTER_ISSUE (refund) refund JE pattern
Service-date reach recognition JE (Dr Deferred, Cr Revenue)

৭. ব্যর্থতা পথ

ব্যর্থতা পরিণতি পুনরুদ্ধার
GDS timeout booking HELD থাকে retry; reconciler check
Issue success, DB commit fail orphan টিকেট reconciler manual resolve
Payment failure booking PENDING_PAYMENT retry; expire after TTL
Approval rejected CANCELLED_BEFORE_ISSUE কোনো JE নেই

৮. SLA Targets

  • Search: < 5 seconds
  • Hold: < 10 seconds
  • Issue: < 30 seconds (95th percentile)
  • E-ticket delivery: < 2 minutes from issue