...
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 |
...
Implementation
Unhardcoding
Status | ||||
---|---|---|---|---|
|
...
When the game is completed (or certified, depending on settings), get all sanctions for the schedule office
Find matching sanctions based on the sanction members that match the penalties
Find all past penalties and suspensions of all suspend-able players in the same season
In soccer, limit both to same office
Determine the sanction(s) based on the accumulation rules
Sanctions with higher priority cancel out lower priority sanctions
All sanctions are added unless there is an exclusive sanction
Suspension length will be defined as a sum of totalGames, endGames and injuryGamesgames or lastMinutesGames with injuryGames has additional games.
endGames is only applicable when the penalty is in the last 10 minutes (per office settings)
injuryGames is only applicable when the penalty is marked as injured
When creating the suspension, send a notification to the player, team officials and office admins (except player, will be based on notification setting)
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1285 Add ability to deactivate suspensions
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1336
Discipline Committee
Status | |
---|---|
|
...
|
...
|
League administrators may add additional suspensions go into the suspension to increase the required number of games and expiry date. This does not affect the automatic game suspension.If a suspension has the Appealed status, it is not effective. The automatic game suspension is not affected.
Change “Supplemental” Suspension to “Manual“
Create SuspensionDiscipline table
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:management
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 discipline committee information
In suspension card, show initial games, discipline committee additional games, total games
Lineup Status
Status | ||||
---|---|---|---|---|
|
...