/* Options: Date: 2025-07-04 10:15:48 SwiftVersion: 5.0 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://doapigw.baasbv.nl/api //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GenerateDocumentBatch.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent. */ // @Api(Description="Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.") public class GenerateDocumentBatch : IReturn, IGenerateDocumentBatch, Codable { public typealias Return = GenerateDocumentBatchResponse /** * Owner of the badge (DigiOffice user) */ // @ApiMember(Description="Owner of the badge (DigiOffice user)") public var user:UserReference /** * Description of the badge */ // @ApiMember(Description="Description of the badge", IsRequired=true) public var Description:String /** * Corporate identity document(s) to be generate */ // @ApiMember(AllowMultiple=true, Description="Corporate identity document(s) to be generate", IsRequired=true) public var documents:[BatchDocument] = [] /** * Generated document is not registered in DigiOffice DMS. */ // @ApiMember(Description="Generated document is not registered in DigiOffice DMS.") public var dontRegister:Bool? /** * Send the generated e-mail via the e-mail queue. */ // @ApiMember(Description="Send the generated e-mail via the e-mail queue.") public var sendMail:Bool required public init(){} } public class GenerateDocumentBatchResponse : IGenerateDocumentBatchResponse, Codable { /** * ID of the batch */ // @ApiMember(Description="ID of the batch", IsRequired=true) public var batchID:String /** * Document processed count */ // @ApiMember(Description="Document processed count", IsRequired=true) public var processed:Int /** * Track and Trace url */ // @ApiMember(Description="Track and Trace url", IsRequired=true) public var trackAndTraceUrl:String required public init(){} } public class UserReference : IEntityReference, Codable { public var id:Int? public var loginName:String public var userPrincipalName:String public var fullName:String public var emailAddress:String public var globalID:String? required public init(){} } public class BatchDocument : IDocument, Codable { /** * ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel. */ // @ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true) public var configurationSource:ConfigurationSource /** * Set references to bind with Registration profile */ // @ApiMember(Description="Set references to bind with Registration profile", IsRequired=true) public var registrationMetaData:RegistrationMetaData /** * Entity instance used as data source parent, if not exists default is Document registration instance. */ // @ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.") public var dataSourceEntity:CommonEntityBaseReference /** * Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element. */ // @ApiMember(Description="Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.") public var customData:String /** * Insert a watermark into the document. */ // @ApiMember(Description="Insert a watermark into the document.") public var watermark:Watermark /** * Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf. */ // @ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.") public var outputType:String required public init(){} } public protocol IGenerateDocumentBatch { var user:UserReference { get set } var Description:String { get set } var documents:[BatchDocument] { get set } var dontRegister:Bool? { get set } var sendMail:Bool { get set } } public class ConfigurationSource : Codable { /** * Document genereren op basis van een DocGenDocument. */ public var documentgeneratorDocument:DocumentgeneratorDocumentReference /** * Document genereren op basis van een RegistratieProfiel. */ public var registrationProfile:RegistrationProfileReference /** * Use existing document registration. */ public var registeredDocument:DocumentReference /** * Use documentInfo. */ public var unRegisteredDocument:DocumentInfo /** * Use draft document registration. */ public var draftDocumentRegistration:MessageQueueReference public var documentgeneratorType:String /** * DocumentgeneratorType voor bijvoorbeeld Word of Email. */ public var documentgeneratorTypeName:String public var templateExtension:String public var outputExtension:String required public init(){} } public class RegistrationMetaData : Codable { /** * Hoe moet het versiebeheer worden toegepast? */ // @ApiMember(Description="Hoe moet het versiebeheer worden toegepast?") public var versioning:VersioningType? /** * Previous document will be used for registration of a new version. */ // @ApiMember(Description="Previous document will be used for registration of a new version.") public var previousDocument:DocumentReference /** * Company */ // @ApiMember(Description="Company") public var company:CompanyReference /** * Relation */ // @ApiMember(Description="Relation") public var relation:RelationReference /** * Person */ // @ApiMember(Description="Person") public var person:PersonReference /** * Project */ // @ApiMember(Description="Project") public var project:ProjectReference /** * Sub projects */ // @ApiMember(AllowMultiple=true, Description="Sub projects") public var subProjects:[SubProject] = [] /** * Signers */ // @ApiMember(AllowMultiple=true, Description="Signers") public var signers:[Signer] = [] /** * Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie. */ // @ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.") public var fields:[Field] = [] /** * Attachments die aan de documentregistratie gekoppeld moet worden. */ // @ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.") public var attachments:[Attachment] = [] required public init(){} } public class CommonEntityBaseReference : IEntityReference, Codable { public var id:String public var externalID:String public var globalID:String? required public init(){} } public class Watermark : Codable { public var text:String public var fontFamilyText:String public var fontFamily:FontFamily public var direction:Direction? public var strokeColorText:String public var strokeColor:Color public var fillColorText:String public var fillColor:Color required public init(){} } public protocol IDocument { var configurationSource:ConfigurationSource { get set } var dataSourceEntity:CommonEntityBaseReference { get set } var registrationMetaData:RegistrationMetaData { get set } var customData:String { get set } var watermark:Watermark { get set } var outputType:String { get set } } public enum DocInfoSilentMode : String, Codable { case Off case AllowUserInteraction case DoNotAllowUserInteraction } public protocol IGenerateDocumentBatchResponse { var batchID:String { get set } var processed:Int { get set } var trackAndTraceUrl:String { get set } } public protocol IEntityReference { var globalID:String? { get set } } public class DocumentgeneratorDocumentReference : IEntityReference, Codable { public var id:String? public var name:String public var globalID:String? required public init(){} } public class RegistrationProfileReference : IEntityReference, Codable { public var id:String public var globalID:String? required public init(){} } public class DocumentReference : IEntityReference, Codable { public var id:String? public var code:String public var versionCode:String public var rootDocID:String? public var internalInvoiceCode:String public var companyNumber:Int? public var documentTypeID:String public var invoiceType:Int? public var regProfCatID:Int? public var globalID:String? public var externalID:String public var externNr:String public var externVersieNr:String public var internNummer:String required public init(){} } public class DocumentInfo : Codable { public var action:DocInfoAction public var mode:DocInfoMode public var version:String public var silentMode:DocInfoSilentMode required public init(){} } public class MessageQueueReference : IEntityReference, Codable { public var id:Int? public var globalID:String? required public init(){} } public enum VersioningType : String, Codable { case New case Change case Primary case Secondary } public class CompanyReference : IEntityReference, Codable { public var id:Int? public var number:Int? public var globalID:String? public var externalID:String required public init(){} } public class RelationReference : IEntityReference, Codable { public var id:Int? public var creditorNumber:Int? public var debtorNumber:Int? public var globalLocationNumber:String public var globalID:String? public var externalID:String required public init(){} } public class PersonReference : IEntityReference, Codable { public var id:Int? public var number:Int? public var globalID:String? public var externalID:String required public init(){} } public class ProjectReference : IEntityReference, Codable { public var id:Int? public var code:String public var typeExternalID:String public var companyNumber:Int? public var globalID:String? public var externalID:String required public init(){} } public class SubProject : Codable { public var project:ProjectReference required public init(){} } public class Signer : Codable { public var mainSignerPostFix:String public var user:UserReference public var person:PersonReference public var relation:RelationReference public var contactPerson:ContactPersonReference public var registeredDocument:DocumentReference public var type:SignerType public var closingSentence:String public var name:String public var subsidiary:String public var function:String public var department:String public var phoneNumber:String public var faxNumber:String public var mobileNumber:String public var email:String public var customText:String public var signature:[String] = [] public var initials:[String] = [] public var signatureVisible:Bool? public var initialsVisible:Bool? public var visible:Bool? required public init(){} } public class Field : Codable { public var name:String public var oldValue:String public var value:String public var title:String required public init(){} } public class Attachment : Codable { public var name:String public var attachmentData:AttachmentData required public init(){} } public enum Direction : Int, Codable { case Left2Right = 0 case UpLeft2DownRight = 45 case Up2Down = 90 case UpRight2DownLeft = 135 case Right2Left = 180 case DownRight2UpLeft = 225 case Down2Up = 270 case DownLeft2UpRight = 315 } public enum DocInfoAction : String, Codable { case Create case Register } public enum DocInfoMode : String, Codable { case New case Change case NewVersionPrimary case NewVersionSecondary case NewFromExistingDocument } public class ContactPersonReference : IEntityReference, Codable { public var id:Int? public var globalID:String? public var externalID:String public var relationID:Int? public var personID:Int? required public init(){} } public enum SignerType : String, Codable { case MainSigner case AdditionalSigner case ConfirmationDeclarant case AdditionalConfirmationDeclarant } public class AttachmentData : Codable { public var contentType:String /** * Data base64-encoded zonder padding. */ public var data:String required public init(){} }