Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note that the office configuration of these rules is out of scope and covered in separate epic document.

Requirements

  • Custom positions (League sets assigner determination. Assigners would have access to their games even if they’re onboarded late

  • Assigners can add any amount of positions arbitrarily (not limited to systems) and use any custom created position (Referee 1, Referee 2, Scorekeeper Supervisor, Video Official, etc)

  • Ability to change the set of positions for a game arbitrarily based on needs

  • Improve delegation support

  • Ability to simply change assign fees mid-seasonDelegation is a first-class feature, not an after-thought. Primary assigner remains assigned to the game and is able to delegate and redelegate positions as they need.

  • Base fees for an official can be independently set of other officials

Models

AssignRule

Deprecated - Out of scope for this epic

AssignSystem

Deprecated - Out of scope for this epic

AssignFee (Pay Structure)

Deprecated - Out of scope for this epic

GameAssignSettings

...

All other properties deprecated as they’re moved onto GameOfficialSettings

Property

Type

Description

gameId

id

officeId

id

Primary assigner. This is based on assigner determination settings.

GameOfficial

Two properties deprecated: officeId, feesId

GameOfficialSettings (or

...

GameAssignment?)

Property

Type

Description

id

uuid

Currently the API generates a random UUID when a position is unassigned, so this would take place of that when assigning an official. This id will be a relation to the GameOfficial id.

This behaviour will also be super convenient for migration.

gameId

id

positionId

id

OfficialPosition

officeId

id

Primary assigner. This is based on assigner determination settings.

delegatedOfficeId

id

Delegated assigner; optional.

Office responsible for assigning the position

When a game is delegated, the office of the primary assigner will remain the assigner with continued rights to settingsGameAssignSettings will retain access to all assignments, but the delegated assigner will gain the ability to assign the game and the list of officials will be based on the delegated assigner.this office.

positionId

id

OfficialPosition

minLevel

number

Optional

minGrade

number

Optional

This may become deprecated if we move forward on attribute requirements.

minAge

number

Optional

amount

decimal

Optional

This would’ve previously been an assign fee ID, but it makes more sense to just have a direct amount on the official settings to limit complexity.

status

enum

Active | Draft

...

This also provides a lot of new flexibility to modify the requirements per assignment. If an assigner wanted to increase the base rate for one official they would be able to do so (although this is moot with transaction types).

...

Primary and delegated assigner

When resolving assigner determination, GameAssignSettings are created with the officeId, which indicates the main assigner responsible for the game. Once that is set, the requirements determination is resolved to create GameOfficialSettings for each required position, and the officeId of those default to the main assigner.

Delegation is moved out of scoresheet into the new official settings model.

With this approach we don’t have to compare two different models to figure out the position fee, and it’ll be easier to update the fee in bulk when necessary.

Primary Assigner 🚩

Notably there are two offices on the assignment settings. This is to allow a primary assigner to change the delegate and oversee that the assignment does actually get assigned instead of losing access to it.

This may trade one problem for another as a potential solution to solve the onboarding problem is no longer valid now that GameAssignSettings is deprecated since all of it’s properties are moved onto the GameOfficialSettings and would only leave the office property. This approach has a problem when there are no positions determined.

...

Keep the GameAssignSettings to manage the office and always be able to manage positions. This seems excessive unless we have additional game-level settings we could introduce. That could complicate things with office assign settings though.

...

GameOfficialSettings model, which the main assigner can change at any time, or the delegated office can change for their official (and would lose access immediately afterwards).

Officials available to the assigner (and games available to the official) are based on the GameOfficialSettings only. Transactions use this office as well by default, unless a new setting is activated to be paid by the main assigner.