Refactor bracket validation logic to support draft state
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
CI / compose (push) Has been cancelled

This commit updates the bracket validation process by introducing a new `ValidateDraft` method, allowing for incomplete edits in the draft state. The existing `Validate` method has been modified to enforce complete validation only upon confirmation. Additionally, new tests have been added to ensure that incomplete drafts are accepted until confirmation, while still rejecting invalid references. Documentation has been updated to reflect these changes in the API and architecture.
This commit is contained in:
2026-07-19 13:43:25 +03:00
parent 6b189bfce4
commit a311b7761d
6 changed files with 53 additions and 7 deletions

View File

@@ -90,7 +90,7 @@ Mixmaker является источником истины только для
### Tournament
Versioned граф матчей, в котором каждый слот ссылается на конкретную Team либо Winner/Loser матча из предыдущей колонки. Готовые зависимости материализуются в отдельные Bo3-серии автоматически; несколько готовых матчей могут идти параллельно. Последняя колонка содержит один матч, победитель которого становится общим победителем. Для трёх команд стартовый шаблон проводит `AB`, затем `Loser(M1)C`, затем финал победителей первых двух матчей.
Versioned граф матчей, в котором каждый слот ссылается на конкретную Team либо Winner/Loser матча из предыдущей колонки. Во время редактирования сохраняются промежуточные состояния с пустыми слотами, повторяющимися командами и несколькими матчами в последней колонке; полные инварианты применяются при подтверждении сетки. Готовые зависимости материализуются в отдельные Bo3-серии автоматически; несколько готовых матчей могут идти параллельно. Подтверждённая последняя колонка содержит один матч, победитель которого становится общим победителем. Для трёх команд стартовый шаблон проводит `AB`, затем `Loser(M1)C`, затем финал победителей первых двух матчей.
## Правила текущего регламента