name: employees
description: |
  Сотрудники (ТЗ 2.7.1): CRUD, создание учётки с временным паролем,
  двухступенчатое удаление (увольнение → soft-delete), защита главного
  администратора и самого себя, tenant-изоляция. Критично (ТЗ 0.4):
  уволенный/удалённый сотрудник НЕ должен иметь возможности залогиниться —
  состояние Employee.IsActive обязано гасить логин связанного User.

preconditions:
  reset_db: true
  smoke_login_super_admin: true

steps:
  - id: step01_bootstrap
    title: "Орг A + логин админа + выбор не-админской роли"
  - id: step02_create_without_account
    title: "Создание сотрудника без учётки (createAccount=false) → UserId=null"
  - id: step03_create_with_account
    title: "Создание сотрудника с учёткой → temp password в ответе, User создан"
  - id: step04_email_required
    title: "createAccount=true без email → 400"
  - id: step05_duplicate_email
    title: "Дубль email при createAccount → 4xx"
  - id: step06_account_can_login
    title: "Новый сотрудник логинится временным паролем → 200"
  - id: step07_fire_blocks_login
    title: "Увольнение (DELETE) гасит логин: повторный login и refresh → 4xx"
  - id: step08_two_step_delete
    title: "Второй DELETE → soft-delete (IsDeleted), третий → 409"
  - id: step09_owner_self_protected
    title: "DELETE главного администратора (он же self) → 403"
  - id: step10_tenant_isolation
    title: "Админ орг A не видит и не удаляет сотрудника орг B → 404"
