§01
Umumiy ko'rinish
- Bu nima: proprietar iikoFront POS tizimi (restoran kassasi) uchun kengaytma plagini. Ochib qo'yilgan papka — bu *tayyor build artefakti* (DLL + bog'liqliklar + NuGet paketi), manba kodi emas. Asosiy klass —
Resto.Front.Api.CustomWebserver.CustomWebserver, API versiyasi V8, litsenziya moduli19011701(manifest.xmlga qarang). Plagin POS ichida o'zi hostlaydigan Web API'ni ishga tushiradi va kassani pitseriya/yetkazib berish tarmog'ining tashqi xizmatlari bilan integratsiya qiladi. - Turi / holati / roli: library (POS plagini) / holati noma'lum (git yo'q va "tiriklik"ni baholash uchun manba kodi ham yo'q) / roli noma'lum — mualliflik tasdiqlanmagan (.git yo'q). Papka foydalanuvchining shaxsiy dev muhitida joylashgan va uning Restaurant chain (UZ)/Restaurant chain (UZ) proyekt ekotizimiga bog'langan, biroq kodda hissa qo'shganiga to'g'ridan-to'g'ri dalil yo'q.
- Faol davri: git sanalari mavjud emas. Artefakt 2025-04-12 da build qilingan (asosiy DLL va .nupkg vaqt belgisi); paket versiyasi
1.0.0. PDB build yo'lini ko'rsatadi —C:\projects\front.api.sdk\sample\new_webserver\Resto.Front.Api.SamplePlugin\, ya'ni plagin rasmiy iikonew_webservernamunasidan (SamplePlugin) olib kengaytirilgan.
§02
Stek
- Tillar: C# (.NET Framework 4.7.2), XAML (WPF — POS ekranidagi OTP kiritish oynasi).
- Freymvork/kutubxonalar (paketdagi haqiqiy DLL'lar va assembly ichidagi satrlardan):
Resto.Front.Api.V8v8.7.6032 — iikoFront SDK (.nuspecdagi yagona e'lon qilingan bog'liqlik).- ASP.NET Web API self-host (
System.Web.Http.SelfHost,HttpSelfHostServer,HttpSelfHostConfiguration,MapHttpRoute) — POS jarayoni ichidagi o'z HTTP serveri. System.Reactive(Rx) +System.Interactive— POS hodisalariga obuna (OrderChanged,BeforeOrderBill).Newtonsoft.Json(+ Bson) — serializatsiya (JsonConvert.SerializeObject,JToken).System.Data.SQLite(EF6/Linq + nativeSQLite.Interop.dllx86/x64 uchun) — lokal saqlash.DuckDB.NET(Bindings + Data) — o'rnatilgan analitik ombor (DuckOrderDatasatri).EntityFramework6 (+EntityFramework.SqlServer,System.Data.SqlServerCe).- NuGet.* (Packaging/Configuration/Versioning) — ko'rinishidan plaginni paketlash/yangilash uchun ishlatilgan.
- Infra/deploy: NuGet paketi
Resto.Front.Api.CustomWebserver.V8.1.0.0.nupkgsifatida tarqatiladi (iiko plagin formati,target net472). iikoFront ga o'rnatiladi. CI/Docker yo'q. - Ma'lumotlar: lokal SQLite (skanerlangan buyurtmalar jadvali —
UpdateOrInsertScannedOrder,selectLastScannedOrders,ScannedDatemaydoni); DuckDB ixtiyoriy. Tashqi ma'lumotlar HTTP orqali yetkazib berish backendlaridan tortiladi. - E'tiborga molik tooling: lokalizatsiya (
ru-RU/...resources.dll), WPF UI, token autentifikatsiyasi.
§03
Nima qilindi
Git tarixi yo'q — xronologiya kompilyatsiya qilingan assembly mazmuni (tip/metod simvollari) va *.dll.config konfiguratsiyasidan qayta tiklangan.
- POS ichidagi self-host Web API.
OrdersController : ApiController, marshrutlarMapHttpRouteorqali; endpointlar:GetKitchenOrders,GetOrderById,ReturnTabloOrders. - So'rovlar uchun token autentifikatsiyasi. Maxsus
Helpers.AuthenticationHandler : DelegatingHandler(SendAsync),ValidateToken, tokenApiTokensozlamasidan olinadi (konfigda6bbbcb4e-...). - POS ekranidagi OTP oynasi. WPF
OtpWindow(CheckCode/CheckCodeClick,CancellationTokenbilan asyncCheckCode) — bir martalik kodni kiritish va uni backendga solishtirib tekshirish. - Chek chiqarishga hook.
OnBeforeOrderBill(BeforeOrderBillga Rx orqali obuna) — chek logikasini kengaytirish/takrorlash:ExtendBillCheque,DuplicatedCheque,RoundChequeNumber,RoundNumberCongratulation(chek raqami "yumaloq" bo'lganda "tabriklash"). - Oshxona "tablosi".
TabloOrder/TabloSplittedOrders,ReturnTabloOrders; yangi buyurtmanihttp://127.0.0.1:12123/new_ordermanzilidagi lokal tabloga yuborish; pishirish statusini boshqarish (Cooking/Cooked,ChangeKitchenOrderItemsProcessingStatus, intervallarDefaultCookedInterval/CookingTimePeriod). - Yetkazib berish/to'lov backendlari bilan integratsiya. DLL ichidagi satrlar:
https://api.choparpizza.uz,https://api.restaurant-chain.uz; sozlamalarYandexPaymentId,EatsApiToken(Yandex Eats to'lovlari/buyurtmalari). - Hajm: baholab bo'lmaydi — git yo'q. Asosiy DLL ~45 KB (SDK atrofidagi ixcham glue-plagin).
§04
Texnik chellenjlar
Faqat assembly/config bilan tasdiqlangan narsalar.
- POS jarayoni ichidagi HTTP server →
System.Web.Http.SelfHost(HttpSelfHostServer+HttpSelfHostConfiguration,MapHttpRoute). Ko'rsatadi: klassik ASP.NET hostlash o'rniga web API'ni begona host jarayoniga (desktop kassaga) joylashtira olish qobiliyati. - Web API pipeline orqali autentifikatsiya → tayyor middleware o'rniga maxsus
DelegatingHandler.SendAsync+ValidateToken. Pattern: Web API pipeline'ini past darajada kengaytirish. - Rx orqali POS hodisa modeli →
OrderChanged/BeforeOrderBillga obunalar (System.Reactive),OnBeforeOrderBilldagi reaksiya. Proprietar SDK'ning reaktiv hodisa oqimlari bilan ishlashni ko'rsatadi. - Maxsus chek logikasi →
BeforeOrderBillni ushlab qolib chekni kengaytirish/takrorlash va raqamni yumaloqlash (RoundChequeNumber). Kassaning fiskal oqimiga domen darajasidagi integratsiya — bu jiddiy va "xavfli" soha (chop etish/cheklar). - Lokal buyurtma navbati/jurnali → "skanerlangan" buyurtmalar upserti bilan SQLite (
UpdateOrInsertScannedOrder/selectLastScannedOrders), kassa va oshxona tablosi orasidagi offline barqarorlik uchun. - Native interop →
SQLite.Interop.dllning x86/x64 uchun alohida buildlari, bu Windows POS muhitida native bog'liqliklarning haqiqiy deploy qilinganini ko'rsatadi.
§05
AI yordamida ishlab chiqish
- Topilgan sessiyalar: 0. Lokal Claude Code sessiyalar katalogida
resto/CustomWebServerga mos keladigan papka yo'q. - AI bilan nima qilingan: ma'lumot yo'q.
- AI-vorkflow patternlari: yo'q.
- Sessiyalar yo'q.
§06
Yutuqlar va metrikalar
Artefakt/config asosida, hech qanday taxminsiz:
- iikoFront POS ning 3+ tashqi tizim bilan integratsiyasi: Restaurant chain (UZ) API, Restaurant chain (UZ) API, Yandex Eats (to'lovlar/buyurtmalar) + lokal oshxona tablosi.
- self-host Web API'da 3 ta ochiq REST endpoint (
GetKitchenOrders,GetOrderById,ReturnTabloOrders). - x86 va x64 native SQLite bog'liqliklarini qo'llab-quvvatlash; ru-RU lokalizatsiyasi.
- iiko SDK V8.7.6032 ga bog'liqlik, target .NET Framework 4.7.2.
- Aniq masshtab metrikalari yo'q (buyurtmalar hajmi, yuklama) — yopiq proprietar kontekst.