"""
Доменные модели
"""
from dataclasses import dataclass, field
from typing import Optional, Dict, Any
import pandas as pd


@dataclass
class UploadRequest:
    """Запрос на загрузку отчета"""
    report_type: str
    file_content: bytes
    file_name: str
    parse_params: Dict[str, Any] = field(default_factory=dict)


@dataclass
class UploadResult:
    """Результат загрузки отчета"""
    success: bool
    message: str
    object_id: Optional[str] = None


@dataclass
class DataRequest:
    """Запрос на получение данных"""
    report_type: str
    get_params: Dict[str, Any]


@dataclass
class DataResult:
    """Результат получения данных"""
    success: bool
    data: Optional[Dict[str, Any]] = None
    message: Optional[str] = None


@dataclass
class ParsedData:
    """Распарсенные данные"""
    dataframe: pd.DataFrame
    metadata: Optional[Dict[str, Any]] = None
