অধ্যায় ১১.১ — মাস্টার ইনপুট ক্যাটালগ
১. উদ্দেশ্য
সকল ইম্পোর্টেবল ফাইল প্রকার এবং তাদের স্কিমা — যা travoBooks বাইরের জগৎ থেকে ingest করে।
২. ফাইল প্রকার
| প্রকার | উৎস | ফর্ম্যাট | ফ্রিকোয়েন্সি |
|---|---|---|---|
| BSP HOT | IATA BSP | Fixed-width text | Weekly/bi-weekly |
| ARC report | ARC | CSV/Fixed | Weekly |
| ব্যাঙ্ক স্টেটমেন্ট | ব্যাঙ্ক | CSV/MT940/CAMT.053 | Daily |
| Gateway settlement | Stripe/etc | CSV/JSON via API | Daily |
| Supplier statement | Hotel/Insurance | PDF/CSV/Excel | Monthly |
| Airport/City codes | IATA | CSV update | Quarterly |
| Exchange rates | BB/Reuters | CSV/API | Daily |
| Customer import | পার্টনার | CSV/Excel | Ad-hoc |
| Supplier import | পার্টনার | CSV/Excel | Ad-hoc |
| Chart of Accounts | পার্টনার | CSV | Setup-time |
৩. ইম্পোর্ট প্রবাহ
১. ফাইল আপলোড (UI বা API বা SFTP)
২. SHA-256 hash কম্পিউট
৩. Dedupe চেক (একই ফাইল ইতিমধ্যে ইম্পোর্ট?)
৪. Format detection (অ্যাট্রিবিউট থেকে)
৫. Staging table-এ load (validation queue)
৬. Per-row validation (schema, business rules)
৭. পার্টনার অনুমোদন (ঐচ্ছিক)
৮. Production tables-এ commit
৯. JE পোস্ট (যেখানে প্রযোজ্য)
১০. Result report
৪. Staging tables
প্রতিটি ইম্পোর্ট প্রকারের আলাদা staging table:
- stg_bsp_lines
- stg_bank_transactions
- stg_customer_import
- ইত্যাদি
Staging row স্ট্যাটাস: PENDING, VALID, INVALID, COMMITTED, QUARANTINED।
৫. Validation
দুই স্তর:
Schema validation: - প্রয়োজনীয় কলাম উপস্থিত - ডেটা টাইপ মিল - Format (ISO currency, IATA airport)
Business validation: - পার্টনার-নির্দিষ্ট নিয়ম - Referential integrity (referenced entity exists) - Duplicate detection - Sanity check (negative amount, future date, etc.)
৬. Quarantine
Invalid rows quarantine table-এ — operator-এর জন্য রিভিউ:
- Fix at source → re-import
- Manual correction → commit
- Skip → mark REJECTED
৭. SFTP ইম্পোর্ট
স্বয়ংক্রিয় cron-based: - পার্টনার নির্দিষ্ট SFTP folder-এ ফাইল drop - travoBooks প্রতি 15 মিনিট poll - নতুন ফাইল detect → ingest pipeline - result notification ইমেইল
৮. ম্যানুয়াল ইম্পোর্ট (UI)
ব্যবহারকারী এক ফাইল drag-drop → preview → confirm import। ছোট partner-এর জন্য।
৯. ইম্পোর্ট ইতিহাস
import_runs টেবিল:
- file hash
- timestamp
- importer (user/system)
- rows: total, valid, invalid, committed
- result: SUCCESS, PARTIAL, FAILED
- error report (CSV)
১০. সাধারণ ফাঁদ
- ⚠️ Duplicate file import — dedupe ছাড়া double-count
- ⚠️ Skip validation — corrupt data production-এ
- ⚠️ Quarantine অগ্রাহ্য — missing data accumulate
- ⚠️ Encoding issue (UTF-8 না) — Bangla/Arabic চরিত্র mojibake