/* tslint:disable */ /* eslint-disable */ /** * My API * API documentation for my Laravel app * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime'; import type { ProductParentFrontendResource } from './ProductParentFrontendResource'; import { ProductParentFrontendResourceFromJSON, ProductParentFrontendResourceFromJSONTyped, ProductParentFrontendResourceToJSON, ProductParentFrontendResourceToJSONTyped, } from './ProductParentFrontendResource'; import type { SupplierFrontendResource } from './SupplierFrontendResource'; import { SupplierFrontendResourceFromJSON, SupplierFrontendResourceFromJSONTyped, SupplierFrontendResourceToJSON, SupplierFrontendResourceToJSONTyped, } from './SupplierFrontendResource'; import type { LabelResource } from './LabelResource'; import { LabelResourceFromJSON, LabelResourceFromJSONTyped, LabelResourceToJSON, LabelResourceToJSONTyped, } from './LabelResource'; import type { AssetFrontendResource } from './AssetFrontendResource'; import { AssetFrontendResourceFromJSON, AssetFrontendResourceFromJSONTyped, AssetFrontendResourceToJSON, AssetFrontendResourceToJSONTyped, } from './AssetFrontendResource'; import type { DocumentFrontendResource } from './DocumentFrontendResource'; import { DocumentFrontendResourceFromJSON, DocumentFrontendResourceFromJSONTyped, DocumentFrontendResourceToJSON, DocumentFrontendResourceToJSONTyped, } from './DocumentFrontendResource'; import type { ModelAttributeFrontendResource } from './ModelAttributeFrontendResource'; import { ModelAttributeFrontendResourceFromJSON, ModelAttributeFrontendResourceFromJSONTyped, ModelAttributeFrontendResourceToJSON, ModelAttributeFrontendResourceToJSONTyped, } from './ModelAttributeFrontendResource'; import type { SEOFrontendResource } from './SEOFrontendResource'; import { SEOFrontendResourceFromJSON, SEOFrontendResourceFromJSONTyped, SEOFrontendResourceToJSON, SEOFrontendResourceToJSONTyped, } from './SEOFrontendResource'; /** * * @export * @interface ProductDetailFrontendResource */ export interface ProductDetailFrontendResource { /** * * @type {number} * @memberof ProductDetailFrontendResource */ id: number; /** * * @type {string} * @memberof ProductDetailFrontendResource */ sku: string; /** * * @type {string} * @memberof ProductDetailFrontendResource */ model: string; /** * * @type {string} * @memberof ProductDetailFrontendResource */ barcode?: string | null; /** * * @type {number} * @memberof ProductDetailFrontendResource */ stock: number; /** * * @type {number} * @memberof ProductDetailFrontendResource */ weight: number; /** * * @type {string} * @memberof ProductDetailFrontendResource */ warranty: string; /** * * @type {boolean} * @memberof ProductDetailFrontendResource */ allowOversell: boolean; /** * * @type {string} * @memberof ProductDetailFrontendResource */ name: string; /** * * @type {string} * @memberof ProductDetailFrontendResource */ slug: string; /** * * @type {string} * @memberof ProductDetailFrontendResource */ displayName: string; /** * * @type {string} * @memberof ProductDetailFrontendResource */ description: string; /** * * @type {number} * @memberof ProductDetailFrontendResource */ price: number; /** * * @type {number} * @memberof ProductDetailFrontendResource */ salePrice: number; /** * * @type {string} * @memberof ProductDetailFrontendResource */ availability: string; /** * * @type {string} * @memberof ProductDetailFrontendResource */ supplierLabel: string; /** * * @type {number} * @memberof ProductDetailFrontendResource */ reviewsCount: number; /** * * @type {ProductParentFrontendResource} * @memberof ProductDetailFrontendResource */ parent: ProductParentFrontendResource | null; /** * * @type {SupplierFrontendResource} * @memberof ProductDetailFrontendResource */ supplier: SupplierFrontendResource | null; /** * * @type {LabelResource} * @memberof ProductDetailFrontendResource */ label: LabelResource | null; /** * * @type {string} * @memberof ProductDetailFrontendResource */ modelName: string; /** * * @type {AssetFrontendResource} * @memberof ProductDetailFrontendResource */ thumbnail: AssetFrontendResource | null; /** * * @type {Array} * @memberof ProductDetailFrontendResource */ galleryImages: Array | null; /** * * @type {Array} * @memberof ProductDetailFrontendResource */ documents: Array | null; /** * * @type {Array} * @memberof ProductDetailFrontendResource */ specsData: Array | null; /** * * @type {Array} * @memberof ProductDetailFrontendResource */ dimensionData: Array | null; /** * * @type {Array} * @memberof ProductDetailFrontendResource */ performanceSpecsData: Array | null; /** * * @type {Array} * @memberof ProductDetailFrontendResource */ featuresData: Array | null; /** * * @type {SEOFrontendResource} * @memberof ProductDetailFrontendResource */ seo: SEOFrontendResource | null; } /** * Check if a given object implements the ProductDetailFrontendResource interface. */ export function instanceOfProductDetailFrontendResource(value: object): value is ProductDetailFrontendResource { if (!('id' in value) || value['id'] === undefined) return false; if (!('sku' in value) || value['sku'] === undefined) return false; if (!('model' in value) || value['model'] === undefined) return false; if (!('stock' in value) || value['stock'] === undefined) return false; if (!('weight' in value) || value['weight'] === undefined) return false; if (!('warranty' in value) || value['warranty'] === undefined) return false; if (!('allowOversell' in value) || value['allowOversell'] === undefined) return false; if (!('name' in value) || value['name'] === undefined) return false; if (!('slug' in value) || value['slug'] === undefined) return false; if (!('displayName' in value) || value['displayName'] === undefined) return false; if (!('description' in value) || value['description'] === undefined) return false; if (!('price' in value) || value['price'] === undefined) return false; if (!('salePrice' in value) || value['salePrice'] === undefined) return false; if (!('availability' in value) || value['availability'] === undefined) return false; if (!('supplierLabel' in value) || value['supplierLabel'] === undefined) return false; if (!('reviewsCount' in value) || value['reviewsCount'] === undefined) return false; if (!('parent' in value) || value['parent'] === undefined) return false; if (!('supplier' in value) || value['supplier'] === undefined) return false; if (!('label' in value) || value['label'] === undefined) return false; if (!('modelName' in value) || value['modelName'] === undefined) return false; if (!('thumbnail' in value) || value['thumbnail'] === undefined) return false; if (!('galleryImages' in value) || value['galleryImages'] === undefined) return false; if (!('documents' in value) || value['documents'] === undefined) return false; if (!('specsData' in value) || value['specsData'] === undefined) return false; if (!('dimensionData' in value) || value['dimensionData'] === undefined) return false; if (!('performanceSpecsData' in value) || value['performanceSpecsData'] === undefined) return false; if (!('featuresData' in value) || value['featuresData'] === undefined) return false; if (!('seo' in value) || value['seo'] === undefined) return false; return true; } export function ProductDetailFrontendResourceFromJSON(json: any): ProductDetailFrontendResource { return ProductDetailFrontendResourceFromJSONTyped(json, false); } export function ProductDetailFrontendResourceFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProductDetailFrontendResource { if (json == null) { return json; } return { 'id': json['id'], 'sku': json['sku'], 'model': json['model'], 'barcode': json['barcode'] == null ? undefined : json['barcode'], 'stock': json['stock'], 'weight': json['weight'], 'warranty': json['warranty'], 'allowOversell': json['allowOversell'], 'name': json['name'], 'slug': json['slug'], 'displayName': json['displayName'], 'description': json['description'], 'price': json['price'], 'salePrice': json['salePrice'], 'availability': json['availability'], 'supplierLabel': json['supplierLabel'], 'reviewsCount': json['reviewsCount'], 'parent': ProductParentFrontendResourceFromJSON(json['parent']), 'supplier': SupplierFrontendResourceFromJSON(json['supplier']), 'label': LabelResourceFromJSON(json['label']), 'modelName': json['modelName'], 'thumbnail': AssetFrontendResourceFromJSON(json['thumbnail']), 'galleryImages': (json['galleryImages'] == null ? null : (json['galleryImages'] as Array).map(AssetFrontendResourceFromJSON)), 'documents': (json['documents'] == null ? null : (json['documents'] as Array).map(DocumentFrontendResourceFromJSON)), 'specsData': (json['specsData'] == null ? null : (json['specsData'] as Array).map(ModelAttributeFrontendResourceFromJSON)), 'dimensionData': (json['dimensionData'] == null ? null : (json['dimensionData'] as Array).map(ModelAttributeFrontendResourceFromJSON)), 'performanceSpecsData': (json['performanceSpecsData'] == null ? null : (json['performanceSpecsData'] as Array).map(ModelAttributeFrontendResourceFromJSON)), 'featuresData': (json['featuresData'] == null ? null : (json['featuresData'] as Array).map(ModelAttributeFrontendResourceFromJSON)), 'seo': SEOFrontendResourceFromJSON(json['seo']), }; } export function ProductDetailFrontendResourceToJSON(json: any): ProductDetailFrontendResource { return ProductDetailFrontendResourceToJSONTyped(json, false); } export function ProductDetailFrontendResourceToJSONTyped(value?: ProductDetailFrontendResource | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'id': value['id'], 'sku': value['sku'], 'model': value['model'], 'barcode': value['barcode'], 'stock': value['stock'], 'weight': value['weight'], 'warranty': value['warranty'], 'allowOversell': value['allowOversell'], 'name': value['name'], 'slug': value['slug'], 'displayName': value['displayName'], 'description': value['description'], 'price': value['price'], 'salePrice': value['salePrice'], 'availability': value['availability'], 'supplierLabel': value['supplierLabel'], 'reviewsCount': value['reviewsCount'], 'parent': ProductParentFrontendResourceToJSON(value['parent']), 'supplier': SupplierFrontendResourceToJSON(value['supplier']), 'label': LabelResourceToJSON(value['label']), 'modelName': value['modelName'], 'thumbnail': AssetFrontendResourceToJSON(value['thumbnail']), 'galleryImages': (value['galleryImages'] == null ? null : (value['galleryImages'] as Array).map(AssetFrontendResourceToJSON)), 'documents': (value['documents'] == null ? null : (value['documents'] as Array).map(DocumentFrontendResourceToJSON)), 'specsData': (value['specsData'] == null ? null : (value['specsData'] as Array).map(ModelAttributeFrontendResourceToJSON)), 'dimensionData': (value['dimensionData'] == null ? null : (value['dimensionData'] as Array).map(ModelAttributeFrontendResourceToJSON)), 'performanceSpecsData': (value['performanceSpecsData'] == null ? null : (value['performanceSpecsData'] as Array).map(ModelAttributeFrontendResourceToJSON)), 'featuresData': (value['featuresData'] == null ? null : (value['featuresData'] as Array).map(ModelAttributeFrontendResourceToJSON)), 'seo': SEOFrontendResourceToJSON(value['seo']), }; }