from typing import Any, Dict, Optional from Events.Engine.abstract_class import DefaultClusterName cluster_name = "AccountCluster" prefix = "/accounts" icon = "Building" # Icons class Icons: PENCIL = "Pencil" PLUS = "Plus" TABLE = "Table" # Components class Components: TABLE = "Table" FORM = "Form" LINK = "Link" # Keys for the cluster class KeyValidations: headers = "headers" data = "data" validation = "validations" # Keys for Validation TYPES class KeyTypeValidations: HEADERS = "HEADERS" DATA = "DATA" MODIFY = "MODIFY" VALIDATION = "VALIDATION" BOTH = "BOTH" # Types of keys class KeyTypes: REQUEST = "REQUEST" RESPONSE = "RESPONSE" BOTH = "BOTH" # Key URLS for the cluster class KeyURLs: validations = "/validations/validations" # "data": {"event_code": f"{KeyBases.list_key}", "asked_field": KeyValidations.headers, "type": KeyTypes.RESPONSE}, class ValidationRequest: def __init__( self, event_code: str, asked_field: str, type_: Optional[str] = "REQUEST" ): self.event_code = event_code self.asked_field = asked_field self.type = type_ def dump(self) -> Dict[str, Any]: return { "event_code": self.event_code, "asked_field": self.asked_field, "type": self.type, } # Keys for the cluster class KeyBases: create_key = f"{prefix}/create" update_key = f"{prefix}/update" list_key = f"{prefix}/list" # Page Variations of the cluster class PageBases: CREATE = f"/create?{DefaultClusterName}={cluster_name}" UPDATE = f"/update?{DefaultClusterName}={cluster_name}" DASHBOARD = f"/dashboard?{DefaultClusterName}={cluster_name}" # Match the keys with the pages page_2_keys = { KeyBases.create_key: PageBases.CREATE, KeyBases.update_key: PageBases.UPDATE, KeyBases.list_key: PageBases.DASHBOARD, }