§01
Umumiy ko'rinish
- Bu nima: Restaurant chain (UZ) (va Restaurant chain (UZ) — umumiy kod) uchun ovqat buyurtma qilish/yetkazib berish Telegram boti. Telegraf sahnalarida to'liq suhbatga asoslangan buyurtma oqimi, tashqi triggerlar (bildirishnomalar/lokatsiyalar/rejalashtirish) uchun Elysia REST API, vazifa navbatlari va ko'p tilli UI.
- Turi / holati / roli: bot · maintained (oxirgi kommit 2025-07-10) · lead — foydalanuvchi asosiy muallif: 265 kommitdan ~139 tasi (Davron Yuldashev 59 + Davron 37 + Davr 34 + Davr@iMac 6 + Dave93 3); hammualliflar — Salim aka-ukalari (shahaa 78 + Shahzod 10) va boshqalar.
- Faollik davri: 2021-12-08 → 2025-07-10 — ~3.5 yil, uzoq umr ko'rgan production bot.
§02
Stek
- Tillar: TypeScript (yangi kod,
src/) + JavaScript (eski kod,controllers/) — TS'ga o'tish jarayonidagi gibrid kod bazasi. - Freymvorklar/kutubxonalar: Bun (runtime); Telegraf 4 + sahnalar (
telegraf-i18n,@telegraf/session,telegraf-session-redis/-local); Elysia.js (API + Swagger + CORS + Eden); MongoDB (driver 4); sessiyalar uchun Redis (ioredis); Bull + BullMQ (+ bull-board) navbatlari; Sentry (xatolarni kuzatish); prom-client / express-prometheus-middleware (Prometheus metrikalari); shtrix-kod generatsiyasi (bwip-js, canvas, bardcode); rejalashtirgichlar (node-cron, agenda, sfn-scheduler); luxon; winston; cheerio; string-similarity. - Infra/deploy: PM2 (
pm2.config.js), productionда webhook rejimi,bun build --target bunorqali build. Uchta lockfayl (bun/yarn/npm). - Ma'lumotlar: MongoDB (
lesailes_bot), Redis (sessiyalar + navbatlar), tashqi APIapi.restaurant-chain.uz. - E'tiborga molik tooling: Redis-sessiya migratsiya/inspektsiya skriptlari (
scripts/*.cjs), health/queue_info endpointlari.
§03
Nima qilindi
3.5 yil davomida 139 ta muallifiy kommit (diff'lar/xabarlar bo'yicha):
- Suhbatga asoslangan buyurtma oqimi:
start,startOrder,menu,myOrders,review,settings,callbacksahnalari (src/scenes/); myOrders'ni TS'ga refaktor qilish (06346a2, −1197 eski helperlarni o'chirish;3ac66eeoqim boshqaruvi +/startda sessiyani tozalash). - Yetkazib berish biznes-mantig'i: yetkazib berish narxi (
d653fcd,f3d5a1b), og'irlik (02eef03), to'lov turlari (85824d1), o'zi olib ketish (35829c8), narx tuzatishlari (4117fdd). - API: reply-to-message (
a1cff3d), schedule_event/send_notify/send_location/queue_info/health (Elysia). - Infra yetukligi: Redis sessiyalariga o'tish (alohida README_REDIS_SESSIONS.md + migrate skriptlari), Bull navbatlari, Prometheus metrikalari, Sentry, 3 tilli i18n.
- 2025-07 refaktori: JS→TS migratsiyasi, xatolarni qayta ishlash va importlarni yaxshilash (
697379a), server binarisi .gitignore'ga ko'chirildi. - Ko'lami: 265 kommit; barqaror ko'p yillik evolyutsiya (v2.0.0).
§04
Texnik chellenjlar
Arxitektura (CLAUDE.md/package.json) va diff'lar bo'yicha (foydalanuvchi tomonidan yozilgan — asosiy kommitchi):
- Moslashuvchan sessiya saqlash (dev'da LocalSession → prod'da Redis, Redis ishlamay qolganda in-memory'ga fallback; JS→Redis migratsiya skriptlari). → Ko'lamda production darajasidagi dialog-holat boshqaruvi.
- Vazifa navbatlari (Bull/BullMQ + bull-board) kechiktirilgan bildirishnomalar/broadcastlar uchun (
schedule_event,send_notify) — botni fon ishlovidan ajratish. → Navbatga asoslangan arxitektura. - Kuzatuvchanlik (observability): Telegram botda Prometheus metrikalari (prom-client) + Sentry tracing — botlar uchun kam uchraydigan yetuklik darajasi.
- Gibrid JS→TS migratsiyasi noldan qayta yozmasdan, jonli production botda (sahnalar bosqichma-bosqich
src/scenes/ga ko'chiriladi). → Texnik qarzni boshqarish. - 3 tilli i18n telegraf-i18n orqali, til sessiyada saqlanadi; buyurtmalar uchun shtrix-kod generatsiyasi (bwip-js/canvas).
- Ogohlantirish: CLAUDE.md bo'yicha "xatolar ko'pincha yutib yuboriladi", testlar yo'q — texnik qarzli tipik production bot.
- Foydalanuvchining ma'lum tajribasiga mos keladi: Telegraf Scenes/WizardScene, Bull+Redis, MongoDB, i18n.
§05
AI yordamida ishlab chiqish
- Topilgan sessiyalar: 0 (bu loyiha uchun Claude Code sessiyalari katalogi yo'q; to'liq yo'lni normallashtirish orqali tekshirildi). Lokal
.claude/+CLAUDE.md(rus tilida) mavjud → AI yordami bo'lishi mumkin, lekin sessiyalar bu yerda qayd etilmagan. - AI bilan nima qilingan: transkriptlar yo'q; CLAUDE.md Claude Code uchun tuzilgan.
- AI vorkflow patternlari: hujjatlar AI uchun tuzilgan, ammo bu katalogda to'g'ridan-to'g'ri sessiyalar yo'q.
§06
Yutuqlar va metrikalar
- Yirik yetkazib berish brendi (Restaurant chain (UZ)/Restaurant chain (UZ)) uchun production Telegram bot, v2.0.0, ~3.5 yildan beri ishlamoqda.
- 7 ta suhbat sahnasi, REST API, navbatlar, metrikalar, 3 til, Redis sessiyalari.