from enum import StrEnum class EventStatus(StrEnum): PENDING = "pending" PROCESSED = "processed" FAILED = "failed" class EventType(StrEnum): RISK_ACTION_RECORDED = "risk.action_recorded" REPORT_PUSH_SUCCEEDED = "report.push_succeeded" REPORT_PUSH_FAILED = "report.push_failed" REPORT_GENERATED = "report.generated" LEGACY_SYNC_COMPLETED = "legacy.sync_completed" LEGACY_SYNC_FAILED = "legacy.sync_failed" AI_MEMORY_WRITTEN = "ai.memory_written" ENTERPRISE_ANALYTICS_GENERATED = "enterprise.analytics_generated" class EventSource(StrEnum): RISK = "risk" REPORTS = "reports" LEGACY_MYSQL = "legacy_mysql" AI_MEMORY = "ai_memory" ANALYTICS = "analytics" API = "api" class EventAggregateType(StrEnum): RISK_EVENT = "risk-event" REPORT_PUSH_RUN = "report-push-run" WORK_REPORT = "work-report" LEGACY_SYNC_RUN = "legacy-sync-run" AI_MEMORY_ENTRY = "ai-memory-entry" ENTERPRISE_ANALYTICS = "enterprise-analytics" class EventResponseKey(StrEnum): ITEMS = "items" EVENT = "event" TOTAL = "total" class EventPayloadKey(StrEnum): ACTION = "action" STATUS = "status" DOMAIN = "domain" RECORD_ID = "record_id" COMMENT = "comment" CODE = "code" CREATED = "created" UPDATED = "updated" SKIPPED = "skipped" ERROR_MESSAGE = "error_message" ATTEMPTS = "attempts" HANDLED = "handled" class EventErrorDetail(StrEnum): EVENT_NOT_FOUND = "Domain event not found" EVENT_NOT_RETRYABLE = "Domain event is not retryable" EVENT_CODE_PREFIX = "EVT"