/* 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 { SiteLiteResource } from './SiteLiteResource'; import { SiteLiteResourceFromJSON, SiteLiteResourceFromJSONTyped, SiteLiteResourceToJSON, SiteLiteResourceToJSONTyped, } from './SiteLiteResource'; import type { DescriptionResource } from './DescriptionResource'; import { DescriptionResourceFromJSON, DescriptionResourceFromJSONTyped, DescriptionResourceToJSON, DescriptionResourceToJSONTyped, } from './DescriptionResource'; import type { ProductCategoryLiteResource } from './ProductCategoryLiteResource'; import { ProductCategoryLiteResourceFromJSON, ProductCategoryLiteResourceFromJSONTyped, ProductCategoryLiteResourceToJSON, ProductCategoryLiteResourceToJSONTyped, } from './ProductCategoryLiteResource'; import type { AssetResource } from './AssetResource'; import { AssetResourceFromJSON, AssetResourceFromJSONTyped, AssetResourceToJSON, AssetResourceToJSONTyped, } from './AssetResource'; import type { SEOResource } from './SEOResource'; import { SEOResourceFromJSON, SEOResourceFromJSONTyped, SEOResourceToJSON, SEOResourceToJSONTyped, } from './SEOResource'; /** * * @export * @interface ProductCategoryResource */ export interface ProductCategoryResource { /** * * @type {number} * @memberof ProductCategoryResource */ id?: number | null; /** * * @type {number} * @memberof ProductCategoryResource */ siteId: number; /** * * @type {string} * @memberof ProductCategoryResource */ name: string; /** * * @type {string} * @memberof ProductCategoryResource */ slug: string; /** * * @type {string} * @memberof ProductCategoryResource */ parentId?: string | null; /** * * @type {boolean} * @memberof ProductCategoryResource */ isDisabled: boolean; /** * * @type {boolean} * @memberof ProductCategoryResource */ hideFromFrontend: boolean; /** * * @type {boolean} * @memberof ProductCategoryResource */ isAutomated: boolean; /** * * @type {number} * @memberof ProductCategoryResource */ index: number; /** * * @type {string} * @memberof ProductCategoryResource */ automatedConditionType?: string | null; /** * * @type {AssetResource} * @memberof ProductCategoryResource */ thumbnail: AssetResource | null; /** * * @type {object} * @memberof ProductCategoryResource */ automationRules: object; /** * * @type {ProductCategoryLiteResource} * @memberof ProductCategoryResource */ parent: ProductCategoryLiteResource | null; /** * * @type {SiteLiteResource} * @memberof ProductCategoryResource */ site: SiteLiteResource | null; /** * * @type {Array} * @memberof ProductCategoryResource */ seo: Array | null; /** * * @type {Array} * @memberof ProductCategoryResource */ descriptions: Array | null; /** * * @type {number} * @memberof ProductCategoryResource */ linkedProductsCount: number; } /** * Check if a given object implements the ProductCategoryResource interface. */ export function instanceOfProductCategoryResource(value: object): value is ProductCategoryResource { if (!('siteId' in value) || value['siteId'] === undefined) return false; if (!('name' in value) || value['name'] === undefined) return false; if (!('slug' in value) || value['slug'] === undefined) return false; if (!('isDisabled' in value) || value['isDisabled'] === undefined) return false; if (!('hideFromFrontend' in value) || value['hideFromFrontend'] === undefined) return false; if (!('isAutomated' in value) || value['isAutomated'] === undefined) return false; if (!('index' in value) || value['index'] === undefined) return false; if (!('thumbnail' in value) || value['thumbnail'] === undefined) return false; if (!('automationRules' in value) || value['automationRules'] === undefined) return false; if (!('parent' in value) || value['parent'] === undefined) return false; if (!('site' in value) || value['site'] === undefined) return false; if (!('seo' in value) || value['seo'] === undefined) return false; if (!('descriptions' in value) || value['descriptions'] === undefined) return false; if (!('linkedProductsCount' in value) || value['linkedProductsCount'] === undefined) return false; return true; } export function ProductCategoryResourceFromJSON(json: any): ProductCategoryResource { return ProductCategoryResourceFromJSONTyped(json, false); } export function ProductCategoryResourceFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProductCategoryResource { if (json == null) { return json; } return { 'id': json['id'] == null ? undefined : json['id'], 'siteId': json['siteId'], 'name': json['name'], 'slug': json['slug'], 'parentId': json['parentId'] == null ? undefined : json['parentId'], 'isDisabled': json['isDisabled'], 'hideFromFrontend': json['hideFromFrontend'], 'isAutomated': json['isAutomated'], 'index': json['index'], 'automatedConditionType': json['automatedConditionType'] == null ? undefined : json['automatedConditionType'], 'thumbnail': AssetResourceFromJSON(json['thumbnail']), 'automationRules': json['automationRules'], 'parent': ProductCategoryLiteResourceFromJSON(json['parent']), 'site': SiteLiteResourceFromJSON(json['site']), 'seo': (json['seo'] == null ? null : (json['seo'] as Array).map(SEOResourceFromJSON)), 'descriptions': (json['descriptions'] == null ? null : (json['descriptions'] as Array).map(DescriptionResourceFromJSON)), 'linkedProductsCount': json['linkedProductsCount'], }; } export function ProductCategoryResourceToJSON(json: any): ProductCategoryResource { return ProductCategoryResourceToJSONTyped(json, false); } export function ProductCategoryResourceToJSONTyped(value?: ProductCategoryResource | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'id': value['id'], 'siteId': value['siteId'], 'name': value['name'], 'slug': value['slug'], 'parentId': value['parentId'], 'isDisabled': value['isDisabled'], 'hideFromFrontend': value['hideFromFrontend'], 'isAutomated': value['isAutomated'], 'index': value['index'], 'automatedConditionType': value['automatedConditionType'], 'thumbnail': AssetResourceToJSON(value['thumbnail']), 'automationRules': value['automationRules'], 'parent': ProductCategoryLiteResourceToJSON(value['parent']), 'site': SiteLiteResourceToJSON(value['site']), 'seo': (value['seo'] == null ? null : (value['seo'] as Array).map(SEOResourceToJSON)), 'descriptions': (value['descriptions'] == null ? null : (value['descriptions'] as Array).map(DescriptionResourceToJSON)), 'linkedProductsCount': value['linkedProductsCount'], }; }