Diagrama 5: Modelo de Datos Simplificado (Relaciones Clave)

Nota: Este diagrama ER muestra las relaciones principales entre Customer, Order, Product, Provider, Commission y OrderLiquidation. Incluye las nuevas tablas y extensiones propuestas.
erDiagram Customer ||--o{ Order : "realiza" Customer }o--|| CustomerCategory : "pertenece a" CustomerCategory { int id PK string name decimal handlingPercentage decimal profitMarginPercentage decimal baseShippingPrice } Order ||--o{ OrderProduct : "contiene" Order ||--o{ Package : "tiene" Order ||--o| Invoice : "genera" Order ||--o| DirectSale : "puede ser" Order ||--o| OrderLiquidation : "genera" Order }o--|| OrderType : "es tipo" OrderType { int id PK string name int initialOrderStatusId } OrderProduct }o--|| AgencyProduct : "referencia" AgencyProduct }o--|| Product : "es" AgencyProduct }o--|| Agency : "en almacen" Product }o--o| Provider : "suministrado por" Provider ||--o{ ProviderShippingRate : "tiene tarifas" Provider { int id PK string name enum providerType enum deliveryType boolean isExternalMarketplace } ProviderShippingRate { int id PK int providerId FK int provinceId FK decimal rate enum modality } ProviderShippingRate }o--o| Province : "para" Invoice ||--o{ Payment : "recibe" Order ||--o{ Commission : "genera" Commission }o--|| Customer : "para afiliado" Commission }o--o| Coupon : "mediante" Commission { int id PK decimal commissionAmount decimal commissionPercentage enum status } OrderLiquidation { int id PK decimal providerCost decimal shippingCost decimal totalRevenue decimal profitAmount decimal commissionAmount } Customer ||--o{ CouponCustomer : "tiene" CouponCustomer }o--|| Coupon : "usa"