feat(cart): refactor CartItem structure to remove nested product object and simplify access to properties
This commit is contained in:
@@ -571,11 +571,9 @@ describe('StoreLayoutComponent', () => {
|
||||
precio_unitario: '100.00',
|
||||
catalog_item_id: 1,
|
||||
variant_id: null,
|
||||
product: {
|
||||
nombre: 'Producto',
|
||||
imagen: null,
|
||||
variant: null,
|
||||
},
|
||||
nombre: 'Producto',
|
||||
imagen: null,
|
||||
variant: null,
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -625,11 +623,9 @@ describe('StoreLayoutComponent', () => {
|
||||
precio_unitario: '100.00',
|
||||
catalog_item_id: 1,
|
||||
variant_id: null,
|
||||
product: {
|
||||
nombre: 'Producto',
|
||||
imagen: null,
|
||||
variant: null,
|
||||
},
|
||||
nombre: 'Producto',
|
||||
imagen: null,
|
||||
variant: null,
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
@@ -53,7 +53,7 @@ export class StoreLayoutComponent implements OnInit {
|
||||
});
|
||||
|
||||
private mapCartItemToMock(item: CartItem): CartItemMock {
|
||||
const fullName = item.product?.nombre ?? '';
|
||||
const fullName = item.nombre ?? '';
|
||||
let product = fullName;
|
||||
let attributes: { label: string; value: string }[] = [];
|
||||
|
||||
@@ -70,7 +70,7 @@ export class StoreLayoutComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
const selectedVariant = item.product?.variant ?? null;
|
||||
const selectedVariant = item.variant;
|
||||
|
||||
if (selectedVariant) {
|
||||
attributes = Object.entries(selectedVariant.values).map(([label, value]) => ({
|
||||
@@ -81,7 +81,7 @@ export class StoreLayoutComponent implements OnInit {
|
||||
|
||||
return {
|
||||
cartItemId: item.id,
|
||||
imageUrl: item.product?.imagen ?? null,
|
||||
imageUrl: item.imagen,
|
||||
product,
|
||||
originalPrice: null,
|
||||
discountedPrice: parseFloat(item.precio_unitario),
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
export interface CartItemProduct {
|
||||
nombre: string;
|
||||
imagen: string | null;
|
||||
variant: CartItemVariant | null;
|
||||
}
|
||||
|
||||
export interface CartItemVariantOption {
|
||||
value: string;
|
||||
label: string;
|
||||
@@ -27,7 +21,9 @@ export interface CartItem {
|
||||
precio_unitario: string;
|
||||
catalog_item_id: number;
|
||||
variant_id: number | null;
|
||||
product: CartItemProduct | null;
|
||||
nombre: string | null;
|
||||
imagen: string | null;
|
||||
variant: CartItemVariant | null;
|
||||
}
|
||||
|
||||
export interface Cart {
|
||||
|
||||
@@ -24,15 +24,13 @@ describe('CartService', () => {
|
||||
precio_unitario: '10.00',
|
||||
catalog_item_id: 5,
|
||||
variant_id: 10,
|
||||
product: {
|
||||
nombre: 'Test Product (Size: M)',
|
||||
imagen: null,
|
||||
variant: {
|
||||
id: 10,
|
||||
precio: '10.00',
|
||||
stock_tecnico: 1,
|
||||
values: { size: 'M' },
|
||||
},
|
||||
nombre: 'Test Product (Size: M)',
|
||||
imagen: null,
|
||||
variant: {
|
||||
id: 10,
|
||||
precio: '10.00',
|
||||
stock_tecnico: 1,
|
||||
values: { size: 'M' },
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user