§01
Umumiy ko'rinish
- Nima ekani: Restaurant chain (UZ) tarmog'ining fiskalizatsiya/to'lovlarini boshqarish backendi —
ofdplugin(#40, iiko uchun C#) ning web ko'rinishi. Admin tashkilotlarni (multi-tenant), mahsulotlarni, terminallarni, to'lov turlarini, rollar/ruxsatlarni boshqaradi; ma'lumotlarni iiko Cloud va to'lov provayderlari bilan sinxronlaydi. - Turi / holati / roli: web-app (API + admin) / active / yakka (~11/14 foydalanuvchi kommiti; 3 tasi — Shahzod).
- Faol davri: 2026-02-07 → 2026-02-27 (~3 hafta, ixcham). 13 ta CC sessiyasi.
§02
Stek
- API (`api/`): Elysia.js (Bun) + bearer-auth + typebox, Drizzle ORM + PostgreSQL (
postgres), Redis (ioredis), jose (JWT), otp-generator, radash/lodash, dayjs. - Admin (`admin/`): Next.js + react-hook-form + Zustand (product store).
- Crons (`crons/`): fonda ishlaydigan sinxronlash.
- API modullari: organizations (multi-tenant), organizations_users, products, terminals, payment_types, roles/permissions/users/users_roles/roles_permissions (to'liq RBAC), cache_control.
§03
Nima qilindi
- RBAC + multi-tenant: roles/permissions/users modullari + organizations.
- To'lov turlarini sinxronlash (
f0be309,40f6e27): sync endpointi + admindagi tugma, har bir tashkilot uchun tashqi xizmatdan to'lov turlarini tortib oladi/yangilaydi; UzCard integratsiyasi, card_type. - iiko Cloud API orqali terminal sinxronlash (
d3a9e39). - Mahsulot sinxronlash (
5ba77cf— barchasi o'rniga bitta tashkilot doirasida;f0be309). - SPIC selektori (
6a2e731— fiskal mahsulot kodlari alohida endpointdan). - UI: formalarni react-hook-form ga ko'chirish, Zustand store + suzuvchi toolbar + mahsulot qidiruvi/saralashi, ruslashtirish.
- Hajm: 14 ta kommit, ~11 tasi foydalanuvchiniki, 3 hafta.
§04
Texnik chellenjlar
- iiko Cloud API integratsiyasi (
d3a9e39): terminallarni iiko clouddan o'z DB ga sinxronlash. → restoran platformasi bilan API integratsiyasi (ofdplugin dagi plugin asosidan farqli ravishda, cloud asosida). - Tashqi provayder bilan to'lov turlarini sinxronlash (
f0be309): har bir tashkilot bo'yicha sinxronlash (UzCard/Humo), card_type mapping, admindan qo'lda ishga tushirish va bildirishnomalar. → UZ to'lov tizimlari bo'yicha domen ishi. - SPIC kodlari (
6a2e731): fiskal mahsulot klassifikatorlari uchun selektor (SPIC — O'zbekistonda majburiy fiskalizatsiya kodi). → lokal fiskal xususiyatlarni bilish. - Multi-tenant RBAC (organizations + roles/permissions/users_roles/roles_permissions): Elysia/Drizzle ustida qurilgan to'liq ruxsatlar modeli.
- Sinxronlash doirasi tuzatishlari (
5ba77cf— barchasi emas, bitta tashkilot uchun) — tenant ma'lumotlarini to'g'ri izolyatsiya qilish.
§05
AI yordamida ishlab chiqish
- Topilgan sessiyalar: 13 ta .jsonl.
.claude/. - AI bilan nima qilingan: modullar/sinxronlashlarni qurish, formalarni react-hook-form ga ko'chirish, drizzle-kit v0.31 tuzatishlari (dialect/url), drizzle-orm tiplarini root workspace ga ko'tarish. Toza va tushunarli kommitlar.
- Pattern: Elysia/Drizzle da CRUD+sync backendni tez yig'ish uchun Claude Code.
§06
Yutuqlar va metrikalar
- ~3 haftada yakka fiskal/to'lovlar backendi: multi-tenant, RBAC, 3 ta sinxronlash (to'lovlar/terminallar/mahsulotlar), SPIC.
- Zamonaviy stek (Elysia/Bun/Drizzle/Redis/jose).
- Kichik hajm; metrikalar yo'q.