Skip to content

Ubiquitous Language

Italo Pessoa edited this page May 27, 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
    • Has an status property (ORderStatus)
  • 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 (Brazilian Person Identifier)
  • OrderStatus (PaymentPending, PaymentConfirmed, Received, InPreparation, Ready, Completed)
  • Product Category (Meal, Sides, Drink, Dessert)

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
    • Creates new order
  • Cancel Order
    • Cancel existing order
  • Change Order status
    • Update orders status
  • Confirm Order
    • Confirme propduct selection and creates order
  • Checkout Order
    • Checkout order and update order status to PaymentApproved
  • Send Notification
    • Send notification
  • Approve Payment
    • Approve Order payment
  • Reject Payment
    • Reject order paymemnt
  • Select Product
    • Select product to be added to the Order
  • Register User
    • Register new Customer
  • Find Customer
    • Find customer
  • Register Product
    • Register Menu products
  • Delete Product
    • Delete product from menu
  • Update Product
    • Update product
  • List Products
    • List available products
  • List orders
    • List existing orders
  • Add Meal
    • Add meal to Order
  • Add Sides
    • Add Sides to Order
  • Add Drink
    • Add Drink to Order
  • Add Dessert
    • Add Dessert to Order

Events

  • Customer Registered
    • New customer successfully registered
  • Order Created
    • A new Order was created
  • Order Cancelled
    • A order was cancelled
  • Order Payment Confirmed
    • Order payment was accepted
  • Order Status Changed
    • Order status updated
  • Product Created
    • New product Created
  • Product Deleted
    • Product deleted
  • Product Updated
    • Prouct details updated