/* Options: Date: 2025-12-06 05:26:09 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: ProductMetadataLookupRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class IProductMetadataLookupRequest { String? url; } // @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; } abstract class IProductMetadataLookupResponse { // @DataMember(Name="productMetadata") ProductData? productMetadata; } class ProductMetadataLookupResponse implements IProductMetadataLookupResponse, IConvertible { // @DataMember(Name="productMetadata") ProductData? productMetadata; // @DataMember(Name="responseStatus") ResponseStatus? responseStatus; ProductMetadataLookupResponse({this.productMetadata,this.responseStatus}); ProductMetadataLookupResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { productMetadata = JsonConverters.fromJson(json['productMetadata'],'ProductData',context!); responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'productMetadata': JsonConverters.toJson(productMetadata,'ProductData',context!), 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }; getTypeName() => "ProductMetadataLookupResponse"; TypeContext? context = _ctx; } // @Route("/v3.5/product-metadata/lookup", "GET") // @DataContract class ProductMetadataLookupRequest implements IReturn, IProductMetadataLookupRequest, IConvertible, IGet { // @DataMember(Name="url") String? url; ProductMetadataLookupRequest({this.url}); ProductMetadataLookupRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { url = json['url']; return this; } Map toJson() => { 'url': url }; createResponse() => ProductMetadataLookupResponse(); getResponseTypeName() => "ProductMetadataLookupResponse"; getTypeName() => "ProductMetadataLookupRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'geniuslink_api_zane.dev.platform.georiot.com', types: { 'IProductMetadataLookupRequest': 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()), 'IProductMetadataLookupResponse': TypeInfo(TypeOf.Interface), 'ProductMetadataLookupResponse': TypeInfo(TypeOf.Class, create:() => ProductMetadataLookupResponse()), 'ProductMetadataLookupRequest': TypeInfo(TypeOf.Class, create:() => ProductMetadataLookupRequest()), });