judging: implement judging phases
This MR unifies different controls into a single table for determining which Judging Phases the competition is at. Moving it to a single service will simplify multiple implementations (currently using feature flags, KVS, entities), and also assert the system evolves in a safe manner (e.g., we cannot start voting before the assignments have been made).
This is a pre-work in order to implement the Ratification sub-module.
BE for websites/root!755 (merged)
Summary by CodeRabbit
-
New Features
- Introduced functionality to manage judging phases for competitions, including checking status, retrieving details, and handling phase transitions.
- Enhanced competition creation to include author details and event emission.
-
Bug Fixes
- Improved error messages for competition status assertions.
-
Tests
- Added testing for judging phase functionalities, including assertions for phase status and handling commands like opening and closing phases.
Edited by Fabio Maschi