# This file was generated by liblab | https://liblab.com/

from __future__ import annotations
from .utils.json_map import JsonMap
from .base import BaseModel
from .identifier_value import IdentifierValue, IdentifierValueGuard
from .legal_entity_type import LegalEntityType


@JsonMap({"id_": "id", "type_": "type"})
class ClientOfContractLegalEntity5(BaseModel):
    """ClientOfContractLegalEntity5

    :param id_: id_
    :type id_: IdentifierValue
    :param name: name
    :type name: str
    :param email: User's email address.
    :type email: str
    :param type_: type_
    :type type_: LegalEntityType
    :param subtype: subtype
    :type subtype: str
    :param registration_number: registration_number
    :type registration_number: str
    :param vat_number: vat_number
    :type vat_number: str
    """

    def __init__(
        self,
        id_: IdentifierValue,
        name: str,
        email: str,
        type_: LegalEntityType,
        subtype: str,
        registration_number: str,
        vat_number: str,
    ):
        self.id_ = IdentifierValueGuard.return_one_of(id_)
        self.name = name
        self.email = email
        self.type_ = self._enum_matching(type_, LegalEntityType.list(), "type_")
        self.subtype = subtype
        self.registration_number = registration_number
        self.vat_number = vat_number
