# Customer

```java
String username;
String password;
String firstName;
String lastName;
String phoneNumber;
String email;
String gender;
String birthDate;
String language;
String country;
String zipCode;
String companyName;
String civilStatus;
Boolean phoneVerified;
Boolean emailVerified;
Boolean ppd;
Boolean profiling;
Map<String, String> custom;
Map<String, Boolean> policies = new HashMap();
CustomerDocument document;
Boolean lock;
String extId;
String extProp1;
String extProp2;
```

## Format

<table><thead><tr><th>Param</th><th width="246.33333333333331">Format</th><th>Example</th></tr></thead><tbody><tr><td>language</td><td>ISO 639-1</td><td>"it"</td></tr><tr><td>country</td><td>ISO 3166-1 alpha2</td><td>"IT"</td></tr><tr><td>birthdate</td><td>YYYY-MM-DD</td><td>"2000-12-01"</td></tr><tr><td>gender</td><td>{M,F,O}</td><td>"M"</td></tr><tr><td>phoneNumber</td><td>international prefix + number</td><td>"+39123456789"</td></tr></tbody></table>

## Policies

They represent the list of the policy to apply to the customer.  You can retrieve them using the function&#x20;

```swift
cloud4wiSDK.getListOfPolicies
```

It is mandatory that the policies returned by the function `getListOfPolicies` in position 0 and 1 (named "`termsOfUse`" and "`privacy`") are set to `true`.

## Profiling and PPD

In order to be able to process and profiling the customer it is necessary that the attributes `profiling` and `ppd` are set to `true`.

## Init example

```java
Customer customer = new Customer();
customer.setFirstName("Luigi");
customer.setLastName("Red");
customer.setEmail("luigi@cloud4wi.com");

customer.setPpd(true);
customer.setProfiling(true);

customer.setBirthDate("1985-01-01");
customer.setGender("M");
customer.setExtId("extIdx");
customer.setExtProp1("extProp1x");
customer.setExtProp2("extProp2x");
customer.setPhoneNumber("+39338123456789");
customer.setCountry("IT");
customer.setLanguage("it");

CustomerDocument customerDocument = new CustomerDocument();
customerDocument.setMemberId("membId123");
customerDocument.setType("passport");
customerDocument.setPassportNumber("pp123456789");
customerDocument.setPersonalId("pid123465");
customer.setDocument(customerDocument);

Map<String,String> map = new HashMap<>();
map.put("custom1","true");
map.put("custom2", "false");

customer.addPolicy("termsOfUse", true);
customer.addPolicy("privacy", true);

customer.setCustom(map);
```
