Skip to content

Ubiquitous Language

Italo Pessoa edited this page May 20, 2024 · 4 revisions

Entities

  • Customer Aggregate

    • Person that can place an order on the system, they can self Identity or not, registration is also optional
    • A customer can have CPF (required), Name and E-mail, the last ones are optional
  • Order Aggregate

    • Has an unique identifier
    • Has an property to inform creation date
    • List of items (Products) selected by customer
    • An order must have at least one item
    • The order status will change as it moves through the kitchen until it gets delivered to the customer
  • Product Aggregate

    • Has an unique identifier
    • Has an property to inform creation date
    • Name
    • Description
    • Category
    • Price
  • Payment Aggregate

    • Transaction that can confirm or not that an order can be sent to prepare.
    • Has an unique identifier
    • Link for QR Code used on payment

Value Objects

  • Cpf

Actors

  • Customer
    • Restaurant customer
  • Customer Care Assistant
    • Employee responsible for delivering the Order and Managing Products list
  • Cooker
    • Employee responsible for preparing the Order and update its status accordingly

Commands

  • Create Order
  • Cancel Order
  • Change Order status
  • Confirm Order
  • Checkout Order
  • Send Notification
  • Approve Payment
  • Reject Payment
  • Select Product
  • Register User
  • Find User
  • Register Product
  • Delete Product
  • Update Product
  • List Products
  • List orders
  • Add Meal
  • Add Sides
  • Add Drink
  • Add Dessert

Events

  • Customer Registered
  • Order Created
  • Order Cancelled
  • Order Payment Confirmed
  • Order Status Changed
  • Product Created
  • Product Deleted
  • Product Updated
Clone this wiki locally