namespace POSGkSwaggerModel
{
    /// <summary>
    /// RetailTransaction &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    public record comGkSoftwareGkrApiTxpoolDtoRetailTransaction	{
        /// <summary>
        /// &lt;p&gt;Getter for inner key class.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Getter for inner key class.&lt;/p&gt;</value>
        public ComGkSoftwareGkrApiTxpoolDtoRetailTransactionkey key { get; init; }
        /// <summary>
        /// A retailer assigned code denoting a type of RetailTransaction. 
        /// </summary>
        /// <value>A retailer assigned code denoting a type of RetailTransaction. </value>
        public string retailTransactionTypeCode { get; init; }
        /// <summary>
        /// The unique identifier of the till
        /// </summary>
        /// <value>The unique identifier of the till</value>
        public string tillID { get; init; }
        /// <summary>
        /// The date and time when the receipt for this transaction was printed. ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)
        /// </summary>
        /// <value>The date and time when the receipt for this transaction was printed. ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)</value>
        public string receiptDateTime { get; init; }
        /// <summary>
        /// Determines whether for this sales transaction a receipt was printed 
        /// </summary>
        /// <value>Determines whether for this sales transaction a receipt was printed </value>
        public bool? receiptPrintoutFlag { get; init; }
        /// <summary>
        /// The timestamp used for promotion validity checks and calculation ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)
        /// </summary>
        /// <value>The timestamp used for promotion validity checks and calculation ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)</value>
        public string promotionTimestamp { get; init; }
        /// <summary>
        /// The number of frequent shopper points that HAD been awarded for the purchase in case the customer HAD presented a loyalty card&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(11, 3). Be aware of this and round value!
        /// </summary>
        /// <value>The number of frequent shopper points that HAD been awarded for the purchase in case the customer HAD presented a loyalty card&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(11, 3). Be aware of this and round value!</value>
        public double? frequentShopperLostPointsCount { get; init; }
        /// <summary>
        /// list of line items
        /// </summary>
        /// <value>list of line items</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItem> RetailTransactionLineItemList { get; init; }
        /// <summary>
        /// list of total amounts
        /// </summary>
        /// <value>list of total amounts</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionTotal> RetailTransactionTotalList { get; init; }
        /// <summary>
        /// list of promotion triggers
        /// </summary>
        /// <value>list of promotion triggers</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionTrigger> RetailTransactionPromotionTriggerList { get; init; }
        /// <summary>
        /// list of external triggers
        /// </summary>
        /// <value>list of external triggers</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionExternalTrigger> RetailTransactionExternalTriggerList { get; init; }
        /// <summary>
        /// list of customers
        /// </summary>
        /// <value>list of customers</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionCustomer> RetailTransactionCustomerList { get; init; }
        /// <summary>
        /// list of coupons
        /// </summary>
        /// <value>list of coupons</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionCouponSummary> RetailTransactionCouponSummaryList { get; init; }
        /// <summary>
        /// list of conditions
        /// </summary>
        /// <value>list of conditions</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionPriceDerivationRule> RetailTransactionPromotionPriceDerivationRuleList { get; init; }
        /// <summary>
        /// list of used coupons
        /// </summary>
        /// <value>list of used coupons</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionModifierCoupon> RetailTransactionModifierCouponList { get; init; }
        /// <summary>
        /// terminal authorization list
        /// </summary>
        /// <value>terminal authorization list</value>
        public List<comGkSoftwareGkrApiTxpoolDtoTenderAuthorization> TenderAuthorizationList { get; init; }
        /// <summary>
        /// list of manufacturer coupons
        /// </summary>
        /// <value>list of manufacturer coupons</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionManufacturerCouponSummary> RetailTransactionManufacturerCouponSummaryList { get; init; }
        /// <summary>
        /// send receipt as mail is activated
        /// </summary>
        /// <value>send receipt as mail is activated</value>
        public bool? emailRequestedFlag { get; init; }
        /// <summary>
        /// local part of entered e-mail address
        /// </summary>
        /// <value>local part of entered e-mail address</value>
        public string emailAddressLocalPart { get; init; }
        /// <summary>
        /// domain part of entered e-mail address
        /// </summary>
        /// <value>domain part of entered e-mail address</value>
        public string emailAddressDomainPart { get; init; }
        /// <summary>
        /// invoice printout is activated
        /// </summary>
        /// <value>invoice printout is activated</value>
        public string invoicePrintoutTypeCode { get; init; }
        /// <summary>
        /// number of the invoice
        /// </summary>
        /// <value>number of the invoice</value>
        public string invoiceNumber { get; init; }
        /// <summary>
        /// The UTC0 timestamp corresponding to the date and time that was printed on the receipt for this transaction. ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)
        /// </summary>
        /// <value>The UTC0 timestamp corresponding to the date and time that was printed on the receipt for this transaction. ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)</value>
        public DateTime? receiptDateTimeUTC0 { get; init; }
        /// <summary>
        /// The UTC0 timestamp used for promotion validity checks and calculation ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)
        /// </summary>
        /// <value>The UTC0 timestamp used for promotion validity checks and calculation ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)</value>
        public DateTime? promotionTimestampUTC0 { get; init; }
        /// <summary>
        /// The name (identifier) for a particular table, at which customers sit to eat food purchased in a RetailTransaction. It may be a table &#39;number&#39; like &#39;10&#39; or &#39;10.1&#39; or the name of the customer party like &#39;Mr Mustermann&#39;.
        /// </summary>
        /// <value>The name (identifier) for a particular table, at which customers sit to eat food purchased in a RetailTransaction. It may be a table &#39;number&#39; like &#39;10&#39; or &#39;10.1&#39; or the name of the customer party like &#39;Mr Mustermann&#39;.</value>
        public string tableName { get; init; }
        /// <summary>
        /// list of generic attributes being valid for the transaction
        /// </summary>
        /// <value>list of generic attributes being valid for the transaction</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionGenericAttribute> RetailTransactionGenericAttributeList { get; init; }
        /// <summary>
        /// A status of the promotion recommendation evaluation and a list of promotions being recommended for a transaction. In order to get those promotions applied the customer would have to extend his purchase.
        /// </summary>
        /// <value>A status of the promotion recommendation evaluation and a list of promotions being recommended for a transaction. In order to get those promotions applied the customer would have to extend his purchase.</value>
        public ComGkSoftwareGkrApiTxpoolDtoretailTransactionPromotionRecommendationGroup retailTransactionPromotionRecommendationGroup { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom05 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom03 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom02 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom04 { get; init; }
        /// <summary>
        /// tax exempt data
        /// </summary>
        /// <value>tax exempt data</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionTaxExemptTrigger> RetailTransactionTaxExemptTriggerList { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom01 { get; init; }
	}
}
