from enum import Enum class DocumentType(str, Enum): BASKETBALL_BOX_SCORE = "basketball_box_score" UNKNOWN = "unknown" class ImportStatus(str, Enum): UPLOADED = "uploaded" PROCESSING = "processing" PARSED = "parsed" NEEDS_REVIEW = "needs_review" FINALIZED = "finalized" PARTIAL_SUCCESS = "partial_success" FAILED = "failed" class RowType(str, Enum): STARTER_HEADER = "starter_header" STARTER_PLAYER = "starter_player" BENCH_HEADER = "bench_header" BENCH_PLAYER = "bench_player" TOTALS_ROW = "totals_row" TEAM_SUMMARY_ROW = "team_summary_row" NOISE_ROW = "noise_row" class MatchType(str, Enum): EXACT_FULL_NAME = "exact_full_name" NORMALIZED_EXACT = "normalized_exact" JERSEY_AND_NAME = "jersey_and_name" FUZZY = "fuzzy" UNMATCHED = "unmatched" class ReviewIssueType(str, Enum): UNMATCHED_PLAYER = "unmatched_player" LOW_CONFIDENCE_MATCH = "low_confidence_match" IMPOSSIBLE_NUMERIC_TOTALS = "impossible_numeric_totals" MALFORMED_MINUTES = "malformed_minutes" INVALID_PERCENTAGES = "invalid_percentages" MISSING_TEAM_TOTALS = "missing_team_totals" SUMMARY_STAT_INCONSISTENCY = "summary_stat_inconsistency" EXTRACTION_ERROR = "extraction_error" class ReviewSeverity(str, Enum): INFO = "info" WARNING = "warning" ERROR = "error" BLOCKER = "blocker" class ResolutionStatus(str, Enum): PENDING = "pending" RESOLVED = "resolved" IGNORED = "ignored"