from dataclasses import dataclass, field from enum import Enum from typing import Any class StatusDaAnalise(str, Enum): CONCLUIDA = "concluida" CONCLUIDA_COM_AVISOS = "concluida_com_avisos" FALHOU = "falhou" @dataclass(frozen=True) class ErroDeAnalise(Exception): codigo: str mensagem: str caminho: str | None = None detalhes: dict[str, Any] = field(default_factory=dict) def __post_init__(self) -> None: Exception.__init__(self, self.mensagem) @dataclass class ResultadoDaAnalise: status: StatusDaAnalise timeline: Any = None erros: list[ErroDeAnalise] = field(default_factory=list) avisos: list[str] = field(default_factory=list) @dataclass(frozen=True) class SegmentoDeTranscricao: inicio: float fim: float texto: str confianca: float | None = None def __post_init__(self) -> None: if self.inicio < 0 or self.fim < self.inicio: raise ValueError("Intervalo de transcrição inválido.") @dataclass(frozen=True) class Cena: inicio: float fim: float confianca: float | None = None referencias: tuple[float, ...] = () @dataclass(frozen=True) class Evento: tipo: str inicio: float fim: float confianca: float | None = None