from typing import Union

from api_validations.validations_request import (
    DepartmentsPydantic,
    PatchRecord,
    ListOptions,
)

from api_events.events.abstract_class import MethodToEvent
from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObject


class ServicesEvents(MethodToEvent):

    @classmethod
    def services_list(
        cls,
        list_options: ListOptions,
        token_dict: Union[EmployeeTokenObject, OccupantTokenObject],
    ):
        return

    @classmethod
    def services_create(
        cls,
        data: DepartmentsPydantic,
        token_dict: Union[EmployeeTokenObject, OccupantTokenObject],
    ):
        return

    @classmethod
    def services_update(
        cls,
        service_uu_id: str,
        data: DepartmentsPydantic,
        token_dict: Union[EmployeeTokenObject, OccupantTokenObject],
    ):
        return

    @classmethod
    def services_patch(
        cls,
        service_uu_id: str,
        data: PatchRecord,
        token_dict: Union[EmployeeTokenObject, OccupantTokenObject],
    ):
        return

    @classmethod
    def bind_service_to_action(
        cls, data, token_dict: Union[EmployeeTokenObject, OccupantTokenObject]
    ):
        return

    @classmethod
    def bind_module_to_service(
        cls, data, token_dict: Union[EmployeeTokenObject, OccupantTokenObject]
    ):
        return

    @classmethod
    def bind_events_patch(cls, company_uu_id: str, data: PatchRecord):
        return
