food-market/src/food-market.infrastructure/Persistence
nns 1d9fd7297c fix(roles): keep only Admin + Cashier as system, demote others to custom + migration
После ревью UX оказалось что 6 системных ролей — перебор. Перешли на
схему «два системных + остальные шаблоны»:

- Администратор (IsSystem=true) — RolePermissions.All().
- Кассир (IsSystem=true) — POS-only набор:
  ProductsView + StocksView + RetailSalesOperate. Без RetailSalesRefund
  (админ включит при необходимости). Это маркер для будущего POS-app —
  не имеет доступа к веб-админке.
- Менеджер / Кладовщик / Закупщик / Бухгалтер — IsSystem=false
  (кастомные). Можно удалить если не нужны или подкрутить под себя.

Сидер на чистой БД сразу создаёт роли в правильных статусах. Для
существующих установок миграция Phase4b_RolesSimplify идемпотентно
делает UPDATE: демоутит лишние и приводит permissions Кассира к
правильному набору. Down() — no-op (юзер мог переименовать).

На стенде sql применил вручную + записал в __EFMigrationsHistory.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 12:41:13 +05:00
..
Configurations feat(domain): Employee, EmployeeRole, RolePermissions entities + migration 2026-04-26 12:00:30 +05:00
Migrations fix(roles): keep only Admin + Cashier as system, demote others to custom + migration 2026-04-26 12:41:13 +05:00
AppDbContext.cs feat(domain): Employee, EmployeeRole, RolePermissions entities + migration 2026-04-26 12:00:30 +05:00
DesignTimeAppDbContextFactory.cs Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00