food-market/src/food-market.domain
nns f38d34f42d feat(domain): Employee, EmployeeRole, RolePermissions entities + migration
Базовый каркас модуля «Сотрудники и Роли» (по образу сторонняя система):

Domain:
- Employee — сотрудник организации (UserId nullable: запись может
  существовать без логина), ФИО + Position + Email/Phone + Role + IsActive
  + FiredAt + RetailPointAssignments.
- EmployeeRole — роль с IsSystem флагом и owned RolePermissions.
- RolePermissions — 21 булев флаг по группам (Каталог/Закупки/Продажи/
  Контрагенты/Отчёты/Настройки) + helper All() для админа.
- EmployeeRetailPointAssignment — ассоциация сотрудника с RetailPoint
  (для роли Кассир — к каким кассам привязан).

Infrastructure:
- OrganizationsHrConfigurations с OwnsOne(...).ToJson("permissions")
  для permissions — JSONB-колонка вместо отдельной таблицы.
- DbSet<EmployeeRole/Employee/EmployeeRetailPointAssignment>.
- Уникальные индексы: (OrgId, RoleName), (OrgId, UserId) с filter
  WHERE UserId IS NOT NULL, (EmployeeId, RetailPointId).

Migration Phase4_EmployeesAndRoles создаёт три таблицы. Сидер
системных ролей и привязка существующего admin'а к Employee —
следующим коммитом, контроллеры и UI — далее.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 12:00:30 +05:00
..
Catalog feat(product-card): drop ShelfLifeDays + recompose classification + auto-article + barcode trash hide 2026-04-26 00:50:05 +05:00
Common Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00
Inventory phase2a: stock foundation (Stock + StockMovement) + OtherSystem counterparty import 2026-04-22 00:51:07 +05:00
Organizations feat(domain): Employee, EmployeeRole, RolePermissions entities + migration 2026-04-26 12:00:30 +05:00
Purchases phase3b: product card cleanup + supply form simplification 2026-04-26 01:00:06 +05:00
Sales phase2c: RetailSale document — посты в stock как минусовые движения 2026-04-22 16:07:37 +05:00
food-market.domain.csproj Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00