"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import avikom.generic.modality_pb2
import avikom.generic.user_pb2
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class UserProfile(google.protobuf.message.Message):
    """*
    A more elaborate profile of a user including additional data (i.e. "Stammdaten").
    User Attribution is mandatory, all other fields are optional
    @author: Lars Schalkwijk <lars.schalkwijk@fh-bielefeld.de>
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    DEPARTMENT_FIELD_NUMBER: builtins.int
    PHONE_NUMBER_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    MODAL_PREFERENCES_FIELD_NUMBER: builtins.int
    ASSISTANCE_DECREASE_FIELD_NUMBER: builtins.int
    @property
    def user(self) -> avikom.generic.user_pb2.User:
        """/ the user object that belongs to this profile; mandatory information"""
    email: builtins.str
    """/ a valid e-mail address to contact the user; optional information"""
    department: builtins.str
    """/ the department the user works in; optional information"""
    phone_number: builtins.str
    """/ a phone number under which the user can be reached; optional information"""
    position: builtins.str
    """/ the job title of the user; optional information"""
    @property
    def modal_preferences(self) -> avikom.generic.modality_pb2.Modality:
        """/ indicating if the user prefers a specific modality above others; optional information"""
    assistance_decrease: builtins.float
    """/ the "velocity" with which amount of assistance is decreased; 0 means no decrease; 1 max. decrease?; optional information"""
    def __init__(
        self,
        *,
        user: avikom.generic.user_pb2.User | None = ...,
        email: builtins.str = ...,
        department: builtins.str = ...,
        phone_number: builtins.str = ...,
        position: builtins.str = ...,
        modal_preferences: avikom.generic.modality_pb2.Modality | None = ...,
        assistance_decrease: builtins.float = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["modal_preferences", b"modal_preferences", "user", b"user"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["assistance_decrease", b"assistance_decrease", "department", b"department", "email", b"email", "modal_preferences", b"modal_preferences", "phone_number", b"phone_number", "position", b"position", "user", b"user"]) -> None: ...

global___UserProfile = UserProfile
