namespace POSGkSwaggerModel
{
    /// <summary>
    /// RegistrationRequest &lt;p&gt;Domain object for Registration Request.&lt;/p&gt;
    /// </summary>
    public record comGkSoftwarePosApiServiceTransactionRegistrationRequest	{
        /// <summary>
        /// &lt;p&gt;price variant to use.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;price variant to use.&lt;/p&gt;</value>
        public priceVariantEnum? priceVariant { get; init; }
        /// <summary>
        /// &lt;p&gt;The current active scale mode.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The current active scale mode.&lt;/p&gt;</value>
        public scaleModeEnum? scaleMode { get; init; }
        /// <summary>
        /// &lt;p&gt;The current active scale selling mode.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The current active scale selling mode.&lt;/p&gt;</value>
        public scaleSellingModeEnum? scaleSellingMode { get; init; }
        /// <summary>
        /// &lt;p&gt;The parameter defines the provider for the item data.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The parameter defines the provider for the item data.&lt;/p&gt;</value>
        public itemProviderEnum? itemProvider { get; init; }
        /// <summary>
        /// &lt;p&gt;The position operation configuration.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The position operation configuration.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelConfigProcessActionPositionOperationConfig operationConfiguration { get; init; }
        /// <summary>
        /// &lt;p&gt;The line item key the operation refers to.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The line item key the operation refers to.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelDomAppServicesTransactionRetailTransactionlineItemKey lineItemKey { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicated whether the item should be returned or registered.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicated whether the item should be returned or registered.&lt;/p&gt;</value>
        public bool? returnMode { get; init; }
        /// <summary>
        /// &lt;p&gt;Flag indicating client is in empties return mode.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Flag indicating client is in empties return mode.&lt;/p&gt;</value>
        public bool? emptiesReturnMode { get; init; }
        /// <summary>
        /// &lt;p&gt;This parameter specifies whether a return receipt should be created for returned items.&lt;br /&gt; This has only an impact in case returnMode&#x3D;true.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;This parameter specifies whether a return receipt should be created for returned items.&lt;br /&gt; This has only an impact in case returnMode&#x3D;true.&lt;/p&gt;</value>
        public bool? createReturnReceipt { get; init; }
        /// <summary>
        /// &lt;p&gt;The barcode of the item to register. At least the barcode OR the itemIdentificator are mandatory request attributes.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The barcode of the item to register. At least the barcode OR the itemIdentificator are mandatory request attributes.&lt;/p&gt;</value>
        public string barcode { get; init; }
        /// <summary>
        /// &lt;p&gt;The item identificator. At least the barcode OR the itemIdentificator are mandatory request attributes.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The item identificator. At least the barcode OR the itemIdentificator are mandatory request attributes.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceTransactionitemIdentificator itemIdentificator { get; init; }
        /// <summary>
        /// &lt;p&gt;Wic mode flag.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Wic mode flag.&lt;/p&gt;</value>
        public bool? wicMode { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicated whether set items should be registered individually or be added to head item.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicated whether set items should be registered individually or be added to head item.&lt;/p&gt;</value>
        public bool? takeOverSetItems { get; init; }
        /// <summary>
        /// &lt;p&gt;The order mode.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The order mode.&lt;/p&gt;</value>
        public bool? orderMode { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates whether the layaway mode is active.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates whether the layaway mode is active.&lt;/p&gt;</value>
        public bool? layawayMode { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates whether the take away sale mode is active.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates whether the take away sale mode is active.&lt;/p&gt;</value>
        public bool? takeAwaySaleMode { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates if variant check should be performed.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates if variant check should be performed.&lt;/p&gt;</value>
        public bool? checkForVariants { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates if validation process should check sales restrictions.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates if validation process should check sales restrictions.&lt;/p&gt;</value>
        public bool? salesRestrictionsCheckNeeded { get; init; }
        /// <summary>
        /// &lt;p&gt;indicates if variant check should be performed.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;indicates if variant check should be performed.&lt;/p&gt;</value>
        public bool? returnReasonRequired { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates the request is for a linked empties deposit item.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates the request is for a linked empties deposit item.&lt;/p&gt;</value>
        public bool? linkedEmptiesItem { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates whether line item should be closed during the registration (used for empties return using deposit collections).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates whether line item should be closed during the registration (used for empties return using deposit collections).&lt;/p&gt;</value>
        public bool? closeLineItem { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates whether promo icons should be retrieved.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates whether promo icons should be retrieved.&lt;/p&gt;</value>
        public bool? getPromoIcons { get; init; }
        /// <summary>
        /// &lt;p&gt;Quantity to be overwritten for deposit item registered as empties during item registration.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Quantity to be overwritten for deposit item registered as empties during item registration.&lt;/p&gt;</value>
        public int? emptiesReturnQuantity { get; init; }
        /// <summary>
        /// &lt;p&gt;The overriding price.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The overriding price.&lt;/p&gt;</value>
        public double? overridingPrice { get; init; }
        /// <summary>
        /// &lt;p&gt;the overriding quantity.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;the overriding quantity.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceTransactionQuantityInput overridingQuantity { get; init; }
        /// <summary>
        /// &lt;p&gt;The overriding position amount.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The overriding position amount.&lt;/p&gt;</value>
        public double? overridingPositionAmount { get; init; }
        /// <summary>
        /// &lt;p&gt;The weight result from a previously done weighing process (e.g. item required weight input).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The weight result from a previously done weighing process (e.g. item required weight input).&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceClientHardwareScaleweightResult weightResult { get; init; }
        /// <summary>
        /// &lt;p&gt;Indicates whether the price difference limit checks should be done or not.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Indicates whether the price difference limit checks should be done or not.&lt;/p&gt;</value>
        public bool? doPriceDifferenceLimitCheck { get; init; }
        /// <summary>
        /// &lt;p&gt;Price type code (for price change).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Price type code (for price change).&lt;/p&gt;</value>
        public string priceTypeCode { get; init; }
        /// <summary>
        /// &lt;p&gt;Set price mode (for price change).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Set price mode (for price change).&lt;/p&gt;</value>
        public string setPriceMode { get; init; }
        /// <summary>
        /// &lt;p&gt;A reason code for this request (e.g. reason for returns).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A reason code for this request (e.g. reason for returns).&lt;/p&gt;</value>
        public string reasonCode { get; init; }
        /// <summary>
        /// &lt;p&gt;A reason code group code for this request (e.g. reason for returns).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A reason code group code for this request (e.g. reason for returns).&lt;/p&gt;</value>
        public string reasonCodeGroupCode { get; init; }
        /// <summary>
        /// &lt;p&gt;A reason description for this request (e.g. reason for returns).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A reason description for this request (e.g. reason for returns).&lt;/p&gt;</value>
        public string reasonDescription { get; init; }
        /// <summary>
        /// &lt;p&gt;A reason parameter used for handling of salable information.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A reason parameter used for handling of salable information.&lt;/p&gt;</value>
        public ComGkSoftwareSweeSesApiServerMdReasonDtoSoreasonParameterSO reasonParameter { get; init; }
        /// <summary>
        /// &lt;p&gt;A price change reason code.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A price change reason code.&lt;/p&gt;</value>
        public string priceChangeReasonCode { get; init; }
        /// <summary>
        /// &lt;p&gt;A price change reason code group code.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A price change reason code group code.&lt;/p&gt;</value>
        public string priceChangeReasonCodeGroupCode { get; init; }
        /// <summary>
        /// &lt;p&gt;A price change reason description.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A price change reason description.&lt;/p&gt;</value>
        public string priceChangeReasonDescription { get; init; }
        /// <summary>
        /// &lt;p&gt;Serial number to set.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Serial number to set.&lt;/p&gt;</value>
        public string serialNumber { get; init; }
        /// <summary>
        /// &lt;p&gt;A universally unique identifier (min&#x3D;0, max&#x3D;32) used to identify an instance of a distinguishable instance of a retail item. The item traceable unit ID is similar to a serial number in that it allows each selling unit to be explicitly identified and distinguished from other selling units of the same Item.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A universally unique identifier (min&#x3D;0, max&#x3D;32) used to identify an instance of a distinguishable instance of a retail item. The item traceable unit ID is similar to a serial number in that it allows each selling unit to be explicitly identified and distinguished from other selling units of the same Item.&lt;/p&gt;</value>
        public string itemTraceableUnitID { get; init; }
        /// <summary>
        /// &lt;p&gt;Receipt text to set.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Receipt text to set.&lt;/p&gt;</value>
        public string receiptText { get; init; }
        /// <summary>
        /// &lt;p&gt;Object for linked item information.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Object for linked item information.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceTransactionlinkedItemRegistrationRequest linkedItemRegistrationRequest { get; init; }
        /// <summary>
        /// &lt;p&gt;A request to register an external item to transaction.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;A request to register an external item to transaction.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceTransactionexternalItemRegistrationRequest externalItemRegistrationRequest { get; init; }
        /// <summary>
        /// &lt;p&gt;Double.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Double.&lt;/p&gt;</value>
        public double? factor { get; init; }
        /// <summary>
        /// &lt;p&gt;The active customer order id.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The active customer order id.&lt;/p&gt;</value>
        public string activeCustomerOrderId { get; init; }
        /// <summary>
        /// &lt;p&gt;The customer oder sequence number.&lt;br /&gt; @deprecated use customerOrderSequenceNumber instead.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The customer oder sequence number.&lt;br /&gt; @deprecated use customerOrderSequenceNumber instead.&lt;/p&gt;</value>
        public int? customerSequenceNumber { get; init; }
        /// <summary>
        /// &lt;p&gt;The customer order sequence number.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The customer order sequence number.&lt;/p&gt;</value>
        public int? customerOrderSequenceNumber { get; init; }
        /// <summary>
        /// &lt;p&gt;The sales order type code.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The sales order type code.&lt;/p&gt;</value>
        public string salesOrderTypeCode { get; init; }
        /// <summary>
        /// &lt;p&gt;The sales order delivery type code.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The sales order delivery type code.&lt;/p&gt;</value>
        public string salesOrderDeliveryTypeCode { get; init; }
        /// <summary>
        /// &lt;p&gt;The requested delivery date for the item.&lt;/p&gt; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)
        /// </summary>
        /// <value>&lt;p&gt;The requested delivery date for the item.&lt;/p&gt; Date format &#39;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSS&#39; (no timezone)</value>
        public string requestedDeliveryDate { get; init; }
        /// <summary>
        /// &lt;p&gt;ItemEntryConfig - bring config to server side.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;ItemEntryConfig - bring config to server side.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelConfigProcessFlowsitemEntryConfig itemEntryConfig { get; init; }
        /// <summary>
        /// &lt;p&gt;Request for Sales Person Number.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Request for Sales Person Number.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceTransactionsalesPersonNumberRequest salesPersonNumberRequest { get; init; }
        /// <summary>
        /// &lt;p&gt;The alternative tax infos for updating the tax group.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The alternative tax infos for updating the tax group.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiModelConfigProcessFlowsalternativeTaxInfos alternativeTaxInfos { get; init; }
        /// <summary>
        /// &lt;p&gt;The entry method code. It specifies how the action was triggered (keyed, scanned, ...).&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The entry method code. It specifies how the action was triggered (keyed, scanned, ...).&lt;/p&gt;</value>
        public string entryMethodCode { get; init; }
        /// <summary>
        /// &lt;p&gt;Scale transaction parameters to add to transaction.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Scale transaction parameters to add to transaction.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceTransactionscaleTransactionParams scaleTransactionParams { get; init; }
        /// <summary>
        /// &lt;p&gt;The keyed online state.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The keyed online state.&lt;/p&gt;</value>
        public bool? keyedOnline { get; init; }
        /// <summary>
        /// &lt;p&gt;The list of post validation sales restriction ids to add to SaleReturnLineItem.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The list of post validation sales restriction ids to add to SaleReturnLineItem.&lt;/p&gt;</value>
        public List<string> PostValidationSalesRestrictionIds { get; init; }
        /// <summary>
        /// &lt;p&gt;The promotion trigger active state.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The promotion trigger active state.&lt;/p&gt;</value>
        public bool? promotionTriggerActive { get; init; }
        /// <summary>
        /// &lt;p&gt;The qualified line item type.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The qualified line item type.&lt;/p&gt;</value>
        public string lineItemItemType { get; init; }
        /// <summary>
        /// &lt;p&gt;The list of external retail price modifier to add to transaction.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The list of external retail price modifier to add to transaction.&lt;/p&gt;</value>
        public List<comGkSoftwarePosApiModelDomAppServicesTransactionExternalRetailPriceModifier> RetailPriceModifierList { get; init; }
        /// <summary>
        /// &lt;p&gt;The list of external retail price modifier to add to transaction.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The list of external retail price modifier to add to transaction.&lt;/p&gt;</value>
        public List<comGkSoftwarePosApiModelDomAppServicesTransactionLineItemExtension> LineItemExtensionList { get; init; }
        /// <summary>
        /// &lt;p&gt;The print list for additional line item text to print.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The print list for additional line item text to print.&lt;/p&gt;</value>
        public List<comGkSoftwarePosApiModelDomAppServicesTransactionPrintAdditionalLineItemTextLine> PrintAdditionalLineItemTextLineList { get; init; }
        /// <summary>
        /// &lt;p&gt;The course Number to be set on line item.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The course Number to be set on line item.&lt;/p&gt;</value>
        public string courseNumber { get; init; }
        /// <summary>
        /// &lt;p&gt;The parameter consists all information for a combo meal item registration.&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;The parameter consists all information for a combo meal item registration.&lt;/p&gt;</value>
        public ComGkSoftwarePosApiServiceTransactioncomboMealRegistrationRequest comboMealRegistrationRequest { get; init; }
        /// <summary>
        /// Gets or Sets AppEnablement
        /// </summary>
        public bool? appEnablement { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom08 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom10 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom09 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom07 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom05 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom06 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom11 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom12 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom13 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom14 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom15 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom03 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom02 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom04 { get; init; }
        /// <summary>
        /// &lt;p&gt;Customizable information&lt;/p&gt;
        /// </summary>
        /// <value>&lt;p&gt;Customizable information&lt;/p&gt;</value>
        public string xXCustom01 { get; init; }
	}
}
