Financial Tables
1 min
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#4CD0E2','primaryTextColor':'#002A32','primaryBorderColor':'#00778F','lineColor':'#00778F','secondaryColor':'#EDF8FA','tertiaryColor':'#FFFFFF','fontFamily':'DM Sans, sans-serif'}}}%%
erDiagram
sale ||--o{ treatments : sale_id
sale ||--o{ sold_service_packages : sale_id
sale ||--o{ charges : sale_id
sale ||--o{ new_invoice : sale_id
sale }o--|| users : customer_id
sale ||--o{ sale_discount_mapping : sale_id
sale_discount_mapping }o--|| predefined_discounts : discount_id
charges ||--o{ payments : charge_id
payments }o--|| sale : sale_id
treatments }o--|| products : product_id
sold_service_packages }o--|| service_packages : service_package_id
sold_service_packages ||--o{ sold_service_package_products : sold_service_package_id
sold_service_package_products }o--|| products : product_idReading this: a sale fans out into line items (treatments, sold_service_packages) on one side and payment activity (charges → payments) on the other, with new_invoice as the resulting document. Discounts applied via a template flow through sale_discount_mapping → predefined_discounts; ad hoc discounts live directly on the sale/line-item discount columns instead.