from api_initializer.event_clusters import EventCluster, RouterCluster
from index import endpoints_index
from .supers_events import (
    ApplicationListAllEvent,
    ApplicationListAvailableEvent,
    ApplicationListAppendedEvent,
    ApplicationRegisterServiceEvent,
    ApplicationUnRegisterServiceEvent,
    ApplicationCreateEvent,
    ApplicationUpdateEvent,
    ApplicationBindEmployeeEvent,
    ApplicationBindOccupantEvent,
)


ApplicationRouterCluster = RouterCluster(name="ApplicationRouterCluster")

ApplicationEventClusterListAll = EventCluster(name="ApplicationListAll", endpoint_uu_id=endpoints_index["ApplicationListAll"])
ApplicationEventClusterListAll.add_event(ApplicationListAllEvent)

ApplicationEventClusterListAvailable = EventCluster(name="ApplicationListAvailable", endpoint_uu_id=endpoints_index["ApplicationListAvailable"])
ApplicationEventClusterListAvailable.add_event(ApplicationListAvailableEvent)

ApplicationEventClusterListAppended = EventCluster(name="ApplicationListAppended", endpoint_uu_id=endpoints_index["ApplicationListAppended"])
ApplicationEventClusterListAppended.add_event(ApplicationListAppendedEvent)

ApplicationEventClusterRegisterService = EventCluster(name="ApplicationRegisterService", endpoint_uu_id=endpoints_index["ApplicationRegisterService"])
ApplicationEventClusterRegisterService.add_event(ApplicationRegisterServiceEvent)

ApplicationEventClusterUnregisterService = EventCluster(name="ApplicationUnRegisterService", endpoint_uu_id=endpoints_index["ApplicationUnRegisterService"])
ApplicationEventClusterUnregisterService.add_event(ApplicationUnRegisterServiceEvent)

ApplicationEventClusterCreate = EventCluster(name="ApplicationCreate", endpoint_uu_id=endpoints_index["ApplicationCreate"])
ApplicationEventClusterCreate.add_event(ApplicationCreateEvent)

ApplicationEventClusterUpdate = EventCluster(name="ApplicationUpdate", endpoint_uu_id=endpoints_index["ApplicationUpdate"])
ApplicationEventClusterUpdate.add_event(ApplicationUpdateEvent)

ApplicationEventClusterBindEmployee = EventCluster(name="ApplicationBindEmployee", endpoint_uu_id=endpoints_index["ApplicationBindEmployee"])
ApplicationEventClusterBindEmployee.add_event(ApplicationBindEmployeeEvent)

ApplicationEventClusterBindOccupant = EventCluster(name="ApplicationBindOccupant", endpoint_uu_id=endpoints_index["ApplicationBindOccupant"])
ApplicationEventClusterBindOccupant.add_event(ApplicationBindOccupantEvent)


ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterListAll)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterListAvailable)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterListAppended)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterRegisterService)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterUnregisterService)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterCreate)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterUpdate)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterBindEmployee)
ApplicationRouterCluster.set_event_cluster(ApplicationEventClusterBindOccupant)
