namespace POSGkSwaggerModel
{
    /// <summary>
    /// GiftCertificateSpvPaymentRequest &lt;p&gt;A data structure holding all necessary parameters for creation of single purpose voucher sale return line item.&lt;/p&gt;
    /// </summary>
    public record comGkSoftwarePosApiServicePaymentGiftCertificateSpvPaymentRequest	{
        /// <summary>
        /// &lt;p&gt;PositionOperationConfig: position operation config&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;PositionOperationConfig: position operation config&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelConfigProcessActionpositionOperationConfig positionOperationConfig { get; init; }
        /// <summary>
        /// &lt;p&gt;TenderDO: tender&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;TenderDO: tender&lt;/p&gt;</value>
        public ComGkSoftwareGkrApiServerMdtenderDtoDomtenderDO tender { get; init; }
        /// <summary>
        /// &lt;p&gt;Amount: amount&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Amount: amount&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelDomAppamountamount amount { get; init; }
        /// <summary>
        /// &lt;p&gt;Amount: tip amount&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Amount: tip amount&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelDomAppAmountAmount tipAmount { get; init; }
        /// <summary>
        /// &lt;p&gt;String: base iso currency code&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String: base iso currency code&lt;/p&gt;</value>
        public string baseIsoCurrencyCode { get; init; }
        /// <summary>
        /// &lt;p&gt;String: foreign iso currency code&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String: foreign iso currency code&lt;/p&gt;</value>
        public string foreignIsoCurrencyCode { get; init; }
        /// <summary>
        /// &lt;p&gt;double: exchange rate&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;double: exchange rate&lt;/p&gt;</value>
        public double? exchangeRate { get; init; }
        /// <summary>
        /// &lt;p&gt;boolean: multiply flag&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;boolean: multiply flag&lt;/p&gt;</value>
        public bool? multiplyFlag { get; init; }
        /// <summary>
        /// &lt;p&gt;String : tender class code&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : tender class code&lt;/p&gt;</value>
        public string tenderClassCode { get; init; }
        /// <summary>
        /// &lt;p&gt;String : payment description&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : payment description&lt;/p&gt;</value>
        public string paymentDescription { get; init; }
        /// <summary>
        /// Gets or Sets KeyedOnline
        /// </summary>
        public bool? keyedOnline { get; init; }
        /// <summary>
        /// &lt;p&gt;String : gc number&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : gc number&lt;/p&gt;</value>
        public string gcNumber { get; init; }
        /// <summary>
        /// &lt;p&gt;String : gc type&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : gc type&lt;/p&gt;</value>
        public string gcType { get; init; }
        /// <summary>
        /// &lt;p&gt;boolean : gcs usage&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;boolean : gcs usage&lt;/p&gt;</value>
        public bool? gcsUsage { get; init; }
        /// <summary>
        /// &lt;p&gt;boolean : booking successful&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;boolean : booking successful&lt;/p&gt;</value>
        public bool? bookingSuccessful { get; init; }
        /// <summary>
        /// &lt;p&gt;boolean : enableGiftCertificateChange, default &#x3D; false.&lt;br /&gt; It defines if a Paper Gift Certificate should be printed if the conditions match.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;boolean : enableGiftCertificateChange, default &#x3D; false.&lt;br /&gt; It defines if a Paper Gift Certificate should be printed if the conditions match.&lt;/p&gt;</value>
        public bool? enableGiftCertificateChange { get; init; }
        /// <summary>
        /// &lt;p&gt;String : gcs transaction uuid&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : gcs transaction uuid&lt;/p&gt;</value>
        public string gcsTransactionUuid { get; init; }
        /// <summary>
        /// &lt;p&gt;String : external system adapter name&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : external system adapter name&lt;/p&gt;</value>
        public string externalSystemAdapterName { get; init; }
        /// <summary>
        /// &lt;p&gt;Amount : remaining balance&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Amount : remaining balance&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelDomAppAmountAmount remainingBalance { get; init; }
        /// <summary>
        /// &lt;p&gt;int : gc quantity&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;int : gc quantity&lt;/p&gt;</value>
        public int? gcQuantity { get; init; }
        /// <summary>
        /// &lt;p&gt;Date : gc expiration date&lt;/p&gt; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)
        /// </summary>
        /// <value>&lt;p&gt;Date : gc expiration date&lt;/p&gt; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)</value>
        public string expiryDate { get; init; }
        /// <summary>
        /// &lt;p&gt;String : Track two of the giftcard.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : Track two of the giftcard.&lt;/p&gt;</value>
        public string gcTrack2 { get; init; }
        /// <summary>
        /// &lt;p&gt;List of additional attributes for gift certificates with a name and a value.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;List of additional attributes for gift certificates with a name and a value.&lt;/p&gt;</value>
        public List<comGkSoftwarePosApiModelDomAppGiftCertificateServiceAttributeValue> AdditionalInfo { get; init; }
        /// <summary>
        /// &lt;p&gt;String : The current entry method code.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;String : The current entry method code.&lt;/p&gt;</value>
        public string entryMethodCode { get; init; }
        /// <summary>
        /// &lt;p&gt;It defines the gift certificate item (e.g. for Single Purpose Vouchers).&lt;br /&gt; If filled then it will be used for sale return line item creation.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;It defines the gift certificate item (e.g. for Single Purpose Vouchers).&lt;br /&gt; If filled then it will be used for sale return line item creation.&lt;/p&gt;</value>
        public string gcItem { get; init; }
        /// <summary>
        /// &lt;p&gt;Amount returned by the Stored Value Server (abs(GiftCertStatus.old_amount – GiftCertStatus.new_amount))&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Amount returned by the Stored Value Server (abs(GiftCertStatus.old_amount – GiftCertStatus.new_amount))&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelDomAppAmountAmount returnedAmount { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom08 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom10 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom09 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom07 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom05 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom06 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom11 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom12 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom13 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom14 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom15 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom03 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom02 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom04 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom01 { get; init; }
	}
}
