namespace POSGkSwaggerModel
{
    /// <summary>
    /// AdditionalBonusDiscountLineItem &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    public record comGkSoftwareGkrApiTxpoolDtoAdditionalBonusDiscountLineItem	{
        /// <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 ComGkSoftwareGkrApiTxpoolDtoAdditionalBonusDiscountLineItemkey key { get; init; }
        /// <summary>
        /// The unique identifier for a promotion.
        /// </summary>
        /// <value>The unique identifier for a promotion.</value>
        public string promotionID { get; init; }
        /// <summary>
        /// A identifier for a specific price derivation rule.
        /// </summary>
        /// <value>A identifier for a specific price derivation rule.</value>
        public string priceDerivationRuleID { get; init; }
        /// <summary>
        /// A unique identifier for a Price Derivation Rule Eligibility.
        /// </summary>
        /// <value>A unique identifier for a Price Derivation Rule Eligibility.</value>
        public string priceDerivationRuleEligibilityID { get; init; }
        /// <summary>
        /// The ident of the additional bonus. This is needed by PCE in order to establish a relationship between additional bonus items being provided to it in the request as additional bonus line items on the one hand and the corresponding promotion price derivation rules of type &#39;additional bonus&#39; on the other hand.
        /// </summary>
        /// <value>The ident of the additional bonus. This is needed by PCE in order to establish a relationship between additional bonus items being provided to it in the request as additional bonus line items on the one hand and the corresponding promotion price derivation rules of type &#39;additional bonus&#39; on the other hand.</value>
        public string additionalBonusID { get; init; }
        /// <summary>
        /// Reference to BusinessUnitGroupItem
        /// </summary>
        /// <value>Reference to BusinessUnitGroupItem</value>
        public string itemID { get; init; }
        /// <summary>
        /// The UOM of the Item
        /// </summary>
        /// <value>The UOM of the Item</value>
        public string unitOfMeasureCode { get; init; }
        /// <summary>
        /// Qualifier which is used to differ between MerchandiseHierarchyGroup&#39;s belonging to different functions but having the same id
        /// </summary>
        /// <value>Qualifier which is used to differ between MerchandiseHierarchyGroup&#39;s belonging to different functions but having the same id</value>
        public string merchandiseHierarchyGroupIDQualifier { get; init; }
        /// <summary>
        /// Unique system assigned identifier for a group or class of merchandise.
        /// </summary>
        /// <value>Unique system assigned identifier for a group or class of merchandise.</value>
        public string merchandiseHierarchyGroupID { get; init; }
        /// <summary>
        /// System-generated unique identifier for a merchandise set (group of mechandise set elements). This is needed for technical reasons.
        /// </summary>
        /// <value>System-generated unique identifier for a merchandise set (group of mechandise set elements). This is needed for technical reasons.</value>
        public string merchandiseSetGroupID { get; init; }
        /// <summary>
        /// Unique (within the context of the merchandise set) system-generated identifier of the mechandise set element
        /// </summary>
        /// <value>Unique (within the context of the merchandise set) system-generated identifier of the mechandise set element</value>
        public string merchandiseSetID { get; init; }
        /// <summary>
        /// Denotes the total additional bonus quantity that should be granted. Is 0 in case the AdditionalBonusDiscountLineItem does not belong to any applied promotion.
        /// </summary>
        /// <value>Denotes the total additional bonus quantity that should be granted. Is 0 in case the AdditionalBonusDiscountLineItem does not belong to any applied promotion.</value>
        public double? totalAdditionalBonusQuantity { get; init; }
        /// <summary>
        /// Denotes the difference between TotalAdditionalBonusQuantity and the additional bonus items being present in the transaction (total quantity of sale return line items of type &#39;additional bonus&#39; with concerning AdditionalBonusLineItem.AdditionalBonusID).positive value - there are not enough additional bonus items in the transaction providednegative value - there are too many additional bonus items in transaction provided0 value - match
        /// </summary>
        /// <value>Denotes the difference between TotalAdditionalBonusQuantity and the additional bonus items being present in the transaction (total quantity of sale return line items of type &#39;additional bonus&#39; with concerning AdditionalBonusLineItem.AdditionalBonusID).positive value - there are not enough additional bonus items in the transaction providednegative value - there are too many additional bonus items in transaction provided0 value - match</value>
        public double? quantityDifference { 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>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom16 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom17 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom18 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom19 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom20 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom21 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom22 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom23 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom24 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom25 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom26 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom27 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom28 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom29 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom30 { get; init; }
        /// <summary>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom01 { get; init; }
	}
}
