# Design: Inventory (Vestimentație & Echipament) **Date:** 2026-05-12 **Scope:** Полноценный модуль склада инвентаря для HR Medpark — заменяет свободные текстовые ID в `Benefit` на FK к таблице `InventoryItem`. --- ## 1. Goal В разделе «Beneficii» сотрудника поля «Uniformă / Halat / Ciupici / Vestă / Aparat telefon» сейчас хранятся как свободный текст (`uniformaId String?`). По ТЗ (Rubrici necesare, B121-B131 — «info de la depozit») это должна быть выдача со склада с учётом остатков. Модуль `Inventory`: - Реестр товаров склада (SKU, наименование, тип, размер, цвет, цена, остаток). - CRUD для `hr_admin`, read для `hr_specialist`. - В `BenefitDrawer` — ``, ``, search (SKU+name) - Кнопка «Adaugă articol» → drawer - Highlight: `stockQty === 0` → red row, `stockQty < 5` → amber - Click row → drawer для редактирования ### Drawer (CRUD) - Поля: SKU, Denumire, Tip (select 6), Mărime, Culoare, Preț unitar (MDL), Stoc inițial, Active toggle - Валидация: SKU unique (handled на бэке), name required ### `/inventory/:id` — Stock adjust modal - Открывается из строки таблицы или drawer - Inputs: delta (число с +/-), reason (textarea) - Audit log пишется обязательно ### Изменения в `BenefitDrawer.tsx` - Заменить 5 `` (uniformaId, halatId, ciupiciId, vestaId, aparatTelefonId) на `