...
Accumulation properties specify when the Sanction
is applicable and behaviour properties specify what the resulting Suspension
will be defined as.
Any sanction within the same sanction group counts as an offence. Ex. the second sanction you get within the group results in Offence #2.
Blue properties to be added with automation.
Property | Type | Description |
---|---|---|
id | uuid | |
seasonId | string | 2024-25 |
name | string | With i18n |
i18n | jsonb | |
code | string | Usually the rule number or an accumulation code |
officeId | id | |
parentId | id | Optional - To override parent sanctions |
sectionId | id | Physical Fouls |
externalId | uuid | For syncing with Spordle ID |
Accumulation | ||
positionGroups | enum[] | Optional - Applicable to players or bench staff |
accumulationCount | number | Default to 1 |
...
SanctionMember
These are the list of rule options that are part of the accumulation group. Order is not significant; any member infraction counts towards the accumulation group.
...
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 | |
injuryMinutesDays | 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 |
...
Implementation
Unhardcoding
Status | ||||
---|---|---|---|---|
|
...