from csirtmu.core.temporal import ScheduledTemporalWorkflow

from .change_subject_of_automatic_report_on_correspond import ChangeSubjectOfAutomaticReportOnCorrespond
from .close_automatic_tickets import CloseAutomaticTickets
from .close_automatic_tickets_from_outside import CloseAutomaticTicketsFromOutside
from .create_gitlab_issue_on_certificate_ticket import CreateGitlabIssueOnCertificateTicket
from .handle_copyright_infringement import HandleCopyrightInfringement
from .handle_generic_autoreplies import HandleGenericAutoreplies
from .handle_prominent_contact import HandleProminentContact
from .handle_transaction import HandleTransaction
from .hash_discovered_attachments import HashDiscoveredAttachments
from .link_with_ticket_on_link_with_header import LinkWithTicketOnLinkWithHeader
from .mattermost_notification_on_analytics_category import MattermostNotificationOnAnalyticsCategory
from .mattermost_notification_on_analytics_comment import MattermostNotificationOnAnalyticsComment
from .mattermost_notification_on_automatic_ticket_from_uni import MattermostNotificationOnAutomaticTicketFromUni
from .mattermost_notification_on_certificate_ticket import MattermostNotificationOnCertificateTicket
from .mattermost_notification_on_csirt_web_form import MattermostNotificationOnCSIRTWebForm
from .mattermost_notification_on_pentest_ticket import MattermostNotificationOnPentestTicket
from .periodic_workflows.open_stalled_overdue_tickets import OpenStalledOverdueTickets
from .periodic_workflows.retry_failed_transactions import RetryFailedTransactions
from .set_category_for_tool_report import SetCategoryForToolReport
from .set_custom_fields_on_create import SetCustomFieldsOnCreate
from .set_due_on_ticket_status_change import SetDueOnTicketStatusChange
from .set_ip_custom_field_on_create import SetIPCustomFieldOnCreate
from .set_network_info_on_ip_custom_field import SetNetworkInfoOnIpCustomField
from .set_report_uuid import SetReportUUID
from .set_spam_category_on_spam_header import SetSpamCategoryOnSpamHeader
from .set_starts_on_create import SetStartsOnCreate
from .set_status_act_on_automatic_correspond import SetStatusActOnAutomaticCorrespond
from .set_status_act_on_email_correspond import SetStatusActOnEmailCorrespondWorkflow
from .set_status_rejected_on_returned_mail import SetStatusRejectedOnReturnedMail
from .set_status_wait_on_web_correspond import SetStatusWaitOnWebCorrespondWorkflow
from .set_ticket_priority_on_custom_field_change import SetTicketPriorityOnCustomFieldChange

TaskWorkflows = [
    ChangeSubjectOfAutomaticReportOnCorrespond,
    CloseAutomaticTickets,
    CloseAutomaticTicketsFromOutside,
    CreateGitlabIssueOnCertificateTicket,
    HandleGenericAutoreplies,
    HandleCopyrightInfringement,
    HandleProminentContact,
    HashDiscoveredAttachments,
    LinkWithTicketOnLinkWithHeader,
    MattermostNotificationOnAnalyticsCategory,
    MattermostNotificationOnAnalyticsComment,
    MattermostNotificationOnAutomaticTicketFromUni,
    MattermostNotificationOnCertificateTicket,
    MattermostNotificationOnCSIRTWebForm,
    MattermostNotificationOnPentestTicket,
    SetCategoryForToolReport,
    SetCustomFieldsOnCreate,
    SetDueOnTicketStatusChange,
    SetSpamCategoryOnSpamHeader,
    SetTicketPriorityOnCustomFieldChange,
    SetStartsOnCreate,
    SetStatusWaitOnWebCorrespondWorkflow,
    SetStatusActOnAutomaticCorrespond,
    SetStatusActOnEmailCorrespondWorkflow,
    SetStatusRejectedOnReturnedMail,
    SetNetworkInfoOnIpCustomField,
    SetReportUUID,
    SetIPCustomFieldOnCreate,
]

PeriodicWorkflows: list[type[ScheduledTemporalWorkflow]] = [OpenStalledOverdueTickets]

__all__ = [
    "ChangeSubjectOfAutomaticReportOnCorrespond",
    "CloseAutomaticTickets",
    "CloseAutomaticTicketsFromOutside",
    "CreateGitlabIssueOnCertificateTicket",
    "HandleCopyrightInfringement",
    "HandleGenericAutoreplies",
    "HandleProminentContact",
    "HandleTransaction",
    "HashDiscoveredAttachments",
    "LinkWithTicketOnLinkWithHeader",
    "MattermostNotificationOnAnalyticsCategory",
    "MattermostNotificationOnAnalyticsComment",
    "MattermostNotificationOnAutomaticTicketFromUni",
    "MattermostNotificationOnCSIRTWebForm",
    "MattermostNotificationOnCertificateTicket",
    "MattermostNotificationOnPentestTicket",
    "OpenStalledOverdueTickets",
    "PeriodicWorkflows",
    "RetryFailedTransactions",
    "SetCategoryForToolReport",
    "SetCustomFieldsOnCreate",
    "SetDueOnTicketStatusChange",
    "SetIPCustomFieldOnCreate",
    "SetNetworkInfoOnIpCustomField",
    "SetReportUUID",
    "SetSpamCategoryOnSpamHeader",
    "SetStartsOnCreate",
    "SetStatusActOnAutomaticCorrespond",
    "SetStatusActOnEmailCorrespondWorkflow",
    "SetStatusRejectedOnReturnedMail",
    "SetStatusWaitOnWebCorrespondWorkflow",
    "SetTicketPriorityOnCustomFieldChange",
    "TaskWorkflows",
]
