namespace POSGkSwaggerModel
{
    /// <summary>
    /// RetailPriceModifier &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    public record comGkSoftwareGkrApiTxpoolDtoRetailPriceModifier	{
        /// <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 ComGkSoftwareGkrApiTxpoolDtoRetailPriceModifierkey key { get; init; }
        /// <summary>
        /// The unique identifier of the promotion.
        /// </summary>
        /// <value>The unique identifier of the promotion.</value>
        public string promotionID { get; init; }
        /// <summary>
        /// The unique identifier of the price derivation rule. 
        /// </summary>
        /// <value>The unique identifier of the price derivation rule. </value>
        public string priceDerivationRuleID { get; init; }
        /// <summary>
        /// The unique identifier of the root eligibility.
        /// </summary>
        /// <value>The unique identifier of the root eligibility.</value>
        public string priceDerivationRuleEligibilityID { get; init; }
        /// <summary>
        /// The reason code for manual price overrides.
        /// </summary>
        /// <value>The reason code for manual price overrides.</value>
        public string reasonCode { get; init; }
        /// <summary>
        /// The unit price that was valid before manual price override.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 5). Be aware of this and round value!
        /// </summary>
        /// <value>The unit price that was valid before manual price override.&lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 5). Be aware of this and round value!</value>
        public double? previousPrice { get; init; }
        /// <summary>
        /// The percentage value in case of percentage price modifiers.
        /// </summary>
        /// <value>The percentage value in case of percentage price modifiers.</value>
        public double? percent { get; init; }
        /// <summary>
        /// The total amount of the retail price modifier.
        /// </summary>
        /// <value>The total amount of the retail price modifier.</value>
        public double? amount { get; init; }
        /// <summary>
        /// A type code used to identity manual price overrides.
        /// </summary>
        /// <value>A type code used to identity manual price overrides.</value>
        public string calculationMethodCode { get; init; }
        /// <summary>
        /// A mnemonic code denoting what kind of adjustment is being made to the retail price of the Item (Increase, Decrease).
        /// </summary>
        /// <value>A mnemonic code denoting what kind of adjustment is being made to the retail price of the Item (Increase, Decrease).</value>
        public string adjustmentMethodCode { get; init; }
        /// <summary>
        /// The unit price that was the result of the price modification. &lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 5). Be aware of this and round value!
        /// </summary>
        /// <value>The unit price that was the result of the price modification. &lt;br&gt;Fixed decimal precision expected, definition of used precision: double(16, 5). Be aware of this and round value!</value>
        public double? newPrice { get; init; }
        /// <summary>
        /// The type code of the root eligibility
        /// </summary>
        /// <value>The type code of the root eligibility</value>
        public string eligibilityTypeCode { get; init; }
        /// <summary>
        /// The retail sale total price of the line item before applying the current price modifier 
        /// </summary>
        /// <value>The retail sale total price of the line item before applying the current price modifier </value>
        public double? extendedAmountBeforeModification { get; init; }
        /// <summary>
        /// The retail sale total price of the line item after applying the current price modifier 
        /// </summary>
        /// <value>The retail sale total price of the line item after applying the current price modifier </value>
        public double? extendedAmountAfterModification { get; init; }
        /// <summary>
        /// The quantity the price modifier applies to. Always positive.
        /// </summary>
        /// <value>The quantity the price modifier applies to. Always positive.</value>
        public double? appliedQuantity { get; init; }
        /// <summary>
        /// The ident of the manual trigger (because one line item can have more than one trigger) 
        /// </summary>
        /// <value>The ident of the manual trigger (because one line item can have more than one trigger) </value>
        public int? triggerSequenceNumber { get; init; }
        /// <summary>
        /// A narrative description describing the reason for manual price overrides.
        /// </summary>
        /// <value>A narrative description describing the reason for manual price overrides.</value>
        public string reasonDescription { get; init; }
        /// <summary>
        /// A monetary amount which results from applying a price modifier but does not affect the line item total 
        /// </summary>
        /// <value>A monetary amount which results from applying a price modifier but does not affect the line item total </value>
        public double? extraAmount { get; init; }
        /// <summary>
        /// The monetary amount that the price modifier was adjusted by. 
        /// </summary>
        /// <value>The monetary amount that the price modifier was adjusted by. </value>
        public double? roundingAmount { get; init; }
        /// <summary>
        /// Determines whether this entry was created by an external system - if yes, it must not be changed, but own price modifications with higher sequence may be applied 
        /// </summary>
        /// <value>Determines whether this entry was created by an external system - if yes, it must not be changed, but own price modifications with higher sequence may be applied </value>
        public bool? externalSystemOriginatorFlag { get; init; }
        /// <summary>
        /// The sequence number of the PriceModificationLineItem.Only filled for discount shares of transaction related discounts.
        /// </summary>
        /// <value>The sequence number of the PriceModificationLineItem.Only filled for discount shares of transaction related discounts.</value>
        public int? prorateFrom { get; init; }
        /// <summary>
        /// The amount which was used as base for calculation of the price modification
        /// </summary>
        /// <value>The amount which was used as base for calculation of the price modification</value>
        public double? calculationBaseAmount { 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>
        /// Customizable information
        /// </summary>
        /// <value>Customizable information</value>
        public string xxcustom01 { get; init; }
	}
}
