β
OpenAPI kontrakt β 01_suppliers (muzlatish)
`suppliers` + `supplier_contracts` jadvallari va cheklovlari
Ta'minotchi yaratish β anketa + `supplier_contracts` v1 avto-seed (atomik)
Hamkor login berish/uzish (`supplier.manage_credentials`)
`supplier_documents` jadvali + soft-delete
Ta'minotchi ro'yxati / kartochka / tahrir
`AudienceOwnershipPort` β supplier implementatsiyasi (stub o'rniga)
`active` toggle β mobil kirish va yangi fakturaga biriktirish cheklovi
Yangi versiya yaratish (atomik `replaced` β `active`) + cache sinxroni
Hujjat yuklash (R42 proxy) + ro'yxat
Ta'minotchilar ro'yxati β filtr, qidiruv, sahifalash
Shartnoma versiyalari β tarix + yangi versiya + PDF
Login `audience='supplier'` + o'z anketa/shartnomasini ko'rish
V13 β `supplier_change_proposals` + `supplier_contracts` +2 ustun
Hamkor: faol shartnomani tasdiqlash (ownership, idempotent)
Seed'dagi `viewer` NOT IN ro'yxatiga 4 kod qo'shish
Shartnoma PDF β R42 proxy yuklash + imzolangan havola
Hujjatni ko'rish (imzolangan havola) + soft-delete
Yaratish/tahrir formasi + `active` toggle
Yuridik hujjatlar β yuklash / ko'rish / o'chirish
Anketa/shartnoma tasdiqlash + tahrir taklifi yuborish (hamkor)
Rule seed β `supplier_contract.review_proposal`
Hamkor: tahrir taklifi yuborish (oq ro'yxat, bitta ochiq taklif)
Xodim: takliflar ro'yxati + qabul/rad (atomik v(N+1))
Takliflar ro'yxati + diff ko'rinishi
Qabul / rad amali + natijani ko'rsatish
Kartani ustundan ustunga sudrab statusni o'zgartiring. Ruxsat etilmagan o'tish rad etiladi.