β
OpenAPI kontrakt β 04_employees (muzlatish)
V19 β `professions` + `variant_operations.profession_id` FK (EP-02 dan qolgan uch)
`ProfessionService` β CRUD, nom normalizatsiyasi, `active` toggle
`EmployeeService` β atomik yaratish (akkaunt ixtiyoriy + β₯1 kasb + maosh sharti)
`WageAccrualService` β Β§6.1 formulasi, snapshot, agregat qulfi
V20 β `employees` + `employee_professions`
`ProfessionController` β REST + RBAC (`profession.manage`)
Kasb biriktirish / olib qo'yish (`employee_professions`)
`WageAccrualPort` β 07_tasks hook'i + idempotentlik
V21 β `profession_norms` + `profession_norm_logs`
02_products qoldig'i β qoida 26d validatsiyasi + `professionName` javobda
Holat mashinasi (Β§4) + 09_auth akkaunt sinxroni (bir tranzaksiyada)
Payroll o'qish API β hodim Γ davr + mobil `/me/payroll/*`
V22 β `employee_salaries` + `employee_salary_logs`
`EmployeeController` β REST + RBAC + ro'yxat/qidiruv
Accrual test to'plami β Β§6.1 misoli, chegara holatlari, konkurentlik
V23 β `wage_entries` (insert-only accrual ledger)
`AudienceOwnershipPort` β `employee` va `driver` (09_auth R53)
`ProfessionNormService` β belgilash/o'zgartirish + `profession_norm_logs`
`EmployeeSalaryService` β set/update + `employee_salary_logs`
API klient + tiplar + Pinia store (professions, employees)
Normativ ekrani β variant marshruti bo'yicha norm + ishbay stavka
API klient + freezed modellar (payroll summary/entries)
Yangi resept versiyasida normativni avto ko'chirish + aktivatsiya to'liqligi (02 qoida 27)
RBAC maskalash β `employee_salary.view` bo'lmasa maosh javobda YO'Q
Kasb lug'ati ekrani β CRUD, `is_picking`/`is_driver`, `active` toggle
Maosh paneli β belgilash/o'zgartirish + tarix (RBAC bilan)
"Mening ish haqim" ekrani β bugungi/oylik jami, bonus, normativ progress
`ProfessionNormController` β REST + marshrut kesimida o'qish
Hodim ro'yxati β filtr, qidiruv, holat ustuni
Payroll ko'rinishi β hodim Γ davr (accrual, bonus ulushi)
Rol tanlash oqimi β *Hodim*/*Haydovchi* login va `403 audience_mismatch` matni
Hodim kartasi β atomik yaratish/tahrir + holat amallari
Kartani ustundan ustunga sudrab statusni o'zgartiring. Ruxsat etilmagan o'tish rad etiladi.