...
Accumulation based on a set of infractions (accumulation groups)
e.g., 7.2(b) will result in a 1 game suspension, and 7.3(b) in a latter game will result in an accumulation sanction due to ‘any 2 majors’.
Multiple sanctions may be applied from a single game
e.g., in a fight, player may be assessed 7.10 Fighting Major + GM (1 game) + 7.11(a) Instigator (1 game)
e.g., 7.2(c) in game one results in 1 game suspension, then 7.8(c) in next game results in 3 games under 7.8(c) + 5 games under AS107 which is pending until after the 3 game has completed
Accumulation is per season
Head contact accumulation resets prior to minor championships
🚩 Waiting to confirm if we’re isolating the championship office or setting a reset date for this accumulation group
Penalty in the last 10 minutes or OT, or an injury, can affect suspension severity
These factors do not create multiple suspensions, just a single suspension
Some sanctions are based on if the penalty was incurred pre/post game, or if an injury was sustained
Injury attribute added to penalties; pre/post meta is out of scope initially
Team OfficialsTeam Officials
Team officials may be suspended based on penalty accumulation in the same game
e.g., An official A staff member who’s players accumulate 3 majors in a game will be assessed a 1 game suspension, then 3 games the second game that happens, and an indefinite suspension for the third game it happens
Head coach is suspended by default unless they’re not present, then it would be an assistant coach or manager unless the referee reports otherwise
🚩 Possibly implement this based on the signatory of the lineup?
...
Property | Type | Description | |
---|---|---|---|
id | uuid | ||
sanctionId | id | ||
offense | number | 1, 2, 3… | |
Behaviour | |||
durationType | enum | Definite or Indefinite | |
games | number | Total games required to serve | |
lastMinutesGames | number | Optional - Total games required to serve when end of game or overtime (will hardcode to last 10 minutes for now) (undefined → fall back to totalGames) | |
injuryGames | number | Optional - Total games required to serve when penalty has an injury (undefined → fall back to totalGames) | |
days | number | Optional - Number of days to calculate the expiry date | |
lastMinutesDays | number | Optional - Number of days to calculate the expiry date in the last 10 minutes | |
injuryDays | number | Optional - Number of days to calculate the expiry date when penalty has an injury | |
Accumulation | |||
| enum[] | Optional - Applicable to players or bench staff | |
| Default to 1 | ||
|
|
| |
|
|
| |
|
|
|
Settings Models
OfficeBreak (V2)
Required to define breaks when calculating the suspension expiry date for the season. Could also be used for the scheduler.
...
Property | Type | Description |
---|---|---|
lastMinutesDuration (V2) | number | Number of minutes before the end of the game when Hockey Canada defines this as 10 minutes; QC defines this as 5 minutes |
suspensionActivation | enum |
...
Property | Type | Description |
---|---|---|
id | uuid | |
gameId | id | Game the suspension originated in |
participantId | id | Participant that was suspended |
teamId | id | Team that the participant is suspended in |
penaltyId | id | Penalty that resulted in the suspension |
positionGroup | enum | Position that this participant was suspended in. Player, Staff |
sanctionId | id | Sanction that was determined by the rulebook sanction rules |
|
|
|
durationType | enum | Definite or Indefinite. This is required to be the same as the sanction duration |
requiredGames | number | Number of games required to complete the suspension. Optional when Indefinite duration type, but may be set with it |
expiry | date | Optional - Date when the suspension will expire if the games requirement isn’t met |
status | enum | Pending, Appealed, Active, Completed, Cancelled, Expired |
externalId | uuid | For syncing with Spordle ID |
Legacy suspension options (deprecated) | ||
| enum | Deprecated, replaced by sanctionId |
Suspension Discipline
Property | Type | Description |
---|---|---|
id | uuid | |
suspensionId | id | Suspension |
additionalGames | number | Additional games to the suspension |
durationType | enum | Definite or Indefinite. To allow infinite duration |
status | enum | Pending | Active | Inactive |
comments | string | Comment section to allow the discipline committee to note changes |
reviewedBy | string array | Array of members that reviewed the suspension |
...
Discipline Committee
Status | ||||
---|---|---|---|---|
|
...
As a league administrator, I want to be able to go into a suspension and increase the required number of games.
...
I also want to see a list of all the suspensions that required discipline committee actions.
Migration to add table
Add new model to API (one-to-SuspensionDiscipline Model
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1279 Migration to add table
Add new model to API (one-to-one relation with Suspension)
Need to be able to do an include SuspensionDiscipline when fetching a suspension
Add scope suspension:managementscoresheets:discipline
Adjust purging logic to account for SuspensionDiscipline
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1345 When purging sum
requiredGames
andadditionalGames
If required games is indefinite count as zero when summing
If no required games is indefinite and there aren’t any additionalGames → indefinite suspension
Card to display and edit discipline committee information
In suspension card, show initial games, discipline committee additional games, total games
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1346 Add requireDisciplineCommittee on sanction offense
On create of a suspension off a sanction, if requireDisciplineCommittee is true, create a suspension discipline record with a pending status.
Change “Supplemental” Suspension suspensions to “Manual“
Create SuspensionDiscipline table
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Lineup Status
Status | ||||
---|---|---|---|---|
|
...