Modelos del carrito
Para poder permitir en el futuro distintos tipos de productos, se ha estructurado el módulo de forma que usa relaciones polimórficas para algunas relaciones. Como esto complica un poco seguir las relaciones entre modelos, hago este esquema para poder verlas:
classDiagram
Cart-->CartRow
CartRow-->CartProduct
- Cart: es el carrito como tal, es el modelo principal
- Tabla:
carts - Modelo:
\Bittacora\Bpanel4\Orders\Models\Cart\Cart
- Tabla:
- CartRow: es una línea del carrito. Hace referencia a un
Cartable(\Bittacora\Bpanel4\Orders\Contracts\CartableProduct) y almacena también la cantidad.CartableProductes una interfaz, que es con la que interactúa el carrito, no lo hace con el modelo directamente.- Tabla:
cart_products - Modelo:
\Bittacora\Bpanel4\Orders\Models\Cart\CartRow
- Tabla:
- CartProduct: esta clase es posible que desaparezca en un futuro. Inicialmente se usaba en Dermaviduals y hacía que
un mismo producto pudiese tener distinto precio según el tamaño seleccionado y el rol del cliente (ver captura más abajo). Actualmente no tiene mucha utilidad.
- Tabla:
bpanel4_cart_products - Modelo:
\Bittacora\Bpanel4\Products\Models\CartProduct
- Tabla: