Domain - AstroBookings/.github Wiki

🖼️ Astro Bookings Domain Model

Starting with the letters with requirements received from Astro Bookings department managers, we performed an online event storm with all of them.

After that meeting, we could distill the problem space as lists of knowledge items.

See the Event Storm diagram below 👇 or here at full screen

🌩️ Events (🟧 Domain Events)

  • Operator affiliated by Agency
  • Trip offered by the Operator
  • Trip promoted by Agency email to VIP Traveler
  • Trip published on web by Agency
  • Traveler registered
  • Booking solicited by Traveler
  • Availability verified by Operator
  • Booking paid by Traveler
  • Booking reserved by Operator
  • Booking confirmed to Traveler
  • Booking annulled by Traveler
  • Booking refunded to Traveler
  • Booking released by Operator
  • Trip canceled by the Operator
  • Cancellation notified to Traveler
  • Fee charged to Operator

📋 Processes (🟨 Actors & 🟦 Commands)

  • Offer Trip by Operator
  • Promote Trip to every VIP Traveler by email
  • Publish Trip offer on the web
  • Solicite Booking by the Traveler
  • Ask for Booking availability to the Operator before confirm
  • Charge Booking price to the Traveler before confirm
  • Reserve Booking with the Operator
  • Notify Booking confirmation to the Traveler
  • Annulate Booking with Operator
  • Refund Booking price to the Traveler after annulation
  • Cancel Trip by Operator
  • Notify Trip cancellation to any Traveler by email
  • Refund Booking price to the Traveler after cancellation
  • Send Trip management Fee to Operator
  • Mark a Traveler as a VIP Traveler
  • Mark an Operator as Loyal Operator

📒 Concepts (Ubiquitous language)

  • Annulation the traveler do not want to take the trip
  • Availability remanent seats or beds on a trip
  • Agency AstroBookings, the e-commerce intermediary
  • Booking a reservation to trip for one or more passengers
  • Cancellation the trip will not take place
  • Fee our charged commission
  • Loyal Operator an operator that offered more than 10 trips
  • Operator a company that offers trips
  • Passenger someone that travels
  • Ticket a passenger pass
  • Traveler someone who books a trip
  • Trip a journey with flight and optionally staying nights
  • VIP Traveler a traveler that already booked more than 2 trips

👩‍⚖️ Rules

  • The first 10 trips offered by an operator are charged 1% of what travelers paid
  • Next trips are charged 0.5% of what travelers finally paid
  • Bookings made before public offer have a 10 % discount
  • Travelers can annulate bookings as whole
  • Travelers bookings annulations are charged based on time to launch
  • Any traveler can book tickets up to 4 passengers per trip
  • VIP travelers can book tickets up to 6 passengers per trip
  • Any traveler with more than 2 booked trips is considered a VIP
  • Operators can cancel trips and refund full payments to travelers
  • Operators are charged 50% of usual fees when canceling a trip
  • Loyal Operators are not charged on the trip cancellation
  • All payments and refunds will me managed by the agency

Event Storm diagram

⚠️ ** Fallback** ⚠️