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

from __future__ import annotations
from .utils.json_map import JsonMap
from .base import BaseModel
from .profile_type_enum import ProfileTypeEnum


@JsonMap({"id_": "id"})
class PeopleMe(BaseModel):
    """People object representing a Deel

    :param id_: Unique identifier for the user profile, defaults to None
    :type id_: float, optional
    :param user_id: Unique identifier for the user, defaults to None
    :type user_id: float, optional
    :param username: Username of the user, defaults to None
    :type username: str, optional
    :param first_name: First name of the user, defaults to None
    :type first_name: str, optional
    :param middle_name: Middle name of the user, defaults to None
    :type middle_name: str, optional
    :param last_name: Last name of the user, defaults to None
    :type last_name: str, optional
    :param full_name: Full name of the user, defaults to None
    :type full_name: str, optional
    :param email: Email address of the user, defaults to None
    :type email: str, optional
    :param avatar_url: URL of the user's avatar, defaults to None
    :type avatar_url: str, optional
    :param profile_type: profile_type, defaults to None
    :type profile_type: ProfileTypeEnum, optional
    :param slack_user_id: User's slack id, defaults to None
    :type slack_user_id: str, optional
    :param slack_team_id: User's team slack id, defaults to None
    :type slack_team_id: str, optional
    :param organization_id: Unique identifier for the organization, defaults to None
    :type organization_id: float, optional
    :param organization_name: Name of the organization, defaults to None
    :type organization_name: str, optional
    :param client_country: Country code., defaults to None
    :type client_country: str, optional
    :param contractor_country: Country code., defaults to None
    :type contractor_country: str, optional
    :param hris_enabled: HRIS feature enabled., defaults to None
    :type hris_enabled: bool, optional
    """

    def __init__(
        self,
        id_: float = None,
        user_id: float = None,
        username: str = None,
        first_name: str = None,
        middle_name: str = None,
        last_name: str = None,
        full_name: str = None,
        email: str = None,
        avatar_url: str = None,
        profile_type: ProfileTypeEnum = None,
        slack_user_id: str = None,
        slack_team_id: str = None,
        organization_id: float = None,
        organization_name: str = None,
        client_country: str = None,
        contractor_country: str = None,
        hris_enabled: bool = None,
    ):
        if id_ is not None:
            self.id_ = id_
        if user_id is not None:
            self.user_id = user_id
        if username is not None:
            self.username = username
        if first_name is not None:
            self.first_name = first_name
        if middle_name is not None:
            self.middle_name = middle_name
        if last_name is not None:
            self.last_name = last_name
        if full_name is not None:
            self.full_name = full_name
        if email is not None:
            self.email = email
        if avatar_url is not None:
            self.avatar_url = avatar_url
        if profile_type is not None:
            self.profile_type = self._enum_matching(
                profile_type, ProfileTypeEnum.list(), "profile_type"
            )
        if slack_user_id is not None:
            self.slack_user_id = slack_user_id
        if slack_team_id is not None:
            self.slack_team_id = slack_team_id
        if organization_id is not None:
            self.organization_id = organization_id
        if organization_name is not None:
            self.organization_name = organization_name
        if client_country is not None:
            self.client_country = self._pattern_matching(
                client_country, "^[A-Z]{2}$", "client_country"
            )
        if contractor_country is not None:
            self.contractor_country = self._pattern_matching(
                contractor_country, "^[A-Z]{2}$", "contractor_country"
            )
        if hris_enabled is not None:
            self.hris_enabled = hris_enabled
