Improve behavior of AutomationChecks for MatchScore, Game, and Match:
Add a RejectionReason enum for all three AutomationChecks. e.g. MatchScoreAutoRejectReason, GameAutoRejectReason, and MatchAutoRejectReason.
Have each automation check method return a RejectReason enum instead of a bool field, then union these enum values together into a distinct bitwise flag that contains all of the information.
Refactor
[ ] Rename ScoreAutomationChecks to MatchScoreAutomationChecks
[ ] Refactor AutomationChecksTests out into multiple classes (Match, Game, and MatchScore).
[ ] Modify existing unit tests to match new desired behavior (before developing the new behavior).
Logic
[ ] Introduce MatchScoreRejectionReason enum with [Flags] attribute, with the following fields:
[ ] For each AutomationChecks type, for each method within, return the new enum instead of bool in all public functions.
[ ] The PassesAutomationChecks function should return the new enum type instead of a bool.
[ ] This field should be stored in the database for each type.
[ ] Whenever new automation checks are processed, ensure the appropriate record is stored in the database under a field called {type}_auto_reject_reason.
[ ] Ensure rejected items are NOT returned from the API when match/tournament data is requested. Perhaps we need a dedicated query parameter which explicitly excludes rejected data, rather than including it with a rejection reason.
Objective
Improve behavior of AutomationChecks for
MatchScore
,Game
, andMatch
:RejectionReason
enum for all threeAutomationChecks
. e.g.MatchScoreAutoRejectReason
,GameAutoRejectReason
, andMatchAutoRejectReason
.RejectReason
enum instead of abool
field, then union theseenum
values together into a distinct bitwise flag that contains all of the information.Refactor
ScoreAutomationChecks
toMatchScoreAutomationChecks
AutomationChecksTests
out into multiple classes (Match
,Game
, andMatchScore
).Logic
MatchScoreRejectionReason
enum with[Flags]
attribute, with the following fields:AutomationChecks
type, for each method within, return the newenum
instead ofbool
in all public functions.PassesAutomationChecks
function should return the newenum
type instead of abool
.{type}_auto_reject_reason
.