# Common data

## Legal Data

<details>

<summary>Legal Data</summary>

**Description:**

The `LegalData` class stores legal, fiscal, and identity information about an individual or organization. This includes personal data such as name, email, gender, civil status, and address, as well as fiscal data such as tax identification numbers. This class is crucial for ensuring legal and compliance aspects for professionals or organizations registered in the platform.

**Fields:**

* **`id`** (`Long`):\
  A unique identifier for the legal data record.
* **`name`** (`String`):\
  The full legal name of the entity (individual or company).
* **`email`** (`String`):\
  A unique email address for the entity.
* **`gender`** (`Gender`):\
  The gender of the individual. This field does not apply if the entity is a company.
* **`legalType`** (`LegalType`):\
  Defines whether the entity is a person, a company, or another type of legal entity such as a non-profit or government institution.
* **`identificationType`** (`IdentificationType`):\
  The type of identification document used (e.g., passport, national ID).
* **`identificationNumber`** (`String`):\
  The identification number associated with the specified identification type.
* **`taxIdentificationType`** (`TaxIdentificationType`):\
  The type of tax identification number (e.g., CUIT, CUIL, RIF).
* **`taxIdentificationNumber`** (`String`):\
  The tax identification number of the entity.
* **`birthDate`** (`LocalDate`):\
  The birthdate of the entity, applicable only for individuals.
* **`nationality`** (`String`):\
  The nationality of the entity.
* **`address`** (`Address`):\
  The legal address of the entity, including street, number, city, state, country, and postal code.
* **`phoneNumber`** (`String`):\
  The contact phone number for the entity.

***

**Enums used:**

* **`Gender`**: Represents the gender of the individual (e.g., MALE, FEMALE, NOT\_APPLY).
* **`LegalType`**: Defines whether the entity is a person, company, non-profit, government, social movement, or religious entity.
* **`IdentificationType`**: Types of identification documents (e.g., DNI, passport, NIF).
* **`TaxIdentificationType`**: Types of tax identification numbers (e.g., CUIT, NIT, RIF).

***

These classes form the core of managing the legal and personal data of professionals or organizations registered on the platform, ensuring compliance and integrity in professional license verification.

</details>

<details>

<summary>Enablement Status</summary>

**Description:**

The `EnablementStatus` class is responsible for consolidating and representing the operational and compliance status of a license owner. It tracks critical aspects such as payment issues, legal standing, license revocation status, and data integrity. Each field in this class is mapped to a specific enum that provides detailed descriptions of the current status.

The status information is vital for ensuring that the license owner is compliant with financial, legal, and data integrity requirements, and that their license remains active and in good standing. This embedded class can be used within other entities, such as `LicenseOwner`, to provide a comprehensive view of a license owner's overall enablement status.

**Fields:**

* **`paymentIssue`** (`boolean`):\
  Determines if there is a payment-related issue. `true` indicates unresolved payment issues, which may prevent further processing of the license.
* **`paymentStatus`** (`PaymentStatus`):\
  Represents the current state of payments for the license owner. The available statuses are:
  * **`PENDING`**: The payment is currently pending.
  * **`DEBT_FREE`**: The payment has been completed successfully.
  * **`WITH_DEBTS`**: The payment failed or there are outstanding debts.
  * **`REFUNDED`**: The payment was refunded to the payer.
* **`legalIssue`** (`boolean`):\
  Indicates if there is a legal issue that might impact the license owner. If `true`, the license owner is currently facing legal concerns.
* **`legalStatus`** (`LegalStatus`):\
  Represents the legal standing of the license owner. The available statuses are:
  * **`CLEAR`**: The legal status is clear with no issues.
  * **`UNDER_INVESTIGATION`**: The license owner is under legal investigation.
  * **`SUSPENDED`**: The legal status has been suspended due to compliance or regulatory issues.
  * **`DISMISSED`**: The legal issue has been dismissed.
  * **`IN_DISPUTE`**: The legal issue is still in dispute and has not been resolved.
* **`revocationIssue`** (`boolean`):\
  Determines if there is an issue that could lead to the revocation of the license. `true` indicates the license is at risk or has been revoked.
* **`revocationStatus`** (`RevocationStatus`):\
  Represents the status of the license revocation. The available statuses are:
  * **`NOT_REVOKED`**: The license has not been revoked and is in good standing.
  * **`PENDING_REVOCATION`**: The license is under review and pending revocation.
  * **`REVOKED`**: The license has been officially revoked.
* **`dataIntegrityIssue`** (`boolean`):\
  Indicates if there are any data integrity concerns, such as discrepancies or inconsistencies in the license owner's information. If `true`, data integrity issues exist.
* **`dataIntegrityStatus`** (`DataIntegrityStatus`):\
  Represents the validity and consistency of the data provided by the license owner. The available statuses are:
  * **`VALID`**: The data provided is accurate and trustworthy.
  * **`INVALID`**: The data contains errors or inaccuracies.
  * **`CORRUPTED`**: The data has been corrupted or tampered with.
  * **`PENDING_VERIFICATION`**: The data is currently under review for potential discrepancies.

***

#### **Enums Used:**

**PaymentStatus:**

Represents the payment status of the license owner:

* **`PENDING`**: The payment is currently pending.
* **`DEBT_FREE`**: The payment has been completed.
* **`WITH_DEBTS`**: There are outstanding debts or the payment failed.
* **`REFUNDED`**: The payment has been refunded to the payer.

Each value in this enum provides a `description` explaining the current payment situation.

**LegalStatus:**

Represents the legal standing of the license owner:

* **`CLEAR`**: The legal status is clear.
* **`UNDER_INVESTIGATION`**: The legal status is under investigation.
* **`SUSPENDED`**: The legal status is suspended.
* **`DISMISSED`**: The legal issue has been dismissed.
* **`IN_DISPUTE`**: The legal status is in dispute.

Each value in this enum includes a `description` outlining the legal situation.

**RevocationStatus:**

Represents the status of license revocation:

* **`NOT_REVOKED`**: The license has not been revoked.
* **`PENDING_REVOCATION`**: Revocation is pending or under consideration.
* **`REVOKED`**: The license has been revoked.

Each status includes a `description` clarifying the revocation status.

**DataIntegrityStatus:**

Represents the integrity of the data provided by the license owner:

* **`VALID`**: The data is valid and consistent.
* **`INVALID`**: The data is invalid or inaccurate.
* **`CORRUPTED`**: The data has been corrupted or tampered with.
* **`PENDING_VERIFICATION`**: The data is pending verification or review.

Each value in this enum includes a `description` explaining the data integrity issue.

***

The `EnablementStatus` class provides a comprehensive and detailed view of key issues that impact a license owner's eligibility. It supports organizations in making informed decisions about a professional’s license status based on the combination of payment, legal, revocation, and data integrity factors. This is crucial for maintaining operational efficiency and ensuring compliance with regulations.

</details>
