namespace POSGkSwaggerModel
{
    /// <summary>
    /// RetailTransactionPromotionRecommendationBenefit &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    public record comGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionRecommendationBenefit	{
        /// <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 ComGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionRecommendationBenefitkey key { get; init; }
        /// <summary>
        /// The rule matching item id of the recommended promotion. Only relevant in case of mix and match, otherwise null.
        /// </summary>
        /// <value>The rule matching item id of the recommended promotion. Only relevant in case of mix and match, otherwise null.</value>
        public string matchingItemID { get; init; }
        /// <summary>
        /// The type of the recommended promotion&#39;s benefit.
        /// </summary>
        /// <value>The type of the recommended promotion&#39;s benefit.</value>
        public string benefitTypeCode { get; init; }
        /// <summary>
        /// A code that indicates the type of the matching item or bonus item. This is filled only in case of mix&amp;amp;match and additional bonus.
        /// </summary>
        /// <value>A code that indicates the type of the matching item or bonus item. This is filled only in case of mix&amp;amp;match and additional bonus.</value>
        public string priceDerivationItemTypeCode { get; init; }
        /// <summary>
        /// The matching item id or bonus item id. Only filled in case of mix&amp;amp;match and additional bonus.
        /// </summary>
        /// <value>The matching item id or bonus item id. Only filled in case of mix&amp;amp;match and additional bonus.</value>
        public string priceDerivationItemID { get; init; }
        /// <summary>
        /// The qualifier for the matching item id or bonus item id. Only filled in case of mix&amp;amp;match and additional bonus.
        /// </summary>
        /// <value>The qualifier for the matching item id or bonus item id. Only filled in case of mix&amp;amp;match and additional bonus.</value>
        public string priceDerivationItemIDQualifier { get; init; }
        /// <summary>
        /// A code denoting the method of modifying the price that is being applied
        /// </summary>
        /// <value>A code denoting the method of modifying the price that is being applied</value>
        public string priceModificationMethodCode { get; init; }
        /// <summary>
        /// The price modification value. It is interpreted according to the PriceModificationMethodCode.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 5). Be aware of this and round value!
        /// </summary>
        /// <value>The price modification value. It is interpreted according to the PriceModificationMethodCode.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 5). Be aware of this and round value!</value>
        public double? priceModificationValue { get; init; }
        /// <summary>
        /// Defines in case of BuyNGetM, how many items out of the triggering items within a single interval are taken into account for the calculation base. This parameter is used for subsequent discount as well.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 3). Be aware of this and round value!
        /// </summary>
        /// <value>Defines in case of BuyNGetM, how many items out of the triggering items within a single interval are taken into account for the calculation base. This parameter is used for subsequent discount as well.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 3). Be aware of this and round value!</value>
        public double? toBeDiscountedQuantity { get; init; }
        /// <summary>
        /// The count of that mix &amp;amp; match item which is needed in the context of the mix &amp;amp; match rule.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 3). Be aware of this and round value!
        /// </summary>
        /// <value>The count of that mix &amp;amp; match item which is needed in the context of the mix &amp;amp; match rule.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 3). Be aware of this and round value!</value>
        public double? matchingItemRequiredQuantity { get; init; }
        /// <summary>
        /// An additional qualifier for the matching item id or bonus item id. Only filled in case of mix&amp;amp;match and additional bonus. 
        /// </summary>
        /// <value>An additional qualifier for the matching item id or bonus item id. Only filled in case of mix&amp;amp;match and additional bonus. </value>
        public string priceDerivationItemIDQualifier2 { 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; }
	}
}
