namespace CoreConnect.Commerce.Customer;
/// Customer representation.
/// Gets or sets the unique identifier for the customer.
public required string Id { get; set; }
/// Gets or sets the identifier for the customer group to which the customer belongs, if applicable.
public string? CustomerGroupId { get; set; }
/// Gets or sets the first name of the customer.
public required string FirstName { get; set; }
/// Gets or sets the last name of the customer.
public required string LastName { get; set; }
/// Gets or sets the middle name of the customer, if applicable.
public string? MiddleName { get; set; }
/// Gets or sets the email address of the customer.
public required string Email { get; set; }
/// Gets or sets the company name associated with the customer, if applicable.
public string? CompanyName { get; set; }
/// Gets or sets the VAT (Value Added Tax) number of the customer, if applicable.
public string? VatNumber { get; set; }
/// Gets or sets the phone number of the customer, if provided.
public string? Phone { get; set; }
/// Gets or sets the birth date of the customer, if available.
public string? BirthDate { get; set; }
/// Gets or sets the version of the customer object.
public long Version { get; set; }
/// Gets or sets the default billing address for the customer, if specified.
public CustomerAddress? DefaultBillingAddress { get; set; }
/// Gets or sets the default shipping address for the customer, if specified.
public CustomerAddress? DefaultShippingAddress { get; set; }
/// Gets or sets a list of addresses associated with the customer.
public IList<CustomerAddress?> Addresses { get; set; } = new List<CustomerAddress?>(capacity: 10);
/// Customer's salutation
public string? Salutation { get; set; }
public bool? Newsletter { get; set; }
/// List of groups as strings for the user, e.g. `groupA,groupB`
public IList<string>? Groups { get; set; }