/* Options: Date: 2024-12-21 17:48:59 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: SearchCustomers.* //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; } /** * Represents a user account. */ // @Api(Description="Represents a user account.") class Account implements IHasUserName, IConvertible { /** * The unique identifier of the user account. */ // @ApiMember(Description="The unique identifier of the user account.", IsRequired=true) int? id; /** * The position of this instance in a collection of 'Account' instances */ // @ApiMember(Description="The position of this instance in a collection of 'Account' instances", IsRequired=true) int? index; /** * The unique identifier of the customer associated with this account. */ // @ApiMember(Description="The unique identifier of the customer associated with this account.", IsRequired=true) int? refId; /** * The string representation of the unique identifier of a reference that associates with this user account. This should have the same value as 'RefId'. */ // @ApiMember(Description="The string representation of the unique identifier of a reference that associates with this user account. This should have the same value as 'RefId'.") String? refIdStr; /** * The unique user name of the user account. */ // @ApiMember(Description="The unique user name of the user account.", IsRequired=true) String? userName; /** * The electronic mail address of the user account. */ // @ApiMember(Description="The electronic mail address of the user account.") String? email; /** * The friendly name of the user account. */ // @ApiMember(Description="The friendly name of the user account.") String? displayName; /** * The first name of the owner (natural person) of the user account. */ // @ApiMember(Description="The first name of the owner (natural person) of the user account.") String? firstName; /** * The last name of the owner (natural person) of the user account. */ // @ApiMember(Description="The last name of the owner (natural person) of the user account.") String? lastName; /** * The unique identifier of the customer associated with this account. */ // @ApiMember(Description="The unique identifier of the customer associated with this account.") String? fullName; /** * The gender of the owner (natural person) of the user account. */ // @ApiMember(Description="The gender of the owner (natural person) of the user account.") String? gender; /** * The language of the owner of teh user account. */ // @ApiMember(Description="The language of the owner of teh user account.") String? language; /** * The company, where the user is an employee. */ // @ApiMember(Description="The company, where the user is an employee.") String? company; /** * The profile URL of the user account. */ // @ApiMember(Description="The profile URL of the user account.", IsRequired=true) String? profileUrl; /** * The roles assigned to the user account. */ // @ApiMember(Description="The roles assigned to the user account.") List? roles; /** * The permissions assigned to the user account. */ // @ApiMember(Description="The permissions assigned to the user account.") List? permissions; /** * The primary e-mail address of the user. */ // @ApiMember(Description="The primary e-mail address of the user.") String? primaryEmail; /** * Random data to enhance the security of the user password. */ // @ApiMember(Description="Random data to enhance the security of the user password.") String? salt; /** * The hash value of the user password that the PBKDF2 algorithm produces. */ // @ApiMember(Description="The hash value of the user password that the PBKDF2 algorithm produces.") String? passwordHash; /** * The hash value of the user password that the DigestHa1 algorithm produces. */ // @ApiMember(Description="The hash value of the user password that the DigestHa1 algorithm produces.") String? digestHa1Hash; /** * The number of times the user account tried to sign in but failed. */ // @ApiMember(Description="The number of times the user account tried to sign in but failed.") int? invalidLoginAttempts; /** * The last time the user account attempted a sign in. */ // @ApiMember(Description="The last time the user account attempted a sign in.") DateTime? lastLoginAttempt; /** * The date and time when the user acount was denied access. */ // @ApiMember(Description="The date and time when the user acount was denied access.") DateTime? lockedDate; /** * The date and time when the user account was created. */ // @ApiMember(Description="The date and time when the user account was created.") DateTime? createdDate; /** * The date and time when the user account was last modified. */ // @ApiMember(Description="The date and time when the user account was last modified.") DateTime? modifiedDate; /** * The telephone number of the owner of the user account. */ // @ApiMember(Description="The telephone number of the owner of the user account.") String? phoneNumber; /** * The birth date of the owner of the user account */ // @ApiMember(Description="The birth date of the owner of the user account") DateTime? birthDate; /** * The string representation of the birth date of the user account. */ // @ApiMember(Description="The string representation of the birth date of the user account.") String? birthDateRaw; /** * The mail address of the user account. */ // @ApiMember(Description="The mail address of the user account.") String? address; /** * Additional information for the specified 'Address' of the user. */ // @ApiMember(Description="Additional information for the specified 'Address' of the user.") String? address2; /** * The city of the owner of the user account. */ // @ApiMember(Description="The city of the owner of the user account.") String? city; /** * The state of the owner of the user account. */ // @ApiMember(Description="The state of the owner of the user account.") String? state; /** * The country of the owner of the user account. It is recommended to use the name of the associated 'Customer'. */ // @ApiMember(Description="The country of the owner of the user account. It is recommended to use the name of the associated 'Customer'.") String? country; /** * The locale of the user account. */ // @ApiMember(Description="The locale of the user account.") String? culture; /** * The mail address of the user account. */ // @ApiMember(Description="The mail address of the user account.") String? mailAddress; /** * The nickname of the user of the user account. */ // @ApiMember(Description="The nickname of the user of the user account.") String? nickname; /** * The postal code of the user account. */ // @ApiMember(Description="The postal code of the user account.") String? postalCode; /** * The time zone of the user of the user account. */ // @ApiMember(Description="The time zone of the user of the user account.") String? timeZone; /** * Additional information to attach to the user account. */ // @ApiMember(Description="Additional information to attach to the user account.") Map? meta; Account({this.id,this.index,this.refId,this.refIdStr,this.userName,this.email,this.displayName,this.firstName,this.lastName,this.fullName,this.gender,this.language,this.company,this.profileUrl,this.roles,this.permissions,this.primaryEmail,this.salt,this.passwordHash,this.digestHa1Hash,this.invalidLoginAttempts,this.lastLoginAttempt,this.lockedDate,this.createdDate,this.modifiedDate,this.phoneNumber,this.birthDate,this.birthDateRaw,this.address,this.address2,this.city,this.state,this.country,this.culture,this.mailAddress,this.nickname,this.postalCode,this.timeZone,this.meta}); Account.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; index = json['index']; refId = json['refId']; refIdStr = json['refIdStr']; userName = json['userName']; email = json['email']; displayName = json['displayName']; firstName = json['firstName']; lastName = json['lastName']; fullName = json['fullName']; gender = json['gender']; language = json['language']; company = json['company']; profileUrl = json['profileUrl']; roles = JsonConverters.fromJson(json['roles'],'List',context!); permissions = JsonConverters.fromJson(json['permissions'],'List',context!); primaryEmail = json['primaryEmail']; salt = json['salt']; passwordHash = json['passwordHash']; digestHa1Hash = json['digestHa1Hash']; invalidLoginAttempts = json['invalidLoginAttempts']; lastLoginAttempt = JsonConverters.fromJson(json['lastLoginAttempt'],'DateTime',context!); lockedDate = JsonConverters.fromJson(json['lockedDate'],'DateTime',context!); createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!); modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!); phoneNumber = json['phoneNumber']; birthDate = JsonConverters.fromJson(json['birthDate'],'DateTime',context!); birthDateRaw = json['birthDateRaw']; address = json['address']; address2 = json['address2']; city = json['city']; state = json['state']; country = json['country']; culture = json['culture']; mailAddress = json['mailAddress']; nickname = json['nickname']; postalCode = json['postalCode']; timeZone = json['timeZone']; meta = JsonConverters.toStringMap(json['meta']); return this; } Map toJson() => { 'id': id, 'index': index, 'refId': refId, 'refIdStr': refIdStr, 'userName': userName, 'email': email, 'displayName': displayName, 'firstName': firstName, 'lastName': lastName, 'fullName': fullName, 'gender': gender, 'language': language, 'company': company, 'profileUrl': profileUrl, 'roles': JsonConverters.toJson(roles,'List',context!), 'permissions': JsonConverters.toJson(permissions,'List',context!), 'primaryEmail': primaryEmail, 'salt': salt, 'passwordHash': passwordHash, 'digestHa1Hash': digestHa1Hash, 'invalidLoginAttempts': invalidLoginAttempts, 'lastLoginAttempt': JsonConverters.toJson(lastLoginAttempt,'DateTime',context!), 'lockedDate': JsonConverters.toJson(lockedDate,'DateTime',context!), 'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!), 'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!), 'phoneNumber': phoneNumber, 'birthDate': JsonConverters.toJson(birthDate,'DateTime',context!), 'birthDateRaw': birthDateRaw, 'address': address, 'address2': address2, 'city': city, 'state': state, 'country': country, 'culture': culture, 'mailAddress': mailAddress, 'nickname': nickname, 'postalCode': postalCode, 'timeZone': timeZone, 'meta': meta }; getTypeName() => "Account"; TypeContext? context = _ctx; } enum CustomerType { Internal, Network, External, } /** * 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 customers. */ // @Api(Description="Specifies a service to search for customers.") abstract class SearchCustomersBase extends PaginationBase implements IGet { /** * The unique identifier of the customer. */ // @ApiMember(Description="The unique identifier of the customer.") int? customerId; /** * The name of the customer. */ // @ApiMember(Description="The name of the customer.") String? name; /** * Search by using the name of the customer that starts with the specified value. */ // @ApiMember(Description="Search by using the name of the customer that starts with the specified value.") String? nameStartsWith; /** * Search by using the name of the customer that ends with the specified value. */ // @ApiMember(Description="Search by using the name of the customer that ends with the specified value.") String? nameEndsWith; /** * Search by using the name of the customer that contains the specified value. */ // @ApiMember(Description="Search by using the name of the customer that contains the specified value.") String? nameContains; /** * The country of residence or headquarters of customer. */ // @ApiMember(Description="The country of residence or headquarters of customer.") String? country; /** * Search by using the country of the customer that starts with the specified value. */ // @ApiMember(Description="Search by using the country of the customer that starts with the specified value.") String? countryStartsWith; /** * Search by using the country of the customer that ends with the specified value. */ // @ApiMember(Description="Search by using the country of the customer that ends with the specified value.") String? countryEndsWith; /** * Search by using the country of the customer that contains the specified value. */ // @ApiMember(Description="Search by using the country of the customer that contains the specified value.") String? countryContains; /** * The type of customer. */ // @ApiMember(Description="The type of customer.") CustomerType? type; /** * Should related accounts be included in the retrieved customers? */ // @ApiMember(Description="Should related accounts be included in the retrieved customers?") bool? includeAccounts; /** * Specifies the number of products to skip per customer. Applicable only when 'IncludeAccounts' is true. */ // @ApiMember(Description="Specifies the number of products to skip per customer. Applicable only when 'IncludeAccounts' is true. ") int? skipAccounts; /** * Specifies the number of products to include per customer. Applicable only when 'IncludeAccounts' is true. */ // @ApiMember(Description="Specifies the number of products to include per customer. Applicable only when 'IncludeAccounts' is true. ") int? takeAccounts; /** * 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; SearchCustomersBase({this.customerId,this.name,this.nameStartsWith,this.nameEndsWith,this.nameContains,this.country,this.countryStartsWith,this.countryEndsWith,this.countryContains,this.type,this.includeAccounts,this.skipAccounts,this.takeAccounts,this.skip,this.take}); SearchCustomersBase.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); customerId = json['customerId']; name = json['name']; nameStartsWith = json['nameStartsWith']; nameEndsWith = json['nameEndsWith']; nameContains = json['nameContains']; country = json['country']; countryStartsWith = json['countryStartsWith']; countryEndsWith = json['countryEndsWith']; countryContains = json['countryContains']; type = JsonConverters.fromJson(json['type'],'CustomerType',context!); includeAccounts = json['includeAccounts']; skipAccounts = json['skipAccounts']; takeAccounts = json['takeAccounts']; skip = json['skip']; take = json['take']; return this; } Map toJson() => super.toJson()..addAll({ 'customerId': customerId, 'name': name, 'nameStartsWith': nameStartsWith, 'nameEndsWith': nameEndsWith, 'nameContains': nameContains, 'country': country, 'countryStartsWith': countryStartsWith, 'countryEndsWith': countryEndsWith, 'countryContains': countryContains, 'type': JsonConverters.toJson(type,'CustomerType',context!), 'includeAccounts': includeAccounts, 'skipAccounts': skipAccounts, 'takeAccounts': takeAccounts, 'skip': skip, 'take': take }); getTypeName() => "SearchCustomersBase"; TypeContext? context = _ctx; } /** * Represents a customer (business organization or entrepreneur). */ // @Api(Description="Represents a customer (business organization or entrepreneur).") class Customer implements IHasName, IConvertible { /** * The unique identifier of the customer. */ // @ApiMember(Description="The unique identifier of the customer.", IsRequired=true) int? id; /** * The position of this instance in a collection of 'Customer' instances */ // @ApiMember(Description="The position of this instance in a collection of 'Customer' instances", IsRequired=true) int? index; /** * Full name or organization name of customer. */ // @ApiMember(Description="Full name or organization name of customer.", IsRequired=true) // @Validate(Validator="NotEmpty") String? name; /** * The country of residence or business of customer. */ // @ApiMember(Description="The country of residence or business of customer.") String? country; /** * The type of customer. */ // @ApiMember(Description="The type of customer.") CustomerType? type; /** * The list of user accounts associated with this customer. */ // @ApiMember(Description="The list of user accounts associated with this customer.") // @ignore() List? accounts; Customer({this.id,this.index,this.name,this.country,this.type,this.accounts}); Customer.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; index = json['index']; name = json['name']; country = json['country']; type = JsonConverters.fromJson(json['type'],'CustomerType',context!); accounts = JsonConverters.fromJson(json['accounts'],'List',context!); return this; } Map toJson() => { 'id': id, 'index': index, 'name': name, 'country': country, 'type': JsonConverters.toJson(type,'CustomerType',context!), 'accounts': JsonConverters.toJson(accounts,'List',context!) }; getTypeName() => "Customer"; TypeContext? context = _ctx; } /** * Specifies that a data type should have a 'UserName' property. */ abstract class IHasUserName { String? userName; } /** * 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 customers. */ // @Api(Description="Represents a query response that contains a structured error information and encapsulates customers.") class CustomerQueryResponse extends QueryResponse implements IConvertible { // @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; CustomerQueryResponse({this.offset,this.total,this.results,this.meta,this.responseStatus}); CustomerQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); 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({ 'offset': offset, 'total': total, 'results': JsonConverters.toJson(results,'List',context!), 'meta': meta, 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }); getTypeName() => "CustomerQueryResponse"; TypeContext? context = _ctx; } /** * Represents a service request to query customer data. */ // @Route("/sync/customers/search", "GET") // @Api(Description="Represents a service request to query customer data.") class SearchCustomers extends SearchCustomersBase implements IReturn, IConvertible, IGet { /** * The unique identifier of the customer. */ // @ApiMember(Description="The unique identifier of the customer.") int? customerId; /** * The name of the customer. */ // @ApiMember(Description="The name of the customer.") String? name; /** * Search by using the name of the customer that starts with the specified value. */ // @ApiMember(Description="Search by using the name of the customer that starts with the specified value.") String? nameStartsWith; /** * Search by using the name of the customer that ends with the specified value. */ // @ApiMember(Description="Search by using the name of the customer that ends with the specified value.") String? nameEndsWith; /** * Search by using the name of the customer that contains the specified value. */ // @ApiMember(Description="Search by using the name of the customer that contains the specified value.") String? nameContains; /** * The country of residence or headquarters of customer. */ // @ApiMember(Description="The country of residence or headquarters of customer.") String? country; /** * Search by using the country of the customer that starts with the specified value. */ // @ApiMember(Description="Search by using the country of the customer that starts with the specified value.") String? countryStartsWith; /** * Search by using the country of the customer that ends with the specified value. */ // @ApiMember(Description="Search by using the country of the customer that ends with the specified value.") String? countryEndsWith; /** * Search by using the country of the customer that contains the specified value. */ // @ApiMember(Description="Search by using the country of the customer that contains the specified value.") String? countryContains; /** * The type of customer. */ // @ApiMember(Description="The type of customer.") CustomerType? type; /** * Should related accounts be included in the retrieved customers? */ // @ApiMember(Description="Should related accounts be included in the retrieved customers?") bool? includeAccounts; /** * Specifies the number of products to skip per customer. Applicable only when 'IncludeAccounts' is true. */ // @ApiMember(Description="Specifies the number of products to skip per customer. Applicable only when 'IncludeAccounts' is true. ") int? skipAccounts; /** * Specifies the number of products to include per customer. Applicable only when 'IncludeAccounts' is true. */ // @ApiMember(Description="Specifies the number of products to include per customer. Applicable only when 'IncludeAccounts' is true. ") int? takeAccounts; /** * 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; SearchCustomers({this.customerId,this.name,this.nameStartsWith,this.nameEndsWith,this.nameContains,this.country,this.countryStartsWith,this.countryEndsWith,this.countryContains,this.type,this.includeAccounts,this.skipAccounts,this.takeAccounts,this.skip,this.take}); SearchCustomers.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); customerId = json['customerId']; name = json['name']; nameStartsWith = json['nameStartsWith']; nameEndsWith = json['nameEndsWith']; nameContains = json['nameContains']; country = json['country']; countryStartsWith = json['countryStartsWith']; countryEndsWith = json['countryEndsWith']; countryContains = json['countryContains']; type = JsonConverters.fromJson(json['type'],'CustomerType',context!); includeAccounts = json['includeAccounts']; skipAccounts = json['skipAccounts']; takeAccounts = json['takeAccounts']; skip = json['skip']; take = json['take']; return this; } Map toJson() => super.toJson()..addAll({ 'customerId': customerId, 'name': name, 'nameStartsWith': nameStartsWith, 'nameEndsWith': nameEndsWith, 'nameContains': nameContains, 'country': country, 'countryStartsWith': countryStartsWith, 'countryEndsWith': countryEndsWith, 'countryContains': countryContains, 'type': JsonConverters.toJson(type,'CustomerType',context!), 'includeAccounts': includeAccounts, 'skipAccounts': skipAccounts, 'takeAccounts': takeAccounts, 'skip': skip, 'take': take }); createResponse() => CustomerQueryResponse(); getResponseTypeName() => "CustomerQueryResponse"; getTypeName() => "SearchCustomers"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'taxfiling.pwc.de', types: { 'IPaginate': TypeInfo(TypeOf.Interface), 'Account': TypeInfo(TypeOf.Class, create:() => Account()), 'CustomerType': TypeInfo(TypeOf.Enum, enumValues:CustomerType.values), 'PaginationBase': TypeInfo(TypeOf.AbstractClass), 'SearchCustomersBase': TypeInfo(TypeOf.AbstractClass), 'Customer': TypeInfo(TypeOf.Class, create:() => Customer()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'IHasUserName': TypeInfo(TypeOf.Interface), 'IHasName': TypeInfo(TypeOf.Interface), 'CustomerQueryResponse': TypeInfo(TypeOf.Class, create:() => CustomerQueryResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SearchCustomers': TypeInfo(TypeOf.Class, create:() => SearchCustomers()), });