namespace POSGkSwaggerModel
{
    /// <summary>
    /// RetailTransactionCustomer &lt;emph&gt;undocumented&lt;/emph&gt;
    /// </summary>
    public record comGkSoftwareGkrApiTxpoolDtoRetailTransactionCustomer	{
        /// <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 ComGkSoftwareGkrApiTxpoolDtoRetailTransactionCustomerkey key { get; init; }
        /// <summary>
        /// A code for specifying a persons gender. 
        /// </summary>
        /// <value>A code for specifying a persons gender. </value>
        public string genderType { get; init; }
        /// <summary>
        /// A number in the range 1-31denoting the day of the month part of the Person&#39;s date of birth. 
        /// </summary>
        /// <value>A number in the range 1-31denoting the day of the month part of the Person&#39;s date of birth. </value>
        public int? birthDayNumber { get; init; }
        /// <summary>
        /// A number in the range 1-12 denoting the month part of the Person&#39;s date of birth. 
        /// </summary>
        /// <value>A number in the range 1-12 denoting the month part of the Person&#39;s date of birth. </value>
        public int? birthMonthNumber { get; init; }
        /// <summary>
        /// The year part of the Person&#39;s date of birth. 
        /// </summary>
        /// <value>The year part of the Person&#39;s date of birth. </value>
        public int? birthYearNumber { get; init; }
        /// <summary>
        /// The description of the customer type code
        /// </summary>
        /// <value>The description of the customer type code</value>
        public string addressTypeDescription { get; init; }
        /// <summary>
        /// If true, the customer is a dummy/unknown customer 
        /// </summary>
        /// <value>If true, the customer is a dummy/unknown customer </value>
        public bool? genericFlag { get; init; }
        /// <summary>
        /// The description of the business of the customer; this information is e.g. to be printed on invoices in Greece due to tax law requirements 
        /// </summary>
        /// <value>The description of the business of the customer; this information is e.g. to be printed on invoices in Greece due to tax law requirements </value>
        public string businessDescription { get; init; }
        /// <summary>
        /// A code that describes how this customer&#39;s identification is being entered (e.g. it is scanned, keyed, etc.) 
        /// </summary>
        /// <value>A code that describes how this customer&#39;s identification is being entered (e.g. it is scanned, keyed, etc.) </value>
        public string customerIDEntryMethodCode { get; init; }
        /// <summary>
        /// A person&#39;s first name.
        /// </summary>
        /// <value>A person&#39;s first name.</value>
        public string firstName { get; init; }
        /// <summary>
        /// A person&#39;s last name.
        /// </summary>
        /// <value>A person&#39;s last name.</value>
        public string lastName { get; init; }
        /// <summary>
        /// Defines the preferred printout settings for the customer
        /// </summary>
        /// <value>Defines the preferred printout settings for the customer</value>
        public string preferredReceiptPrintoutTypeCode { get; init; }
        /// <summary>
        /// Number of the customer to which this buyer / contact person belongs.
        /// </summary>
        /// <value>Number of the customer to which this buyer / contact person belongs.</value>
        public string parentCustomerID { get; init; }
        /// <summary>
        /// First name line of the customer to which this buyer / contact person belongs.
        /// </summary>
        /// <value>First name line of the customer to which this buyer / contact person belongs.</value>
        public string parentCustomerName1 { get; init; }
        /// <summary>
        /// Second name line of the customer to which this buyer / contact person belongs.
        /// </summary>
        /// <value>Second name line of the customer to which this buyer / contact person belongs.</value>
        public string parentCustomerName2 { get; init; }
        /// <summary>
        /// list of customer accounts
        /// </summary>
        /// <value>list of customer accounts</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionCustomerAccount> RetailTransactionCustomerAccountList { get; init; }
        /// <summary>
        /// list of customer groups
        /// </summary>
        /// <value>list of customer groups</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionCustomerGroupAssignment> RetailTransactionCustomerGroupAssignmentList { get; init; }
        /// <summary>
        /// list of contact methods (address, phone, mail, ...)
        /// </summary>
        /// <value>list of contact methods (address, phone, mail, ...)</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionCustomerContactMethod> RetailTransactionCustomerContactMethodList { get; init; }
        /// <summary>
        /// list of customer identitfication numbers
        /// </summary>
        /// <value>list of customer identitfication numbers</value>
        public List<comGkSoftwareGkrApiTxpoolDtoRetailTransactionCustomerIdentification> RetailTransactionCustomerIdentificationList { get; init; }
        /// <summary>
        /// An ORGANIZATION&#39;s legal trade name.
        /// </summary>
        /// <value>An ORGANIZATION&#39;s legal trade name.</value>
        public string organizationName { 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; }
	}
}
