food-market/src/food-market.api/Controllers
nns 18eb362702 feat(api): super-admin endpoints (orgs CRUD + setup-status + audit-log + dashboard)
SuperAdminOrganizationsController (/api/super-admin/organizations):
все методы используют IgnoreQueryFilters() для обхода tenant-фильтра.
- GET / — таблица с пагинацией, фильтр archived, поиск по Name/Bin,
  возвращает счётчики (employees, products) + last login по users.
- GET /{id} — детали + статистика (employees, products, counterparties,
  supplies за 30 дней) + AccountOwner данные.
- POST / — создание орга вместе с админом: Org + Store «Основной» +
  EmployeeRole «Администратор» (IsSystem) + AppUser (random temp pwd
  возвращается один раз) + Employee. Owner = созданный AppUser.
- PUT /{id} — правка базовых данных, лог EditOrg с before/after.
- POST /{id}/archive — требует ConfirmationName == Org.Name (ввод).
- POST /{id}/restore — снять архив.
- DELETE /{id} — только если в архиве >30 дней + повторное подтверждение.
- POST /{id}/change-owner — Reason обязателен, валидируем что user
  принадлежит этой орге, лог ChangeOwner с from/to.

Все мутации пишут запись в SuperAdminAuditLog с ActionType,
Description, Reason, ChangesJson, IpAddress, SuperAdminUserId.

SuperAdminController (/api/super-admin):
- GET /setup-status — нужен ли wizard? (OrgCount == 0).
- GET /dashboard — total/active/archived orgs, users, products, supplies/month.
- GET /audit-log — фильтры organizationId/actionType/from/to + paged + join
  на orgs для имени.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 12:54:07 +05:00
..
Admin fix(other-system/test): сделать Token опциональным 2026-04-24 00:25:24 +05:00
Catalog feat(product-card+list): drop supplier field, reorder sections, add cost column 2026-04-26 02:13:57 +05:00
Inventory feat(tables): server-side sort by column header click 2026-04-24 12:24:05 +05:00
Organizations feat(employee): add Salary, TaxNumber, Description, ImageUrl + radio role picker 2026-04-26 12:48:27 +05:00
Purchases fix(supply-lines): show both article and barcode in line subtitle 2026-04-26 03:03:43 +05:00
Sales feat(org-settings): AllowFractionalPrices — переключатель дробных цен 2026-04-25 12:21:04 +05:00
SuperAdmin feat(api): super-admin endpoints (orgs CRUD + setup-status + audit-log + dashboard) 2026-04-26 12:54:07 +05:00
AuthorizationController.cs Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00