# This file is auto-generated by PrototypeX stub generator.
# Do not edit manually - changes will be overwritten.
# Regenerate using: python -m scripts.genstubs gen

from __future__ import annotations

import datetime

from audex.entity import BaseEntity
from audex.valueobj.common.auth import HashedPassword
from audex.valueobj.common.auth import Password
from audex.valueobj.common.email import Email
from audex.valueobj.common.phone import CNPhone

class Doctor(BaseEntity):
    id: str
    created_at: datetime.datetime
    updated_at: datetime.datetime | None
    eid: str
    password_hash: HashedPassword
    name: str
    department: str | None
    title: str | None
    hospital: str | None
    phone: CNPhone | None
    email: Email | None
    is_active: bool
    def __init__(
        self,
        *,
        id: str = ...,
        created_at: datetime.datetime = ...,
        updated_at: datetime.datetime | None = None,
        eid: str,
        password_hash: HashedPassword,
        name: str,
        department: str | None = None,
        title: str | None = None,
        hospital: str | None = None,
        phone: CNPhone | None = None,
        email: Email | None = None,
        is_active: bool = True,
    ) -> None: ...
    @property
    def is_authenticated(self) -> bool: ...
    def activate(self) -> None: ...
    def deactivate(self) -> None: ...
    def verify_password(
        self,
        password: Password,
    ) -> bool: ...
