/* Options: Date: 2025-12-06 05:32:25 Version: 8.60 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://geniuslink-api-zane.dev.platform.georiot.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetProductMatchesByUrlRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class IGetProductMatchesByUrlRequest { String? url; bool? includeRaw; } // @DataContract class ProductIdentifiers implements IConvertible { // @DataMember(Name="productGuid", EmitDefaultValue=false) String? productGuid; // @DataMember(Name="gtins", EmitDefaultValue=false) List? gtins; // @DataMember(Name="mpns", EmitDefaultValue=false) List? mpns; // @DataMember(Name="ean8", EmitDefaultValue=false) List? ean8; // @DataMember(Name="ean13", EmitDefaultValue=false) List? ean13; // @DataMember(Name="isbn9", EmitDefaultValue=false) List? isbn9; // @DataMember(Name="isbn10", EmitDefaultValue=false) List? isbn10; // @DataMember(Name="isbn13", EmitDefaultValue=false) List? isbn13; // @DataMember(Name="itf14", EmitDefaultValue=false) List? itf14; // @DataMember(Name="upc12", EmitDefaultValue=false) List? upc12; ProductIdentifiers({this.productGuid,this.gtins,this.mpns,this.ean8,this.ean13,this.isbn9,this.isbn10,this.isbn13,this.itf14,this.upc12}); ProductIdentifiers.fromJson(Map json) { fromMap(json); } fromMap(Map json) { productGuid = json['productGuid']; gtins = JsonConverters.fromJson(json['gtins'],'List',context!); mpns = JsonConverters.fromJson(json['mpns'],'List',context!); ean8 = JsonConverters.fromJson(json['ean8'],'List',context!); ean13 = JsonConverters.fromJson(json['ean13'],'List',context!); isbn9 = JsonConverters.fromJson(json['isbn9'],'List',context!); isbn10 = JsonConverters.fromJson(json['isbn10'],'List',context!); isbn13 = JsonConverters.fromJson(json['isbn13'],'List',context!); itf14 = JsonConverters.fromJson(json['itF14'],'List',context!); upc12 = JsonConverters.fromJson(json['upc12'],'List',context!); return this; } Map toJson() => { 'productGuid': productGuid, 'gtins': JsonConverters.toJson(gtins,'List',context!), 'mpns': JsonConverters.toJson(mpns,'List',context!), 'ean8': JsonConverters.toJson(ean8,'List',context!), 'ean13': JsonConverters.toJson(ean13,'List',context!), 'isbn9': JsonConverters.toJson(isbn9,'List',context!), 'isbn10': JsonConverters.toJson(isbn10,'List',context!), 'isbn13': JsonConverters.toJson(isbn13,'List',context!), 'itf14': JsonConverters.toJson(itf14,'List',context!), 'upc12': JsonConverters.toJson(upc12,'List',context!) }; getTypeName() => "ProductIdentifiers"; TypeContext? context = _ctx; } // @DataContract class BookAttributes implements IConvertible { // @DataMember(Name="authors", EmitDefaultValue=false) List? authors; BookAttributes({this.authors}); BookAttributes.fromJson(Map json) { fromMap(json); } fromMap(Map json) { authors = JsonConverters.fromJson(json['authors'],'List',context!); return this; } Map toJson() => { 'authors': JsonConverters.toJson(authors,'List',context!) }; getTypeName() => "BookAttributes"; TypeContext? context = _ctx; } // @DataContract class AudiobookAttributes extends BookAttributes implements IConvertible { AudiobookAttributes(); AudiobookAttributes.fromJson(Map json) : super.fromJson(json); fromMap(Map json) { super.fromMap(json); return this; } Map toJson() => super.toJson(); getTypeName() => "AudiobookAttributes"; TypeContext? context = _ctx; } // @DataContract class EBookAttributes extends BookAttributes implements IConvertible { EBookAttributes(); EBookAttributes.fromJson(Map json) : super.fromJson(json); fromMap(Map json) { super.fromMap(json); return this; } Map toJson() => super.toJson(); getTypeName() => "EBookAttributes"; TypeContext? context = _ctx; } // @DataContract class ItemAttributes implements IConvertible { // @DataMember(Name="book", EmitDefaultValue=false) BookAttributes? book; // @DataMember(Name="audiobook", EmitDefaultValue=false) AudiobookAttributes? audiobook; // @DataMember(Name="ebook", EmitDefaultValue=false) EBookAttributes? ebook; ItemAttributes({this.book,this.audiobook,this.ebook}); ItemAttributes.fromJson(Map json) { fromMap(json); } fromMap(Map json) { book = JsonConverters.fromJson(json['book'],'BookAttributes',context!); audiobook = JsonConverters.fromJson(json['audiobook'],'AudiobookAttributes',context!); ebook = JsonConverters.fromJson(json['eBook'],'EBookAttributes',context!); return this; } Map toJson() => { 'book': JsonConverters.toJson(book,'BookAttributes',context!), 'audiobook': JsonConverters.toJson(audiobook,'AudiobookAttributes',context!), 'ebook': JsonConverters.toJson(ebook,'EBookAttributes',context!) }; getTypeName() => "ItemAttributes"; TypeContext? context = _ctx; } // @DataContract class ProductAttributes implements IConvertible { // @DataMember(Name="retailer", EmitDefaultValue=false) String? retailer; // @DataMember(Name="retailerGuid", EmitDefaultValue=false) String? retailerGuid; // @DataMember(Name="storefront", EmitDefaultValue=false) String? storefront; // @DataMember(Name="storefrontIso2", EmitDefaultValue=false) String? storefrontIso2; // @DataMember(Name="storefrontGuid", EmitDefaultValue=false) String? storefrontGuid; // @DataMember(Name="category", EmitDefaultValue=false) String? category; // @DataMember(Name="categoryGuid", EmitDefaultValue=false) String? categoryGuid; // @DataMember(Name="brand", EmitDefaultValue=false) String? brand; // @DataMember(Name="brandGuid", EmitDefaultValue=false) String? brandGuid; // @DataMember(Name="manufacturer", EmitDefaultValue=false) String? manufacturer; // @DataMember(Name="manufacturerGuid", EmitDefaultValue=false) String? manufacturerGuid; // @DataMember(Name="identifiers", EmitDefaultValue=false) ProductIdentifiers? identifiers; // @DataMember(Name="itemAttributes", EmitDefaultValue=false) ItemAttributes? itemAttributes; ProductAttributes({this.retailer,this.retailerGuid,this.storefront,this.storefrontIso2,this.storefrontGuid,this.category,this.categoryGuid,this.brand,this.brandGuid,this.manufacturer,this.manufacturerGuid,this.identifiers,this.itemAttributes}); ProductAttributes.fromJson(Map json) { fromMap(json); } fromMap(Map json) { retailer = json['retailer']; retailerGuid = json['retailerGuid']; storefront = json['storefront']; storefrontIso2 = json['storefrontIso2']; storefrontGuid = json['storefrontGuid']; category = json['category']; categoryGuid = json['categoryGuid']; brand = json['brand']; brandGuid = json['brandGuid']; manufacturer = json['manufacturer']; manufacturerGuid = json['manufacturerGuid']; identifiers = JsonConverters.fromJson(json['identifiers'],'ProductIdentifiers',context!); itemAttributes = JsonConverters.fromJson(json['itemAttributes'],'ItemAttributes',context!); return this; } Map toJson() => { 'retailer': retailer, 'retailerGuid': retailerGuid, 'storefront': storefront, 'storefrontIso2': storefrontIso2, 'storefrontGuid': storefrontGuid, 'category': category, 'categoryGuid': categoryGuid, 'brand': brand, 'brandGuid': brandGuid, 'manufacturer': manufacturer, 'manufacturerGuid': manufacturerGuid, 'identifiers': JsonConverters.toJson(identifiers,'ProductIdentifiers',context!), 'itemAttributes': JsonConverters.toJson(itemAttributes,'ItemAttributes',context!) }; getTypeName() => "ProductAttributes"; TypeContext? context = _ctx; } // @DataContract class RetailerSpecificAttributes implements IConvertible { // @DataMember(Name="name", EmitDefaultValue=false) String? name; // @DataMember(Name="description", EmitDefaultValue=false) String? description; // @DataMember(Name="skus", EmitDefaultValue=false) List? skus; // @DataMember(Name="asin", EmitDefaultValue=false) String? asin; // @DataMember(Name="url", EmitDefaultValue=false) Uri? url; // @DataMember(Name="productImages", EmitDefaultValue=false) Map? productImages; // @DataMember(Name="additionalData", EmitDefaultValue=false) Map? additionalData; RetailerSpecificAttributes({this.name,this.description,this.skus,this.asin,this.url,this.productImages,this.additionalData}); RetailerSpecificAttributes.fromJson(Map json) { fromMap(json); } fromMap(Map json) { name = json['name']; description = json['description']; skus = JsonConverters.fromJson(json['skus'],'List',context!); asin = json['asin']; url = JsonConverters.fromJson(json['url'],'Uri',context!); productImages = JsonConverters.fromJson(json['productImages'],'Map',context!); additionalData = JsonConverters.toStringMap(json['additionalData']); return this; } Map toJson() => { 'name': name, 'description': description, 'skus': JsonConverters.toJson(skus,'List',context!), 'asin': asin, 'url': JsonConverters.toJson(url,'Uri',context!), 'productImages': JsonConverters.toJson(productImages,'Map',context!), 'additionalData': additionalData }; getTypeName() => "RetailerSpecificAttributes"; TypeContext? context = _ctx; } // @DataContract class ProductData implements IConvertible { // @DataMember(Name="attributes", EmitDefaultValue=false) ProductAttributes? attributes; // @DataMember(Name="retailerSpecificAttributes", EmitDefaultValue=false) RetailerSpecificAttributes? retailerSpecificAttributes; // @DataMember(Name="rawSourceData", EmitDefaultValue=false) String? rawSourceData; ProductData({this.attributes,this.retailerSpecificAttributes,this.rawSourceData}); ProductData.fromJson(Map json) { fromMap(json); } fromMap(Map json) { attributes = JsonConverters.fromJson(json['attributes'],'ProductAttributes',context!); retailerSpecificAttributes = JsonConverters.fromJson(json['retailerSpecificAttributes'],'RetailerSpecificAttributes',context!); rawSourceData = json['rawSourceData']; return this; } Map toJson() => { 'attributes': JsonConverters.toJson(attributes,'ProductAttributes',context!), 'retailerSpecificAttributes': JsonConverters.toJson(retailerSpecificAttributes,'RetailerSpecificAttributes',context!), 'rawSourceData': rawSourceData }; getTypeName() => "ProductData"; TypeContext? context = _ctx; } enum ErrorCode { Throttled, TargetRetailerProductNotFound, Unknown, NullMatchResult, NullSourceData, SourceDataProcessingFailure, LocalizationFailure, } // @DataContract class MatchError implements IConvertible { // @DataMember(Name="message") String? message; // @DataMember(Name="error") ErrorCode? error; MatchError({this.message,this.error}); MatchError.fromJson(Map json) { fromMap(json); } fromMap(Map json) { message = json['message']; error = JsonConverters.fromJson(json['code'],'ErrorCode',context!); return this; } Map toJson() => { 'message': message, 'error': JsonConverters.toJson(error,'ErrorCode',context!) }; getTypeName() => "MatchError"; TypeContext? context = _ctx; } // @DataContract class MatchResult implements IConvertible { // @DataMember(Name="retailer") String? retailer; // @DataMember(Name="retailerGuid") String? retailerGuid; // @DataMember(Name="storefront") String? storefront; // @DataMember(Name="storefrontIso2") String? storefrontIso2; // @DataMember(Name="storefrontGuid") String? storefrontGuid; // @DataMember(Name="data") ProductData? data; // @DataMember(Name="errors") List? errors; // @DataMember(Name="matchAccuracy") String? matchAccuracy; // @DataMember(Name="matchingRuleName") String? matchingRuleName; // @DataMember(Name="dataSource") String? dataSource; MatchResult({this.retailer,this.retailerGuid,this.storefront,this.storefrontIso2,this.storefrontGuid,this.data,this.errors,this.matchAccuracy,this.matchingRuleName,this.dataSource}); MatchResult.fromJson(Map json) { fromMap(json); } fromMap(Map json) { retailer = json['retailer']; retailerGuid = json['retailerGuid']; storefront = json['storefront']; storefrontIso2 = json['storefrontIso2']; storefrontGuid = json['storefrontGuid']; data = JsonConverters.fromJson(json['data'],'ProductData',context!); errors = JsonConverters.fromJson(json['errors'],'List',context!); matchAccuracy = json['matchAccuracy']; matchingRuleName = json['matchingRuleName']; dataSource = json['dataSource']; return this; } Map toJson() => { 'retailer': retailer, 'retailerGuid': retailerGuid, 'storefront': storefront, 'storefrontIso2': storefrontIso2, 'storefrontGuid': storefrontGuid, 'data': JsonConverters.toJson(data,'ProductData',context!), 'errors': JsonConverters.toJson(errors,'List',context!), 'matchAccuracy': matchAccuracy, 'matchingRuleName': matchingRuleName, 'dataSource': dataSource }; getTypeName() => "MatchResult"; TypeContext? context = _ctx; } // @DataContract class ProductMetadata implements IConvertible { // @DataMember(Name="title") String? title; // @DataMember(Name="author") String? author; // @DataMember(Name="url") Uri? url; // @DataMember(Name="description") String? description; // @DataMember(Name="retailer") String? retailer; // @DataMember(Name="productImages") Map? productImages; // @DataMember(Name="rawAttributes") MatchResult? rawAttributes; ProductMetadata({this.title,this.author,this.url,this.description,this.retailer,this.productImages,this.rawAttributes}); ProductMetadata.fromJson(Map json) { fromMap(json); } fromMap(Map json) { title = json['title']; author = json['author']; url = JsonConverters.fromJson(json['url'],'Uri',context!); description = json['description']; retailer = json['retailer']; productImages = JsonConverters.fromJson(json['productImages'],'Map',context!); rawAttributes = JsonConverters.fromJson(json['rawAttributes'],'MatchResult',context!); return this; } Map toJson() => { 'title': title, 'author': author, 'url': JsonConverters.toJson(url,'Uri',context!), 'description': description, 'retailer': retailer, 'productImages': JsonConverters.toJson(productImages,'Map',context!), 'rawAttributes': JsonConverters.toJson(rawAttributes,'MatchResult',context!) }; getTypeName() => "ProductMetadata"; TypeContext? context = _ctx; } abstract class IGetProductMatchesByUrlResponse { List? products; } class GetProductMatchesByUrlResponse implements IGetProductMatchesByUrlResponse, IConvertible { List? products; ResponseStatus? responseStatus; GetProductMatchesByUrlResponse({this.products,this.responseStatus}); GetProductMatchesByUrlResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { products = JsonConverters.fromJson(json['products'],'List',context!); responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'products': JsonConverters.toJson(products,'List',context!), 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }; getTypeName() => "GetProductMatchesByUrlResponse"; TypeContext? context = _ctx; } // @Route("/v3.5/product/matches", "GET") // @DataContract class GetProductMatchesByUrlRequest implements IReturn, IGetProductMatchesByUrlRequest, IConvertible, IGet { // @DataMember(Name="url") String? url; // @DataMember(Name="includeRaw") bool? includeRaw; GetProductMatchesByUrlRequest({this.url,this.includeRaw}); GetProductMatchesByUrlRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { url = json['url']; includeRaw = json['includeRaw']; return this; } Map toJson() => { 'url': url, 'includeRaw': includeRaw }; createResponse() => GetProductMatchesByUrlResponse(); getResponseTypeName() => "GetProductMatchesByUrlResponse"; getTypeName() => "GetProductMatchesByUrlRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'geniuslink_api_zane.dev.platform.georiot.com', types: { 'IGetProductMatchesByUrlRequest': TypeInfo(TypeOf.Interface), 'ProductIdentifiers': TypeInfo(TypeOf.Class, create:() => ProductIdentifiers()), 'BookAttributes': TypeInfo(TypeOf.Class, create:() => BookAttributes()), 'AudiobookAttributes': TypeInfo(TypeOf.Class, create:() => AudiobookAttributes()), 'EBookAttributes': TypeInfo(TypeOf.Class, create:() => EBookAttributes()), 'ItemAttributes': TypeInfo(TypeOf.Class, create:() => ItemAttributes()), 'ProductAttributes': TypeInfo(TypeOf.Class, create:() => ProductAttributes()), 'RetailerSpecificAttributes': TypeInfo(TypeOf.Class, create:() => RetailerSpecificAttributes()), 'Uri': TypeInfo(TypeOf.Class, create:() => Uri()), 'Map': TypeInfo(TypeOf.Class, create:() => Map()), 'ProductData': TypeInfo(TypeOf.Class, create:() => ProductData()), 'ErrorCode': TypeInfo(TypeOf.Enum, enumValues:ErrorCode.values), 'MatchError': TypeInfo(TypeOf.Class, create:() => MatchError()), 'MatchResult': TypeInfo(TypeOf.Class, create:() => MatchResult()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ProductMetadata': TypeInfo(TypeOf.Class, create:() => ProductMetadata()), 'IGetProductMatchesByUrlResponse': TypeInfo(TypeOf.Interface), 'GetProductMatchesByUrlResponse': TypeInfo(TypeOf.Class, create:() => GetProductMatchesByUrlResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetProductMatchesByUrlRequest': TypeInfo(TypeOf.Class, create:() => GetProductMatchesByUrlRequest()), });