Logical Model¶
This is the logical model, from the perspective of the Parks System.
(blue classes already exist, green ones are new)
- Bookable Thing
- The thing which is booked… Deliberately generic.
- Park
- Parks Australia is a coalition of separate organisations called Parks…
- Delivery Org
- Somebody is responsible for delivering the Bookable Thing. In the current project, this is a small team within Parks Australia (the education officers for ANBG) however in theory it could also be a commercial tour operator. The Parks Staff who confirm or deny pending bookings are in this org. They are also the BCE system users that manage bookings directly in BCE and configure bookable education experiences in BCE.
- Availability
- This is a slice of time when a particular the Bookable Thing may be booked. The Delivery Org members create these (using some kind of calendar interface). when they plan to have the bookable thing available. They are negated by bookings.
- Agent
- In the current project, the only Agent is BCE. Agents make tentative Bookings, which may be confirmed or denied by the Delivery Org.
- Customer
- The party on who’s behalf the booking is made. i.e. the School (or teacher).
- Booking
- An appointment to use the Bookable Thing. Made by an Agent on behalf of a Customer.
booking statechart¶
Note that the booking has a status attribute. This will have one of the following 6 values:
light green: Only the Delivery Org can do this.
light blue: Agents can do this.
orange: Agents or Delivery Orgs can do this.
yellow: Agents or Delivery orgs can do this, with conditions.
Note about organisations¶
In the existing Parks Australia system, we have users who belong to organisations.
Some organisations are part of a park, other organisations are independent (i.e. commercial partners of the parks). We call these independent organisations CTOs (Commercial Tour Operators) or RSAs (Retail Sales Agents). In practice, CTOs and RSAs are typically associated with one part, but some of the larger ones operate across multiple parks.
CTOs have a Commercial Permit to operate tours in the park. Logically, Commercial Tours are bookable things too. So we actually have two kinds of bookable things, Park Bookables (where the park team is the delivery org) and Partner Bookables (where the CTO is the delivery org).
Note how the Commercial Permit has a validity period. This means we can limit the CTO from creating availabilities outside the validity period of their Commercial Permit(s).