from dataclasses import dataclass, field from typing import Any @dataclass(frozen=True) class IntervaloDeTempo: inicio: float fim: float def __post_init__(self) -> None: if self.inicio < 0 or self.fim < self.inicio: raise ValueError("Intervalo de tempo inválido.") @property def duracao(self) -> float: return self.fim - self.inicio @dataclass class Clipe: identificador: str nome: str intervalo_na_timeline: IntervaloDeTempo intervalo_na_origem: IntervaloDeTempo | None = None arquivo: str | None = None identificador_da_faixa: str | None = None offline: bool = False metadados: dict[str, Any] = field(default_factory=dict) @dataclass class Faixa: identificador: str nome: str tipo: str indice: int clipes: list[Clipe] = field(default_factory=list) @dataclass class Timeline: identificador: str nome: str duracao: float | None = None taxa_de_quadros: float | None = None largura: int | None = None altura: int | None = None faixas: list[Faixa] = field(default_factory=list) metadados: dict[str, Any] = field(default_factory=dict) @dataclass class Projeto: identificador: str nome: str caminho: str | None = None sequencias: list[Any] = field(default_factory=list)