/* Options: Date: 2024-11-26 04:00:52 Version: 8.12 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://taxfiling.staging.pwc.de //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: RetrieveAllCustomers.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface IPaginate { skip?: number; take?: number; } /** @description Represents a user account. */ // @Api(Description="Represents a user account.") export class Account implements IHasUserName { /** @description The unique identifier of the user account. */ // @ApiMember(Description="The unique identifier of the user account.", IsRequired=true) public id: number; /** @description 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) public index: number; /** @description The unique identifier of the customer associated with this account. */ // @ApiMember(Description="The unique identifier of the customer associated with this account.", IsRequired=true) public refId: number; /** @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'. */ // @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'.") public refIdStr?: string; /** @description The unique user name of the user account. */ // @ApiMember(Description="The unique user name of the user account.", IsRequired=true) public userName: string; /** @description The electronic mail address of the user account. */ // @ApiMember(Description="The electronic mail address of the user account.") public email?: string; /** @description The friendly name of the user account. */ // @ApiMember(Description="The friendly name of the user account.") public displayName?: string; /** @description 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.") public firstName?: string; /** @description 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.") public lastName?: string; /** @description The unique identifier of the customer associated with this account. */ // @ApiMember(Description="The unique identifier of the customer associated with this account.") public fullName?: string; /** @description The gender of the owner (natural person) of the user account. */ // @ApiMember(Description="The gender of the owner (natural person) of the user account.") public gender?: string; /** @description The language of the owner of teh user account. */ // @ApiMember(Description="The language of the owner of teh user account.") public language?: string; /** @description The company, where the user is an employee. */ // @ApiMember(Description="The company, where the user is an employee.") public company?: string; /** @description The profile URL of the user account. */ // @ApiMember(Description="The profile URL of the user account.", IsRequired=true) public profileUrl: string; /** @description The roles assigned to the user account. */ // @ApiMember(Description="The roles assigned to the user account.") public roles: string[]; /** @description The permissions assigned to the user account. */ // @ApiMember(Description="The permissions assigned to the user account.") public permissions: string[]; /** @description The primary e-mail address of the user. */ // @ApiMember(Description="The primary e-mail address of the user.") public primaryEmail?: string; /** @description Random data to enhance the security of the user password. */ // @ApiMember(Description="Random data to enhance the security of the user password.") public salt?: string; /** @description 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.") public passwordHash?: string; /** @description 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.") public digestHa1Hash?: string; /** @description 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.") public invalidLoginAttempts: number; /** @description The last time the user account attempted a sign in. */ // @ApiMember(Description="The last time the user account attempted a sign in.") public lastLoginAttempt?: string; /** @description The date and time when the user acount was denied access. */ // @ApiMember(Description="The date and time when the user acount was denied access.") public lockedDate?: string; /** @description The date and time when the user account was created. */ // @ApiMember(Description="The date and time when the user account was created.") public createdDate: string; /** @description The date and time when the user account was last modified. */ // @ApiMember(Description="The date and time when the user account was last modified.") public modifiedDate: string; /** @description The telephone number of the owner of the user account. */ // @ApiMember(Description="The telephone number of the owner of the user account.") public phoneNumber?: string; /** @description The birth date of the owner of the user account */ // @ApiMember(Description="The birth date of the owner of the user account") public birthDate?: string; /** @description The string representation of the birth date of the user account. */ // @ApiMember(Description="The string representation of the birth date of the user account.") public birthDateRaw?: string; /** @description The mail address of the user account. */ // @ApiMember(Description="The mail address of the user account.") public address?: string; /** @description Additional information for the specified 'Address' of the user. */ // @ApiMember(Description="Additional information for the specified 'Address' of the user.") public address2?: string; /** @description The city of the owner of the user account. */ // @ApiMember(Description="The city of the owner of the user account.") public city?: string; /** @description The state of the owner of the user account. */ // @ApiMember(Description="The state of the owner of the user account.") public state?: string; /** @description 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'.") public country?: string; /** @description The locale of the user account. */ // @ApiMember(Description="The locale of the user account.") public culture?: string; /** @description The mail address of the user account. */ // @ApiMember(Description="The mail address of the user account.") public mailAddress?: string; /** @description The nickname of the user of the user account. */ // @ApiMember(Description="The nickname of the user of the user account.") public nickname?: string; /** @description The postal code of the user account. */ // @ApiMember(Description="The postal code of the user account.") public postalCode?: string; /** @description The time zone of the user of the user account. */ // @ApiMember(Description="The time zone of the user of the user account.") public timeZone?: string; /** @description Additional information to attach to the user account. */ // @ApiMember(Description="Additional information to attach to the user account.") public meta?: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum CustomerType { Internal = 'Internal', Network = 'Network', External = 'External', } /** @description The number of query results to skip. */ // @Api(Description="The number of query results to skip.") export class PaginationBase implements IPaginate { /** @description The number of query results to skip. */ // @ApiMember(Description="The number of query results to skip.") public skip?: number; /** @description The number of query results to include. */ // @ApiMember(Description="The number of query results to include.") public take?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } /** @description Specifies a service to search for customers. */ // @Api(Description="Specifies a service to search for customers.") export class RetrieveAllCustomersBase extends PaginationBase implements IGet { /** @description Should related accounts be included in the retrieved customers? */ // @ApiMember(Description="Should related accounts be included in the retrieved customers?") public includeAccounts?: boolean; /** @description 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. ") public skipAccounts?: number; /** @description 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. ") public takeAccounts?: number; /** @description The number of query results to skip. */ // @ApiMember(Description="The number of query results to skip.") public skip?: number; /** @description The number of query results to include. */ // @ApiMember(Description="The number of query results to include.") public take?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } /** @description Represents a customer (business organization or entrepreneur). */ // @Api(Description="Represents a customer (business organization or entrepreneur).") export class Customer implements IHasName { /** @description The unique identifier of the customer. */ // @ApiMember(Description="The unique identifier of the customer.", IsRequired=true) public id: number; /** @description 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) public index: number; /** @description Full name or organization name of customer. */ // @ApiMember(Description="Full name or organization name of customer.", IsRequired=true) // @Validate(Validator="NotEmpty") public name: string; /** @description The country of residence or business of customer. */ // @ApiMember(Description="The country of residence or business of customer.") public country?: string; /** @description The type of customer. */ // @ApiMember(Description="The type of customer.") public type: CustomerType; /** @description The list of user accounts associated with this customer. */ // @ApiMember(Description="The list of user accounts associated with this customer.") // @Ignore() public accounts: Account[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseError { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public fieldName: string; // @DataMember(Order=3) public message: string; // @DataMember(Order=4) public meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public message: string; // @DataMember(Order=3) public stackTrace: string; // @DataMember(Order=4) public errors: ResponseError[]; // @DataMember(Order=5) public meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class QueryResponse { // @DataMember(Order=1) public offset: number; // @DataMember(Order=2) public total: number; // @DataMember(Order=3) public results: T[]; // @DataMember(Order=4) public meta: { [index: string]: string; }; // @DataMember(Order=5) public responseStatus: ResponseStatus; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } /** @description Specifies that a data type should have a 'UserName' property. */ export interface IHasUserName { userName?: string; } /** @description Specifies that a data type should have a 'Name' property. */ export interface IHasName { /** @description The 'Name' property. */ name?: string; } /** @description 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.") export class CustomerQueryResponse extends QueryResponse { // @DataMember(Order=1) public offset: number; // @DataMember(Order=2) public total: number; // @DataMember(Order=3) public results: Customer[]; // @DataMember(Order=4) public meta: { [index: string]: string; }; // @DataMember(Order=5) public responseStatus: ResponseStatus; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } /** @description Represents a service request to retrieve all customers. */ // @Route("/sync/customers", "GET") // @Api(Description="Represents a service request to retrieve all customers.") export class RetrieveAllCustomers extends RetrieveAllCustomersBase implements IReturn { /** @description Should related accounts be included in the retrieved customers? */ // @ApiMember(Description="Should related accounts be included in the retrieved customers?") public includeAccounts?: boolean; /** @description 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. ") public skipAccounts?: number; /** @description 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. ") public takeAccounts?: number; /** @description The number of query results to skip. */ // @ApiMember(Description="The number of query results to skip.") public skip?: number; /** @description The number of query results to include. */ // @ApiMember(Description="The number of query results to include.") public take?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'RetrieveAllCustomers'; } public getMethod() { return 'GET'; } public createResponse() { return new CustomerQueryResponse(); } }