namespace POSGkSwaggerModel
{
    /// <summary>
    /// RetailTransactionPromotionRecommendation &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    public record comGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionRecommendation	{
        /// <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 ComGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionRecommendationkey key { get; init; }
        /// <summary>
        /// The external identifier of the promotion
        /// </summary>
        /// <value>The external identifier of the promotion</value>
        public string externalPromotionID { get; init; }
        /// <summary>
        /// Defines the type of price derivation rule.
        /// </summary>
        /// <value>Defines the type of price derivation rule.</value>
        public string ruleTypeCode { get; init; }
        /// <summary>
        /// This is a special code that determines when, during the entry of a sale transaction, this rule will be applied. For example a price change rule may be applied on a line item by line item basis (which is DETAIL TIME), a price change rule may be triggered after a transaction is totaled - - but before tax and tender entry (i.e. MERCHANDISE SUBTOTAL TIME).
        /// </summary>
        /// <value>This is a special code that determines when, during the entry of a sale transaction, this rule will be applied. For example a price change rule may be applied on a line item by line item basis (which is DETAIL TIME), a price change rule may be triggered after a transaction is totaled - - but before tax and tender entry (i.e. MERCHANDISE SUBTOTAL TIME).</value>
        public string transactionControlBreakCode { get; init; }
        /// <summary>
        /// Sequence - for collision handling
        /// </summary>
        /// <value>Sequence - for collision handling</value>
        public string promotionPriceDerivationRuleSequence { get; init; }
        /// <summary>
        /// Resolution - for collision handling
        /// </summary>
        /// <value>Resolution - for collision handling</value>
        public string promotionPriceDerivationRuleResolution { get; init; }
        /// <summary>
        /// The list of eligibilities of the promotion being recommended for the transaction which are satisfied already
        /// </summary>
        /// <value>The list of eligibilities of the promotion being recommended for the transaction which are satisfied already</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionRecommendationFulfilledTrigger> RetailTransactionPromotionRecommendationFulfilledTriggerList { get; init; }
        /// <summary>
        /// The list of eligibilities of the promotion being recommended for the transaction which have not been fulfilled yet
        /// </summary>
        /// <value>The list of eligibilities of the promotion being recommended for the transaction which have not been fulfilled yet</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionRecommendationMissingTrigger> RetailTransactionPromotionRecommendationMissingTriggerList { get; init; }
        /// <summary>
        /// The list of benefits from the promotion being recommended for the transaction
        /// </summary>
        /// <value>The list of benefits from the promotion being recommended for the transaction</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionPromotionRecommendationBenefit> RetailTransactionPromotionRecommendationBenefitList { 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; }
	}
}
