/* Options: Date: 2024-12-22 12:05:28 Version: 8.12 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://taxfiling.pwc.de //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SearchProductsAsync.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; abstract class IPaginate { int? skip; int? take; } /** * The number of query results to skip. */ // @Api(Description="The number of query results to skip.") abstract class PaginationBase implements IPaginate { /** * The number of query results to skip. */ // @ApiMember(Description="The number of query results to skip.") int? skip; /** * The number of query results to include. */ // @ApiMember(Description="The number of query results to include.") int? take; PaginationBase({this.skip,this.take}); PaginationBase.fromJson(Map json) { fromMap(json); } fromMap(Map json) { skip = json['skip']; take = json['take']; return this; } Map toJson() => { 'skip': skip, 'take': take }; getTypeName() => "PaginationBase"; TypeContext? context = _ctx; } /** * Specifies a service to search for products. */ // @Api(Description="Specifies a service to search for products.") abstract class SearchProductsBase extends PaginationBase implements IGet { /** * The unique identifier of the account associated with the product. */ // @ApiMember(Description="The unique identifier of the account associated with the product.") int? productId; /** * The unique identifier of the account associated with the product. */ // @ApiMember(Description="The unique identifier of the account associated with the product.") int? accountId; /** * The name of the product. */ // @ApiMember(Description="The name of the product.") String? name; /** * Search by using the name of the product that starts with the specified value. */ // @ApiMember(Description="Search by using the name of the product that starts with the specified value.") String? nameStartsWith; /** * Search by using the name of the product that ends with the specified value. */ // @ApiMember(Description="Search by using the name of the product that ends with the specified value.") String? nameEndsWith; /** * Search by using the name of the product that contains the specified value. */ // @ApiMember(Description="Search by using the name of the product that contains the specified value.") String? nameContains; /** * The version of the product. */ // @ApiMember(Description="The version of the product.") String? version; /** * Search by using the version of the product that starts with the specified value. */ // @ApiMember(Description="Search by using the version of the product that starts with the specified value.") String? versionStartsWith; /** * Search by using the version of the product that ends with the specified value. */ // @ApiMember(Description="Search by using the version of the product that ends with the specified value.") String? versionEndsWith; /** * Search by using the version of the product that contains the specified value. */ // @ApiMember(Description="Search by using the version of the product that contains the specified value.") String? versionContains; /** * The description of the product. */ // @ApiMember(Description="The description of the product.") String? description; /** * Search by using the description of the product that starts with the specified value. */ // @ApiMember(Description="Search by using the description of the product that starts with the specified value.") String? descriptionStartsWith; /** * Search by using the description of the product that ends with the specified value. */ // @ApiMember(Description="Search by using the description of the product that ends with the specified value.") String? descriptionEndsWith; /** * Search by using the description of the product that contains the specified value. */ // @ApiMember(Description="Search by using the description of the product that contains the specified value.") String? descriptionContains; /** * Should the related orders of the account be included in the retrieved products? */ // @ApiMember(Description="Should the related orders of the account be included in the retrieved products?") bool? includeOrders; /** * Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. */ // @ApiMember(Description="Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. ") int? skipOrders; /** * Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. */ // @ApiMember(Description="Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. ") int? takeOrders; /** * The number of query results to skip. */ // @ApiMember(Description="The number of query results to skip.") int? skip; /** * The number of query results to include. */ // @ApiMember(Description="The number of query results to include.") int? take; SearchProductsBase({this.productId,this.accountId,this.name,this.nameStartsWith,this.nameEndsWith,this.nameContains,this.version,this.versionStartsWith,this.versionEndsWith,this.versionContains,this.description,this.descriptionStartsWith,this.descriptionEndsWith,this.descriptionContains,this.includeOrders,this.skipOrders,this.takeOrders,this.skip,this.take}); SearchProductsBase.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); productId = json['productId']; accountId = json['accountId']; name = json['name']; nameStartsWith = json['nameStartsWith']; nameEndsWith = json['nameEndsWith']; nameContains = json['nameContains']; version = json['version']; versionStartsWith = json['versionStartsWith']; versionEndsWith = json['versionEndsWith']; versionContains = json['versionContains']; description = json['description']; descriptionStartsWith = json['descriptionStartsWith']; descriptionEndsWith = json['descriptionEndsWith']; descriptionContains = json['descriptionContains']; includeOrders = json['includeOrders']; skipOrders = json['skipOrders']; takeOrders = json['takeOrders']; skip = json['skip']; take = json['take']; return this; } Map toJson() => super.toJson()..addAll({ 'productId': productId, 'accountId': accountId, 'name': name, 'nameStartsWith': nameStartsWith, 'nameEndsWith': nameEndsWith, 'nameContains': nameContains, 'version': version, 'versionStartsWith': versionStartsWith, 'versionEndsWith': versionEndsWith, 'versionContains': versionContains, 'description': description, 'descriptionStartsWith': descriptionStartsWith, 'descriptionEndsWith': descriptionEndsWith, 'descriptionContains': descriptionContains, 'includeOrders': includeOrders, 'skipOrders': skipOrders, 'takeOrders': takeOrders, 'skip': skip, 'take': take }); getTypeName() => "SearchProductsBase"; TypeContext? context = _ctx; } /** * Represents a product. */ // @Api(Description="Represents a product.") class Product implements IHasName, IConvertible { /** * The unique identifier of the product. */ // @ApiMember(Description="The unique identifier of the product.", IsRequired=true) int? id; /** * The position of this instance in a collection of 'Product' instances */ // @ApiMember(Description="The position of this instance in a collection of 'Product' instances", IsRequired=true) int? index; /** * The name of the product. */ // @ApiMember(Description="The name of the product.", IsRequired=true) // @Validate(Validator="NotEmpty") String? name; /** * The version of the product. */ // @ApiMember(Description="The version of the product.", IsRequired=true) // @Validate(Validator="NotEmpty") String? version; /** * The version of the product. */ // @ApiMember(Description="The version of the product.") String? description; /** * Tags associated with the product. */ // @ApiMember(Description="Tags associated with the product.") List? tags; Product({this.id,this.index,this.name,this.version,this.description,this.tags}); Product.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; index = json['index']; name = json['name']; version = json['version']; description = json['description']; tags = JsonConverters.fromJson(json['tags'],'List',context!); return this; } Map toJson() => { 'id': id, 'index': index, 'name': name, 'version': version, 'description': description, 'tags': JsonConverters.toJson(tags,'List',context!) }; getTypeName() => "Product"; TypeContext? context = _ctx; } /** * Specifies that a data type should have a 'Name' property. */ abstract class IHasName { /** * The 'Name' property. */ String? name; } /** * Represents a query response that contains a structured error information and encapsulates products. */ // @Api(Description="Represents a query response that contains a structured error information and encapsulates products.") class ProductQueryResponse extends QueryResponse implements IConvertible { /** * The dictionary of orders associated with each found product. */ // @ApiMember(Description="The dictionary of orders associated with each found product.") Map?>? ordersMap; // @DataMember(Order=1) int? offset; // @DataMember(Order=2) int? total; // @DataMember(Order=3) List? results; // @DataMember(Order=4) Map? meta; // @DataMember(Order=5) ResponseStatus? responseStatus; ProductQueryResponse({this.ordersMap,this.offset,this.total,this.results,this.meta,this.responseStatus}); ProductQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); ordersMap = JsonConverters.fromJson(json['ordersMap'],'Map?>',context!); offset = json['offset']; total = json['total']; results = JsonConverters.fromJson(json['results'],'List',context!); meta = JsonConverters.toStringMap(json['meta']); responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => super.toJson()..addAll({ 'ordersMap': JsonConverters.toJson(ordersMap,'Map?>',context!), 'offset': offset, 'total': total, 'results': JsonConverters.toJson(results,'List',context!), 'meta': meta, 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }); getTypeName() => "ProductQueryResponse"; TypeContext? context = _ctx; } /** * Represents a service to search for product data in an asynchronous operation. */ // @Route("/async/products/search", "GET") // @Api(Description="Represents a service to search for product data in an asynchronous operation.") class SearchProductsAsync extends SearchProductsBase implements IReturn, IConvertible, IGet { /** * The unique identifier of the account associated with the product. */ // @ApiMember(Description="The unique identifier of the account associated with the product.") int? productId; /** * The unique identifier of the account associated with the product. */ // @ApiMember(Description="The unique identifier of the account associated with the product.") int? accountId; /** * The name of the product. */ // @ApiMember(Description="The name of the product.") String? name; /** * Search by using the name of the product that starts with the specified value. */ // @ApiMember(Description="Search by using the name of the product that starts with the specified value.") String? nameStartsWith; /** * Search by using the name of the product that ends with the specified value. */ // @ApiMember(Description="Search by using the name of the product that ends with the specified value.") String? nameEndsWith; /** * Search by using the name of the product that contains the specified value. */ // @ApiMember(Description="Search by using the name of the product that contains the specified value.") String? nameContains; /** * The version of the product. */ // @ApiMember(Description="The version of the product.") String? version; /** * Search by using the version of the product that starts with the specified value. */ // @ApiMember(Description="Search by using the version of the product that starts with the specified value.") String? versionStartsWith; /** * Search by using the version of the product that ends with the specified value. */ // @ApiMember(Description="Search by using the version of the product that ends with the specified value.") String? versionEndsWith; /** * Search by using the version of the product that contains the specified value. */ // @ApiMember(Description="Search by using the version of the product that contains the specified value.") String? versionContains; /** * The description of the product. */ // @ApiMember(Description="The description of the product.") String? description; /** * Search by using the description of the product that starts with the specified value. */ // @ApiMember(Description="Search by using the description of the product that starts with the specified value.") String? descriptionStartsWith; /** * Search by using the description of the product that ends with the specified value. */ // @ApiMember(Description="Search by using the description of the product that ends with the specified value.") String? descriptionEndsWith; /** * Search by using the description of the product that contains the specified value. */ // @ApiMember(Description="Search by using the description of the product that contains the specified value.") String? descriptionContains; /** * Should the related orders of the account be included in the retrieved products? */ // @ApiMember(Description="Should the related orders of the account be included in the retrieved products?") bool? includeOrders; /** * Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. */ // @ApiMember(Description="Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. ") int? skipOrders; /** * Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. */ // @ApiMember(Description="Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. ") int? takeOrders; /** * The number of query results to skip. */ // @ApiMember(Description="The number of query results to skip.") int? skip; /** * The number of query results to include. */ // @ApiMember(Description="The number of query results to include.") int? take; SearchProductsAsync({this.productId,this.accountId,this.name,this.nameStartsWith,this.nameEndsWith,this.nameContains,this.version,this.versionStartsWith,this.versionEndsWith,this.versionContains,this.description,this.descriptionStartsWith,this.descriptionEndsWith,this.descriptionContains,this.includeOrders,this.skipOrders,this.takeOrders,this.skip,this.take}); SearchProductsAsync.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); productId = json['productId']; accountId = json['accountId']; name = json['name']; nameStartsWith = json['nameStartsWith']; nameEndsWith = json['nameEndsWith']; nameContains = json['nameContains']; version = json['version']; versionStartsWith = json['versionStartsWith']; versionEndsWith = json['versionEndsWith']; versionContains = json['versionContains']; description = json['description']; descriptionStartsWith = json['descriptionStartsWith']; descriptionEndsWith = json['descriptionEndsWith']; descriptionContains = json['descriptionContains']; includeOrders = json['includeOrders']; skipOrders = json['skipOrders']; takeOrders = json['takeOrders']; skip = json['skip']; take = json['take']; return this; } Map toJson() => super.toJson()..addAll({ 'productId': productId, 'accountId': accountId, 'name': name, 'nameStartsWith': nameStartsWith, 'nameEndsWith': nameEndsWith, 'nameContains': nameContains, 'version': version, 'versionStartsWith': versionStartsWith, 'versionEndsWith': versionEndsWith, 'versionContains': versionContains, 'description': description, 'descriptionStartsWith': descriptionStartsWith, 'descriptionEndsWith': descriptionEndsWith, 'descriptionContains': descriptionContains, 'includeOrders': includeOrders, 'skipOrders': skipOrders, 'takeOrders': takeOrders, 'skip': skip, 'take': take }); createResponse() => ProductQueryResponse(); getResponseTypeName() => "ProductQueryResponse"; getTypeName() => "SearchProductsAsync"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'taxfiling.pwc.de', types: { 'IPaginate': TypeInfo(TypeOf.Interface), 'PaginationBase': TypeInfo(TypeOf.AbstractClass), 'SearchProductsBase': TypeInfo(TypeOf.AbstractClass), 'Product': TypeInfo(TypeOf.Class, create:() => Product()), 'IHasName': TypeInfo(TypeOf.Interface), 'ProductQueryResponse': TypeInfo(TypeOf.Class, create:() => ProductQueryResponse()), 'Map?>': TypeInfo(TypeOf.Class, create:() => Map?>()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'Order': TypeInfo(TypeOf.Class, create:() => Order()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SearchProductsAsync': TypeInfo(TypeOf.Class, create:() => SearchProductsAsync()), });