Constraints
Assigners may prevent officials from declining games
Minimum decline hours may have an effect on declining games
Assigners can require consecutive games to be accepted/declined as one
Consecutive counts as:
Same assigner
Any surface (including other venues)
Within 1 hour window (should this be configurable?)
Accepting Assignments
Validate against all assignments in that day
If there are overlapping assignments
If the assignment cannot be declined → prevent accept (until removed from overlap by assigner)
If there are consecutive assignments required
If consecutive assignment cannot be accepted → prevent accept
If the consecutive assignment was declined → prevent accept
Decline any overlapping assignments, including assignments that are required consecutive and cannot be accepted otherwise
Accept the assignment and any required consecutive assignments
Declining Assignments
Validate against all assignments in that day
If the assigner has disabled declines → prevent decline
If the assignment is within the minimum hours → prevent decline
If there’s an overlapping assignment → doesn’t matter
If there’s a consecutive assignment that cannot be declined → prevent decline
Decline the assignment and any required consecutive assignments