from typing import Literal, TypeAlias


ContactInformationKeys: TypeAlias = Literal[
    "phoneNumber",
    "emailAddress",
    "website",
    "address",
    "facebook",
    "twitterHandle",
    "linkedIn"
]


About: TypeAlias = ContactInformationKeys | Literal["subtitle"]


Speaker: TypeAlias = ContactInformationKeys | Literal[
    "sortName",
    "companyAndPosition",
    "copy",
]


ScheduleDay: TypeAlias = Literal["date"]


SessionGroup: TypeAlias = Literal["startTime", "endTime"]


Session: TypeAlias = Literal[
    "startTime",
    "endTime",
    "askAQuestionEnabled",
    "copy"
]


SessionSegment: TypeAlias = Literal["startTime", "endTime", "copy"]


Exhibitor: TypeAlias = ContactInformationKeys | Literal[
    "subtitle",
    "copy",
    "markerX",
    "markerY"
]


GenericGroup: TypeAlias = Literal["cellStyle"]


GenericGroupItem: TypeAlias = ContactInformationKeys | Literal[
    "subtitle",
    "keywords",
    "copy"
]

StringKey: TypeAlias = About | Speaker | ScheduleDay | SessionGroup | Session \
        | SessionSegment | Exhibitor | GenericGroup | GenericGroupItem
