import enum


class WorkflowReference(enum.StrEnum):
    HANDLE_TRANSACTION = "HandleTransaction"

    # CREATE
    SEND_MATTERMOST_NOTIFICATION_ON_EMAIL_TICKET_CREATE = "SendMattermostNotificationOnEmailTicketCreate"
    SET_SPAM_CUSTOM_FIELD_ON_SPAM_IN_TICKET_SUBJECT_ON_CREATE = "SetSpamCustomFieldOnSpamInTicketSubjectOnCreate"
    HANDLE_COPYRIGHT_INFRINGEMENT = "HandleCopyrightInfringement"
    SET_SPAM_CATEGORY_ON_SPAM_HEADER = "SetSpamCategoryOnSpamHeader"
    SET_STARTS_ON_CREATE = "SetStartsOnCreate"
    HANDLE_GENERIC_AUTOREPLIES = "HandleGenericAutoreplies"
    SET_CATEGORY_FOR_TOOL_REPORT = "SetCategoryForToolReport"
    SET_CUSTOM_FIELDS_ON_CREATE = "SetCustomFieldsOnCreate"
    CLOSE_AUTOMATIC_TICKETS = "CloseAutomaticTickets"
    CLOSE_AUTOMATIC_TICKETS_FROM_OUTSIDE = "CloseAutomaticTicketsFromOutside"
    SET_STATUS_REJECTED_ON_RETURNED_MAIL = "SetStatusRejectedOnReturnedMail"
    MATTERMOST_NOTIFICATION_ON_CSIRT_WEB_FORM = "MattermostNotificationOnCSIRTWebForm"
    ON_FINDING_CREATE = "OnFindingCreate"
    SET_IP_CUSTOM_FIELD_ON_CREATE = "SetIPCustomFieldOnCreate"

    # CUSTOM_FIELD
    SEND_MATTERMOST_NOTIFICATION_ON_CATEGORY_TESTING_TICKET = "SendMattermostNotificationOnCategoryTestingTicket"
    SET_TICKET_PRIORITY_ON_CUSTOM_FIELD_CHANGE = "SetTicketPriorityOnCustomFieldChange"

    # COMMENT
    MATTERMOST_NOTIFICATION_ON_ANALYTICS_COMMENT = "MattermostNotificationOnAnalyticsComment"

    # MULTI
    MATTERMOST_NOTIFICATION_ON_ANALYTICS_CATEGORY = "MattermostNotificationOnAnalyticsCategory"
    HASH_DISCOVERED_ATTACHMENTS = "HashDiscoveredAttachments"
    HANDLE_PROMINENT_CONTACT = "HandleProminentContact"
    SET_NETWORK_INFO_ON_IP_CUSTOM_FIELD = "SetNetworkInfoOnIpCustomField"
    MATTERMOST_NOTIFICATION_ON_PENTEST_TICKET = "MattermostNotificationOnPentestTicket"
    MATTERMOST_NOTIFICATION_ON_CERTIFICATE_TICKET = "MattermostNotificationOnCertificateTicket"
    CREATE_GITLAB_ISSUE_ON_CERTIFICATE_TICKET = "CreateGitlabIssueOnCertificateTicket"
    LINK_WITH_TICKET_ON_LINK_WITH_HEADER = "LinkWithTicketOnLinkWithHeader"

    # CORRESPOND
    SET_STATUS_ACT_ON_EMAIL_CORRESPOND_WORKFLOW = "SetStatusActOnEmailCorrespondWorkflow"
    SET_STATUS_ACT_ON_AUTOMATIC_CORRESPOND = "SetStatusActOnAutomaticCorrespond"
    SET_STATUS_WAIT_ON_WEB_CORRESPOND_WORKFLOW = "SetStatusWaitOnWebCorrespondWorkflow"
    MATTERMOST_NOTIFICATION_ON_AUTOMATIC_TICKET_FROM_UNI = "MattermostNotificationOnAutomaticTicketFromUni"
    SET_REPORT_UUID = "SetReportUUID"
    CHANGE_SUBJECT_OF_AUTOMATIC_REPORT_ON_CORRESPOND = "ChangeSubjectOfAutomaticReportOnCorrespond"

    # STATUS
    SET_DUE_ON_TICKET_STATUS_CHANGE = "SetDueOnTicketStatusChange"
    CREATE_REVIEW_TICKET = "CreateReviewTicket"
    RESOLVE_REVIEW_TICKET = "ResolveReviewTicket"

    # PERIODIC
    OPEN_STALLED_OVERDUE_TICKETS = "OpenStalledOverdueTickets"
