name: documents-edge
description: |
  Краевые случаи документов: защита от overselling, запреты на изменение
  проведённых документов, валидация платежей, уникальность штрихкодов
  per-tenant. Это сценарий регрессии для самой опасной зоны — потеря
  денег/остатков при ошибках в RetailSale/Supply посту.

preconditions:
  reset_db: true
  smoke_login_super_admin: true

steps:
  - id: step01_bootstrap
    title: "SuperAdmin создаёт орг Test + admin, делаем product + supply (10 шт по 100 KZT)"
  - id: step02_post_supply_stock_10
    title: "Supply провести: stock=10, ReferencePrice=100, Cost=100"
  - id: step03_oversell_blocked
    title: "RetailSale qty=15 (больше остатка 10), POST /post возвращает 409"
  - id: step04_oversell_stock_unchanged
    title: "После заблокированного post stock остался 10, StockMovement не добавлен"
  - id: step05_payment_mismatch_blocked
    title: "RetailSale с PaidCash+PaidCard не равной Total отвергается на post"
  - id: step06_edit_posted_supply_blocked
    title: "PUT проведённой Supply (Posted) возвращает 409"
  - id: step07_delete_posted_supply_blocked
    title: "DELETE проведённой Supply возвращает 409"
  - id: step08_unpost_negative_blocked
    title: "После Sale qty=5 unpost Supply qty=10 возвращает 409 (stock минус)"
  - id: step09_barcode_unique_within_org
    title: "Дубль штрихкода в одной орге, POST второго product отвергается"
  - id: step10_barcode_per_tenant
    title: "Тот же штрихкод в другой орге допустим (per-tenant unique)"
