کلاینت Kotlin
SDK تولیدشدهٔ Kotlin فقط لایهٔ HTTP و DTO است: مسیرها در apis/، مدلها در models/ و زیرساخت Ktor در infrastructure/. نشست، outbox و cursor جزو SDK نیستند و در لایهٔ دادهٔ اندروید مدیریت میشوند.
خروجی در apps/mobile/core/network/src/commonMain/kotlin/ir/taghvimam/api/ قرار دارد.
بازتولید
فایل تولیدشده را دستی ویرایش نکنید. هر تغییر قرارداد از packages/contracts/src/ شروع میشود. برای بازتولید، با Node 22 و pnpm مخزن و JDK 21 از ریشهٔ repo:
pnpm install --frozen-lockfile
export JAVA_HOME=$(/usr/libexec/java_home -v 21) # در macOS؛ در Linux مسیر JDK 21 را بگذارید
./scripts/gen-kotlin-client.sh
اسکریپت زنجیرهٔ contracts → OpenAPI → Kotlin multiplatform را اجرا و اصلاحهای لازم serializer را اعمال میکند. نسخهها عمداً قفلند: CLI نسخهٔ 2.20.2 در package.json و generator نسخهٔ 7.25.0 در openapitools.json؛ npx …@latest جایگزین آنها نیست. CI در kotlin-client.yml اختلاف OpenAPI/SDK با خروجی بازتولید را رد میکند.
استفاده
متدهای واقعی مسیرهای sync در apis/SyncApi.kt:
getSyncChanges، postSyncPush، getSyncConflicts و postSyncConflictsByIdResolve — همه با خروجی HttpResponse<…>.
برای نحوهٔ فراخوانی، transport موجود در core/data/…/sync/SyncTransport.kt را الگو بگیرید؛ قواعد payload، نسخهها و سرصفحهٔ پروتکل در همگامسازی آمده است. توجه: موفق کامپایل SDK بهتنهایی سازگاری رفتاری با سرور را ثابت نمیکند — سناریوی واقعی را با API آزمایشی اجرا کنید.