diff --git a/src/app/core/services/catalog/catalog.interface.ts b/src/app/core/services/catalog/catalog.interface.ts index ed700eb..2d98c11 100644 --- a/src/app/core/services/catalog/catalog.interface.ts +++ b/src/app/core/services/catalog/catalog.interface.ts @@ -1,6 +1,5 @@ export interface Product { id: number; - tenant_codigo: string; category_id: number; brand_id: number | null; slug: string; @@ -17,7 +16,7 @@ export interface ProductAttributeOption { value: string; label: string; sort_order: number; - metadata: Record | null; + metadata: Record | null; } export interface ProductAttribute { @@ -25,19 +24,27 @@ export interface ProductAttribute { codigo: string; nombre: string; is_required: boolean; - metadata_schema: Record | null; + metadata_schema: Record | null; type: string; options: ProductAttributeOption[]; } export interface ProductVariant { - variant_id: number; + id: number; + stock: number; + definitions: Record; images: string[]; +} + +export interface ProductVariantMap { + variant_id: number; + stock: number; attributes: Record; } export interface ProductDetail extends Product { attributes: ProductAttribute[]; - default_variant: ProductVariant | null; + variants_map: ProductVariantMap[]; + variant: ProductVariant | null; } diff --git a/src/app/features/store/pages/product-detail-page/product-detail-page.component.ts b/src/app/features/store/pages/product-detail-page/product-detail-page.component.ts index 2918d03..67beb3d 100644 --- a/src/app/features/store/pages/product-detail-page/product-detail-page.component.ts +++ b/src/app/features/store/pages/product-detail-page/product-detail-page.component.ts @@ -49,8 +49,8 @@ export class ProductDetailPageComponent implements OnInit, OnDestroy { protected readonly carouselImages = computed(() => { const prod = this.product(); if (!prod) return []; - if (prod.default_variant?.images && prod.default_variant.images.length > 0) { - return prod.default_variant.images; + if (prod.variant?.images && prod.variant.images.length > 0) { + return prod.variant.images; } if (prod.images && prod.images.length > 0) { return prod.images; @@ -181,7 +181,7 @@ export class ProductDetailPageComponent implements OnInit, OnDestroy { } private initializeSelections(product: ProductDetail): void { - const defaultVariant = product.default_variant; + const defaultVariant = product.variant; const selections: Record = {}; for (const attribute of product.attributes) { @@ -202,7 +202,7 @@ export class ProductDetailPageComponent implements OnInit, OnDestroy { return null; } - const defaultValue = this.getDefaultVariantAttributeValue(attribute, variant.attributes); + const defaultValue = this.getDefaultVariantAttributeValue(attribute, variant.definitions); if (!defaultValue) { return null; }