namespace POSGkSwaggerModel
{
    /// <summary>
    /// RetailTransactionLineItem &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    public record comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItem	{
        /// <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 ComGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemkey key { get; init; }
        /// <summary>
        /// An external identifier for the related customer order.
        /// </summary>
        /// <value>An external identifier for the related customer order.</value>
        public string externalCustomerOrderID { get; init; }
        /// <summary>
        /// A unique system assigned identifier for the LineItem of the CustomerOrder. 
        /// </summary>
        /// <value>A unique system assigned identifier for the LineItem of the CustomerOrder. </value>
        public int? customerOrderSequenceNumber { get; init; }
        /// <summary>
        /// The start time of the RETAIL TRANSACTION line item. ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)
        /// </summary>
        /// <value>The start time of the RETAIL TRANSACTION line item. ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)</value>
        public string beginDateTimestamp { get; init; }
        /// <summary>
        /// A boolean indicator that tells if this line item is VOIDED or not.
        /// </summary>
        /// <value>A boolean indicator that tells if this line item is VOIDED or not.</value>
        public bool? voidFlag { get; init; }
        /// <summary>
        /// The end time of the RETAIL TRANSACTION line item. ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)
        /// </summary>
        /// <value>The end time of the RETAIL TRANSACTION line item. ; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)</value>
        public string endDateTimestamp { get; init; }
        /// <summary>
        /// A retailer assigned code to denote how the RetailTransactionLineItem was entered at the Workstation. It is filled just for retail transaction line item.
        /// </summary>
        /// <value>A retailer assigned code to denote how the RetailTransactionLineItem was entered at the Workstation. It is filled just for retail transaction line item.</value>
        public string entryMethodCode { get; init; }
        /// <summary>
        /// A code to denote the type of retail transaction line item, such as Sale/Return, Void, Tender ...
        /// </summary>
        /// <value>A code to denote the type of retail transaction line item, such as Sale/Return, Void, Tender ...</value>
        public string retailTransactionLineItemTypeCode { get; init; }
        /// <summary>
        /// Describes whether the line item was voided immediately after registering it, voided by another line item or internally voided 
        /// </summary>
        /// <value>Describes whether the line item was voided immediately after registering it, voided by another line item or internally voided </value>
        public string voidTypeCode { get; init; }
        /// <summary>
        /// id of the workstation where the line item was created
        /// </summary>
        /// <value>id of the workstation where the line item was created</value>
        public string workstationID { get; init; }
        /// <summary>
        /// type of the workstation where the line item was created
        /// </summary>
        /// <value>type of the workstation where the line item was created</value>
        public string workstationTypeCode { get; init; }
        /// <summary>
        /// A code that indicates the online/offline state when transaction was completed.
        /// </summary>
        /// <value>A code that indicates the online/offline state when transaction was completed.</value>
        public string keyedOfflineCode { get; init; }
        /// <summary>
        /// The UTC0 start time of the RETAIL TRANSACTION line item. ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)
        /// </summary>
        /// <value>The UTC0 start time of the RETAIL TRANSACTION line item. ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)</value>
        public DateTime? beginDateTimestampUTC0 { get; init; }
        /// <summary>
        /// The UTC0 end time of the RETAIL TRANSACTION line item. ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)
        /// </summary>
        /// <value>The UTC0 end time of the RETAIL TRANSACTION line item. ; UTC0 date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSZ&#39; (with timezone)</value>
        public DateTime? endDateTimestampUTC0 { get; init; }
        /// <summary>
        /// list of line item associations
        /// </summary>
        /// <value>list of line item associations</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemAssociation> RetailTransactionLineItemAssociationList { get; init; }
        /// <summary>
        /// list of additional parameters
        /// </summary>
        /// <value>list of additional parameters</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemAdditionalParameter> RetailTransactionLineItemAdditionalParameterList { get; init; }
        /// <summary>
        /// list of binary data
        /// </summary>
        /// <value>list of binary data</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemBinaryData> RetailTransactionLineItemBinaryDataList { get; init; }
        /// <summary>
        /// list of translations for line item texts
        /// </summary>
        /// <value>list of translations for line item texts</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemI18NText> RetailTransactionLineItemI18NTextList { get; init; }
        /// <summary>
        /// list of data for line item related authorizations
        /// </summary>
        /// <value>list of data for line item related authorizations</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemResourceOverride> RetailTransactionLineItemResourceOverrideList { get; init; }
        /// <summary>
        /// list of line item extensions
        /// </summary>
        /// <value>list of line item extensions</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemExtension> RetailTransactionLineItemExtensionList { get; init; }
        /// <summary>
        /// list of line item audit events
        /// </summary>
        /// <value>list of line item audit events</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemAuditEvent> RetailTransactionLineItemAuditEventList { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom08 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom10 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom09 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom07 { 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 xxcustom06 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom11 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom12 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom13 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom14 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom15 { 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>
        /// sale return line item
        /// </summary>
        /// <value>sale return line item</value>
        public List<comGkSoftwareGkrApiTxpoolDtoSaleReturnLineItem> SaleReturnLineItemList { get; init; }
        /// <summary>
        /// tender line item
        /// </summary>
        /// <value>tender line item</value>
        public List<comGkSoftwareGkrApiTxpoolDtoTenderLineItem> TenderLineItemList { get; init; }
        /// <summary>
        /// void line item
        /// </summary>
        /// <value>void line item</value>
        public List<comGkSoftwareGkrApiTxpoolDtoVoidsLineItem> VoidsLineItemList { get; init; }
        /// <summary>
        /// rounding line item
        /// </summary>
        /// <value>rounding line item</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRoundingLineItem> RoundingLineItemList { get; init; }
        /// <summary>
        /// transaction related discount
        /// </summary>
        /// <value>transaction related discount</value>
        public List<comGkSoftwareGkrApiTxpoolDtoPriceModificationLineItem> PriceModificationLineItemList { get; init; }
        /// <summary>
        /// transaction related bonuspoints
        /// </summary>
        /// <value>transaction related bonuspoints</value>
        public List<comGkSoftwareGkrApiTxpoolDtoLoyaltyRewardLineItem> LoyaltyRewardLineItemList { get; init; }
        /// <summary>
        /// worker discount line item
        /// </summary>
        /// <value>worker discount line item</value>
        public List<comGkSoftwareGkrApiTxpoolDtoWorkerDiscountLineItem> WorkerDiscountLineItemList { get; init; }
        /// <summary>
        /// transaction related tax
        /// </summary>
        /// <value>transaction related tax</value>
        public List<comGkSoftwareGkrApiTxpoolDtoTaxLineItem> TaxLineItemList { get; init; }
        /// <summary>
        /// additional gift certificate data for SaleReturnLineItem, TenderLineItem or VoidsLineItem
        /// </summary>
        /// <value>additional gift certificate data for SaleReturnLineItem, TenderLineItem or VoidsLineItem</value>
        public List<comGkSoftwareGkrApiTxpoolDtoGiftCertificateLineItem> GiftCertificateLineItemList { get; init; }
        /// <summary>
        /// additional prepaid data for SaleReturnLineItem or VoidsLineItem
        /// </summary>
        /// <value>additional prepaid data for SaleReturnLineItem or VoidsLineItem</value>
        public List<comGkSoftwareGkrApiTxpoolDtoPrepaidLineItem> PrepaidLineItemList { get; init; }
        /// <summary>
        /// additional bonuspoints redemption data
        /// </summary>
        /// <value>additional bonuspoints redemption data</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionLineItemFrequentShopperPointsRedemption> RetailTransactionLineItemFrequentShopperPointsRedemptionList { get; init; }
        /// <summary>
        /// data for additional bonus itemsA type of RETAIL TRANSACTION LINE ITEM that records PCE&#39;s response for the application of a promotion price derivation rule of type &#39;additional bonus&#39;.
        /// </summary>
        /// <value>data for additional bonus itemsA type of RETAIL TRANSACTION LINE ITEM that records PCE&#39;s response for the application of a promotion price derivation rule of type &#39;additional bonus&#39;.</value>
        public List<comGkSoftwareGkrApiTxpoolDtoAdditionalBonusDiscountLineItem> AdditionalBonusDiscountLineItemList { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom01 { get; init; }
	}
}
