SPR-742 Competitions

https://spordle.atlassian.net/browse/SPR-742

Play and SID both handle leagues and tournaments as a type of office/organisation, which are already synced.

Management of participating associations and teams has been added to SID, which needs to be synced to Play. Once synced, the only thing necessary to manage in Play are the games.

Requirements

Expectation is that users follow this process to create a league/tournament:

  1. SID: Create a league/tournament, sync to Play (done)

  2. SID: Add organisations to the league/tournament, sync to Play (missing)

  3. SID: Create competitions, sync to Play as schedules (missing)

  4. SID: Add teams to the competition, sync to Play (missing)

  5. Play: Create games (done)

Models

SID API

SID properties

Play Model

Notes

SID API

SID properties

Play Model

Notes

affiliated-organisations

  • affiliated_organisation_id

  • linked_organisation_id

  • period_id

  • division_id

  • team_category_id

OfficeMember

  • Add seasonId, categoryId, externalId

  • Rollover?

competitions

  • name

  • organisation_id

  • period_id

  • division_id

  • team_category_id

  • start_date

  • end_date

Schedule

  • Identical

  • Dates will be required in SID next season

  • Add externalId

competition-teams

  • competition_id

  • team_id

ScheduleTeam

  • Identical

  • Add externalId

UX

Arrive in Play, all you need to do is create games. ✨

Do we rename schedules to competitions for consistency?

How to determine when to limit member/schedule/team creation in Play? Should this be an office flag?

Implementation

OfficeMember

https://spordle.atlassian.net/browse/SPR-755

  • OfficeMember: Add seasonId, categoryId

    • This has a similar problem with roster members as SID has a member per position, where Play groups as an array, so we need multiple rows to track the externalId correctly and figure out the UX

  • Authorization will be affected by seasonId/categoryId change

Webhooks

https://spordle.atlassian.net/browse/SPR-1308

https://spordle.atlassian.net/browse/SPR-1309

https://spordle.atlassian.net/browse/SPR-1310

https://spordle.atlassian.net/browse/SPR-1311