/* Options: Date: 2025-12-15 18:41:15 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //GlobalNamespace: //MakePartial: True //MakeVirtual: True //MakeInternal: False //MakeDataContractsExtensible: False //AddNullableAnnotations: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //InitializeCollections: False //ExportValueTypes: False IncludeTypes: CreateVossUsage.* //ExcludeTypes: //AddNamespaces: //AddDefaultXmlNamespace: http://schemas.servicestack.net/types */ using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization; using ServiceStack; using ServiceStack.DataAnnotations; using System.Globalization; using ServiceStack.Data; using System.Net; using System.Net.Http.Headers; using BokaMera.VossIntegration.ApiTools.Enums; using BokaMera.VossIntegration.ApiTools.Model; using BokaMera.API.ServiceModel.Dtos; namespace BokaMera.API.ServiceModel.Dtos { [Route("/voss/usage", "POST")] [ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)] [ValidateRequest("IsAuthenticated")] public partial class CreateVossUsage : IReturn { /// ///The company id /// [ApiMember(Description="The company id", IsRequired=true)] public virtual Guid CompanyId { get; set; } /// ///Article number. Can be fetched from products /// [ApiMember(Description="Article number. Can be fetched from products", IsRequired=true)] public virtual string ArticleNumber { get; set; } /// ///Example: developer worked 6 hours /// [ApiMember(Description="Example: developer worked 6 hours", IsRequired=true)] public virtual int Quantity { get; set; } } } namespace BokaMera.VossIntegration.ApiTools.Enums { public enum CreditKindEnum { Normal, Internal, } public enum ProductGroupTypeEnum { Optional, Included, } public enum ProductTypeEnum { Main, Addon, License, Usage, } public enum SubscriptionBehaviourEnum { Prorate, Full, None, } } namespace BokaMera.VossIntegration.ApiTools.Model { [DataContract(Name="CreateSubscriptionProductGroupResult")] public partial class CreateSubscriptionProductGroupResult { [DataMember(Name="productGroupType", IsRequired=true)] public virtual ProductGroupTypeEnum ProductGroupType { get; set; } [DataMember(Name="status", IsRequired=true)] public virtual StatusEnum Status { get; set; } [DataMember(Name="id", IsRequired=true)] public virtual Guid Id { get; set; } [DataMember(Name="name", IsRequired=true)] public virtual string Name { get; set; } [DataMember(Name="products", EmitDefaultValue=false)] public virtual List Products { get; set; } = []; [DataMember(Name="termination")] public virtual SubscriptionItemTerminationDto Termination { get; set; } [DataMember(Name="created", IsRequired=true)] public virtual DateTime Created { get; set; } [DataMember(Name="customerBalanceChange", IsRequired=true)] public virtual CustomerBalanceChangeDto CustomerBalanceChange { get; set; } public enum StatusEnum { Active, Terminated, } } [DataContract(Name="CreditOptionsDto")] public partial class CreditOptionsDto { [DataMember(Name="behaviour", IsRequired=true)] public virtual SubscriptionBehaviourEnum SubscriptionBehaviour { get; set; } [DataMember(Name="creditKind", IsRequired=true)] public virtual CreditKindEnum CreditKind { get; set; } [DataMember(Name="prorateTimeAnchor")] public virtual DateTime? ProrateTimeAnchor { get; set; } } [DataContract(Name="CustomerBalanceChangeDto")] public partial class CustomerBalanceChangeDto { [DataMember(Name="items", EmitDefaultValue=false)] public virtual List Items { get; set; } = []; [DataMember(Name="totalAmount", EmitDefaultValue=false)] public virtual double TotalAmount { get; set; } [DataMember(Name="totalDiscountAmount", EmitDefaultValue=false)] public virtual double TotalDiscountAmount { get; set; } } [DataContract(Name="CustomerBalanceChangeItemDto")] public partial class CustomerBalanceChangeItemDto { [DataMember(Name="type", IsRequired=true)] public virtual ProductTypeEnum ProductType { get; set; } [DataMember(Name="id", IsRequired=true)] public virtual Guid Id { get; set; } [DataMember(Name="name", IsRequired=true)] public virtual string Name { get; set; } [DataMember(Name="productGroupId", IsRequired=true)] public virtual Guid ProductGroupId { get; set; } [DataMember(Name="productGroupName", IsRequired=true)] public virtual string ProductGroupName { get; set; } [DataMember(Name="quantity", IsRequired=true)] public virtual double Quantity { get; set; } [DataMember(Name="amount", IsRequired=true)] public virtual double Amount { get; set; } [DataMember(Name="discountAmount", IsRequired=true)] public virtual double DiscountAmount { get; set; } [DataMember(Name="totalAmount", EmitDefaultValue=false)] public virtual double TotalAmount { get; set; } [DataMember(Name="invoiceRecipientCustomerId", IsRequired=true)] public virtual Guid InvoiceRecipientCustomerId { get; set; } } [DataContract(Name="SubscriptionItemTerminationDto")] public partial class SubscriptionItemTerminationDto { [DataMember(Name="type")] public virtual TypeEnum Type { get; set; } [DataMember(Name="source", IsRequired=true)] public virtual SourceEnum Source { get; set; } [DataMember(Name="scheduledDate", IsRequired=true)] public virtual DateTime ScheduledDate { get; set; } [DataMember(Name="reason")] public virtual SubscriptionItemTerminationReasonDto Reason { get; set; } [DataMember(Name="creditOptions", IsRequired=true)] public virtual CreditOptionsDto CreditOptions { get; set; } public enum TypeEnum { AtSubscriptionBillingPeriodEnd, AtBindingPeriodEnd, Immediately, } public enum SourceEnum { Direct, Plan, CustomerExpiration, Update, Unpaid, } } [DataContract(Name="SubscriptionItemTerminationReasonDto")] public partial class SubscriptionItemTerminationReasonDto { [DataMember(Name="reasonId", IsRequired=true)] public virtual Guid ReasonId { get; set; } [DataMember(Name="reasonName", IsRequired=true)] public virtual string ReasonName { get; set; } [DataMember(Name="reasonExternalId")] public virtual string ReasonExternalId { get; set; } [DataMember(Name="subReasonId")] public virtual Guid? SubReasonId { get; set; } [DataMember(Name="subReasonName")] public virtual string SubReasonName { get; set; } [DataMember(Name="subReasonExternalId")] public virtual string SubReasonExternalId { get; set; } [DataMember(Name="comment", IsRequired=true)] public virtual string Comment { get; set; } } [DataContract(Name="SubscriptionProductGroupProductResultDto")] public partial class SubscriptionProductGroupProductResultDto { [DataMember(Name="id", IsRequired=true)] public virtual Guid Id { get; set; } [DataMember(Name="name", IsRequired=true)] public virtual string Name { get; set; } [DataMember(Name="externalId")] public virtual string ExternalId { get; set; } [DataMember(Name="articleNumber", IsRequired=true)] public virtual string ArticleNumber { get; set; } } }