/* Options:
Date: 2025-11-04 02:25:56
Version: 8.80
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://api.bokamera.se
//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: PaymentLogQuery.*
//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.API.ServiceModel.Interfaces;
using BokaMera.API.ServiceModel.Db;
using BokaMera.API.ServiceModel.Dtos;
namespace BokaMera.API.ServiceModel.Db
{
    public partial class ArticleType
        : BaseModel
    {
        public virtual int ArticleTypeId { get; set; }
        [Required]
        public virtual string ArticleTypeName { get; set; }
        public virtual string ArticleTypeDescription { get; set; }
    }
    public partial class BaseModel
    {
    }
    public partial class Currency
        : BaseModel
    {
        [Required]
        public virtual string Name { get; set; }
        [Required]
        public virtual string CurrencySign { get; set; }
        [Required]
        public virtual bool Active { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
        [Required]
        public virtual string Id { get; set; }
    }
    public partial class PaymentLog
        : BaseModel
    {
        [References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
        public virtual string CurrencyId { get; set; }
        public virtual Currency CurrencyInfo { get; set; }
        [Required]
        public virtual Guid CompanyId { get; set; }
        public virtual int Id { get; set; }
        [Required]
        public virtual string InternalReferenceId { get; set; }
        [Required]
        public virtual int ArticleTypeId { get; set; }
        public virtual string PaymentReferenceId { get; set; }
        public virtual int? PaymentProviderId { get; set; }
        public virtual string OrderItemReferenceId { get; set; }
        public virtual double? Amount { get; set; }
        public virtual decimal? VAT { get; set; }
        public virtual double? AmountCredited { get; set; }
        public virtual string Comments { get; set; }
        [Required]
        public virtual DateTime Created { get; set; }
        [Required]
        public virtual DateTime Updated { get; set; }
        public virtual DateTimeOffset? ModifiedDate { get; set; }
    }
}
namespace BokaMera.API.ServiceModel.Dtos
{
    public partial class CurrencyInfoResponse
    {
        ///
        ///The currency id
        ///
        [ApiMember(Description="The currency id")]
        public virtual string Id { get; set; }
        ///
        ///The currency id
        ///
        [ApiMember(Description="The currency id")]
        public virtual string Name { get; set; }
        ///
        ///The currency id
        ///
        [ApiMember(Description="The currency id")]
        public virtual string CurrencySign { get; set; }
    }
    [Route("/articles/payments", "GET")]
    [ValidateRequest("IsAuthenticated")]
    public partial class PaymentLogQuery
        : QueryDb, IReturn>, ICompany
    {
        ///
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///
        [ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")]
        public virtual Guid? CompanyId { get; set; }
        ///
        ///Start of interval to query for payments when they where created. UTC+0 and parameter as defined by date-time - RFC3339
        ///
        [ApiMember(DataType="dateTime", Description="Start of interval to query for payments when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")]
        public virtual DateTime? CreatedFrom { get; set; }
        ///
        ///End of interval to query for payments when they where created. UTC+0 and parameter as defined by date-time - RFC3339
        ///
        [ApiMember(DataType="dateTime", Description="End of interval to query for payments when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")]
        public virtual DateTime? CreatedTo { get; set; }
        ///
        ///Article type (Could be Service, rebate code types, etc..
        ///
        [ApiMember(Description="Article type (Could be Service, rebate code types, etc..", IsRequired=true)]
        public virtual int? ArticleTypeId { get; set; }
        ///
        ///
        ///
        [ApiMember(Description="")]
        public virtual bool IncludeArticleType { get; set; }
    }
    public partial class PaymentLogQueryResponse
    {
        ///
        ///The payment log id
        ///
        [ApiMember(Description="The payment log id")]
        public virtual int Id { get; set; }
        ///
        ///The internal reference id, could be reference to a booking, rebate code, gift card etc.
        ///
        [ApiMember(Description="The internal reference id, could be reference to a booking, rebate code, gift card etc.")]
        public virtual int InternalReference { get; set; }
        ///
        ///The payment reference id
        ///
        [ApiMember(Description="The payment reference id")]
        public virtual string PaymentReferenceId { get; set; }
        ///
        ///The payment order item reference id
        ///
        [ApiMember(Description="The payment order item reference id")]
        public virtual string OrderItemReferenceId { get; set; }
        ///
        ///The payment reference id
        ///
        [ApiMember(Description="The payment reference id")]
        public virtual int? PaymentProviderId { get; set; }
        ///
        ///The payment amount
        ///
        [ApiMember(Description="The payment amount")]
        public virtual double Amount { get; set; }
        ///
        ///The article type
        ///
        [ApiMember(Description="The article type")]
        public virtual ArticleType ArticleType { get; set; }
        ///
        ///The payment VAT in percent
        ///
        [ApiMember(Description="The payment VAT in percent")]
        public virtual decimal VAT { get; set; }
        ///
        ///The payment amount that is credited
        ///
        [ApiMember(Description="The payment amount that is credited")]
        public virtual double AmountCredited { get; set; }
        ///
        ///The payment currency id
        ///
        [ApiMember(Description="The payment currency id")]
        public virtual string CurrencyId { get; set; }
        ///
        ///The payment currency info
        ///
        [ApiMember(Description="The payment currency info")]
        public virtual CurrencyInfoResponse CurrencyInfo { get; set; }
        ///
        ///Comments that could be added to the event log item
        ///
        [ApiMember(Description="Comments that could be added to the event log item")]
        public virtual string Comments { get; set; }
        ///
        ///The date when the payment items was created
        ///
        [ApiMember(Description="The date when the payment items was created")]
        public virtual DateTime Created { get; set; }
        ///
        ///The date when the payment items were updated.
        ///
        [ApiMember(Description="The date when the payment items were updated.")]
        public virtual DateTime Updated { get; set; }
    }
}
namespace BokaMera.API.ServiceModel.Interfaces
{
    public partial interface ICompany
    {
        Guid? CompanyId { get; set; }
    }
}