/* Options: Date: 2025-04-07 13:49:39 Version: 8.52 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<String, dynamic> json) { fromMap(json); } fromMap(Map<String, dynamic> json) { skip = json['skip']; take = json['take']; return this; } Map<String, dynamic> 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; 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}); SearchProductsBase.fromJson(Map<String, dynamic> json) { fromMap(json); } fromMap(Map<String, dynamic> 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']; return this; } Map<String, dynamic> 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 }); 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<String>? tags = []; Product({this.id,this.index,this.name,this.version,this.description,this.tags}); Product.fromJson(Map<String, dynamic> json) { fromMap(json); } fromMap(Map<String, dynamic> json) { id = json['id']; index = json['index']; name = json['name']; version = json['version']; description = json['description']; tags = JsonConverters.fromJson(json['tags'],'List<String>',context!); return this; } Map<String, dynamic> toJson() => { 'id': id, 'index': index, 'name': name, 'version': version, 'description': description, 'tags': JsonConverters.toJson(tags,'List<String>',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<Product> implements IConvertible { /** * The dictionary of orders associated with each found product. */ // @ApiMember(Description="The dictionary of orders associated with each found product.") Map<int,List<Order>?>? ordersMap = {}; ProductQueryResponse({this.ordersMap}); ProductQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); } fromMap(Map<String, dynamic> json) { super.fromMap(json); ordersMap = JsonConverters.fromJson(json['ordersMap'],'Map<int,List<Order>?>',context!); return this; } Map<String, dynamic> toJson() => super.toJson()..addAll({ 'ordersMap': JsonConverters.toJson(ordersMap,'Map<int,List<Order>?>',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<ProductQueryResponse>, IConvertible, IGet { SearchProductsAsync(); SearchProductsAsync.fromJson(Map<String, dynamic> json) : super.fromJson(json); fromMap(Map<String, dynamic> json) { super.fromMap(json); return this; } Map<String, dynamic> toJson() => super.toJson(); createResponse() => ProductQueryResponse(); getResponseTypeName() => "ProductQueryResponse"; getTypeName() => "SearchProductsAsync"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'taxfiling.pwc.de', types: <String, TypeInfo> { '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<int,List<Order>?>': TypeInfo(TypeOf.Class, create:() => Map<int,List<Order>?>()), 'List<Order>': TypeInfo(TypeOf.Class, create:() => <Order>[]), 'Order': TypeInfo(TypeOf.Class, create:() => Order()), 'SearchProductsAsync': TypeInfo(TypeOf.Class, create:() => SearchProductsAsync()), });