/* Options: Date: 2025-12-06 05:34:06 Version: 8.60 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://geniuslink-api-zane.dev.platform.georiot.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetProductMatchesByCriteriaRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } // @DataContract export class ProductIdentifiers { // @DataMember(Name="productGuid", EmitDefaultValue=false) public productGuid: string; // @DataMember(Name="gtins", EmitDefaultValue=false) public gtins: string[]; // @DataMember(Name="mpns", EmitDefaultValue=false) public mpns: string[]; // @DataMember(Name="ean8", EmitDefaultValue=false) public ean8: string[]; // @DataMember(Name="ean13", EmitDefaultValue=false) public ean13: string[]; // @DataMember(Name="isbn9", EmitDefaultValue=false) public isbn9: string[]; // @DataMember(Name="isbn10", EmitDefaultValue=false) public isbn10: string[]; // @DataMember(Name="isbn13", EmitDefaultValue=false) public isbn13: string[]; // @DataMember(Name="itf14", EmitDefaultValue=false) public itf14: string[]; // @DataMember(Name="upc12", EmitDefaultValue=false) public upc12: string[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class BookAttributes { // @DataMember(Name="authors", EmitDefaultValue=false) public authors: string[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class AudiobookAttributes extends BookAttributes { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @DataContract export class EBookAttributes extends BookAttributes { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @DataContract export class ItemAttributes { // @DataMember(Name="book", EmitDefaultValue=false) public book: BookAttributes; // @DataMember(Name="audiobook", EmitDefaultValue=false) public audiobook: AudiobookAttributes; // @DataMember(Name="ebook", EmitDefaultValue=false) public ebook: EBookAttributes; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ProductAttributes { // @DataMember(Name="retailer", EmitDefaultValue=false) public retailer: string; // @DataMember(Name="retailerGuid", EmitDefaultValue=false) public retailerGuid: string; // @DataMember(Name="storefront", EmitDefaultValue=false) public storefront: string; // @DataMember(Name="storefrontIso2", EmitDefaultValue=false) public storefrontIso2: string; // @DataMember(Name="storefrontGuid", EmitDefaultValue=false) public storefrontGuid: string; // @DataMember(Name="category", EmitDefaultValue=false) public category: string; // @DataMember(Name="categoryGuid", EmitDefaultValue=false) public categoryGuid: string; // @DataMember(Name="brand", EmitDefaultValue=false) public brand: string; // @DataMember(Name="brandGuid", EmitDefaultValue=false) public brandGuid: string; // @DataMember(Name="manufacturer", EmitDefaultValue=false) public manufacturer: string; // @DataMember(Name="manufacturerGuid", EmitDefaultValue=false) public manufacturerGuid: string; // @DataMember(Name="identifiers", EmitDefaultValue=false) public identifiers: ProductIdentifiers; // @DataMember(Name="itemAttributes", EmitDefaultValue=false) public itemAttributes: ItemAttributes; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class RetailerSpecificAttributes { // @DataMember(Name="name", EmitDefaultValue=false) public name: string; // @DataMember(Name="description", EmitDefaultValue=false) public description: string; // @DataMember(Name="skus", EmitDefaultValue=false) public skus: string[]; // @DataMember(Name="asin", EmitDefaultValue=false) public asin: string; // @DataMember(Name="url", EmitDefaultValue=false) public url: string; // @DataMember(Name="productImages", EmitDefaultValue=false) public productImages: { [index:string]: string; }; // @DataMember(Name="additionalData", EmitDefaultValue=false) public additionalData: { [index:string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ProductData { // @DataMember(Name="attributes", EmitDefaultValue=false) public attributes: ProductAttributes; // @DataMember(Name="retailerSpecificAttributes", EmitDefaultValue=false) public retailerSpecificAttributes: RetailerSpecificAttributes; // @DataMember(Name="rawSourceData", EmitDefaultValue=false) public rawSourceData: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class MatchCriteria { // @DataMember(Name="retailerGuid") public retailerGuid: string; // @DataMember(Name="timeoutMs") public timeoutMs: number; // @DataMember(Name="countryIso2s") public countryIso2s: string[]; // @DataMember(Name="maxStalenessMs") public maxStalenessMs: number; // @DataMember(Name="targetProductCategories") public targetProductCategories: string[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IGetProductMatchesByCriteriaRequest { data: ProductData[]; matchCriteria: MatchCriteria[]; maxTimeoutMs: number; skipCriteriaCheck: boolean; } // @Route("/v3.5/product/search", "POST") export class GetProductMatchesByCriteriaRequest implements IReturn, IGetProductMatchesByCriteriaRequest { public data: ProductData[]; public matchCriteria: MatchCriteria[]; public maxTimeoutMs: number; public skipCriteriaCheck: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'GetProductMatchesByCriteriaRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new GetProductMatchesByCriteriaRequest(); } }