/* Options: Date: 2025-07-04 10:29:52 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: GenerateDocument.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Generate custom Document (Don't use from inside VSTO's) */ // @Api(Description="Generate custom Document (Don't use from inside VSTO's)") public class GenerateDocument : IReturn, IGenerateDocument, Codable { public typealias Return = GenerateDocumentResponse /** * DigiOffice user */ // @ApiMember(Description="DigiOffice user") public var user:UserReference /** * 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 /** * 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 /** * Should update the document file. */ // @ApiMember(Description="Should update the document file.") public var shouldUpdateDocumentFile:Bool required public init(){} } public class GenerateDocumentResponse : IGenerateDocumentResponse, Codable { /** * Contains the registration ID of the generated (corporate identity) document */ // @ApiMember(Description="Contains the registration ID of the generated (corporate identity) document", IsRequired=true) public var documentID: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 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 IGenerateDocument : IDocument { var user:UserReference { get set } var sendMail:Bool { get set } var shouldUpdateDocumentFile:Bool { get set } } 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 IGenerateDocumentResponse { var documentID: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(){} }