import uuid
from datetime import datetime

from pydantic import BaseModel

from app.models.stubs import EvaluationStatus


class RunEvaluationRequest(BaseModel):
    dataset_id: uuid.UUID
    base_model: str
    judge_model: str | None = None
    use_rag: bool = False
    sample_size: int | None = None


class EvaluationResultOut(BaseModel):
    id: uuid.UUID
    project_id: uuid.UUID
    dataset_id: uuid.UUID | None
    base_model: str | None
    status: EvaluationStatus
    metrics: dict
    created_at: datetime

    class Config:
        from_attributes = True
