Files
court-pilot/docs/domain-glossary.md

62 lines
3.0 KiB
Markdown

# Domain Glossary
This document records confirmed Court Pilot terminology and business rules. Agents must preserve these invariants and ask before defining additional rotation behavior.
## Confirmed terms
### Court official
A person maintained in the application roster. The persistence type is currently named `Umpire`, while parts of the UI use the broader label “Court Official.” A record contains first name, last name, country, and gender.
### Umpire
The primary official assigned to a court. An official can wait in the umpire queue, be assigned to a court as umpire, or be off duty.
### Service judge
An optional second role on a court. Service-judge behavior can be enabled or disabled globally in settings. The same official records are used for both umpire and service-judge roles.
### Court
A numbered play area. Courts are generated from `1` through the configured `numberOfCourts`; the default is five.
### Waiting queue
An ordered FIFO list of officials awaiting assignment. Umpires and service judges have separate queues and numeric order values. The lowest `order` value is assigned next. Officials may be reordered with drag and drop.
### Not on duty / rest
An official who is not found in either waiting queue or in either kind of court assignment. The code derives this state rather than persisting it separately.
### Send to court
Assign the first eligible waiting official or officials to a selected court. With service judges enabled, one official is taken from each role-specific queue.
### Remove from court
Remove assigned officials from a court and return them to waiting duty. With service judges enabled, roles intentionally swap when re-queuing: the prior service judge enters the umpire queue and the prior umpire enters the service-judge queue.
## Domain invariants
- “Court official” is the umbrella term; “umpire” and “service judge” are roles.
- Every official must be in exactly one state: not on duty, one waiting queue, or one active court role.
- An official must never occupy multiple queues or assignments at the same time.
- Queue assignment is FIFO by numeric `order`; the lowest value is next.
- Removing a court assignment with service judges enabled swaps the officials' role queues.
- Reducing `numberOfCourts` removes assignments above the new court count. Those officials become not on duty; they are not automatically added to a waiting queue.
## Current settings
- `numberOfCourts` — number of numbered courts shown
- `withServiceJudge` — whether service-judge assignments are active
- `showAlert` — whether quick court actions require confirmation
- language — stored separately in local storage; currently English or Hungarian
## Still-undecided behavior
Ask the maintainer before a task depends on any of these questions:
1. How should malformed queue data—duplicate or conflicting order values—be repaired?
2. Are gender and country free-form values, fixed choices, or governed by tournament data?
3. Will Court Pilot continue to manage one tournament/session at a time, or support multiple events later?