use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Deserialize)]
pub struct EvaluationRun {
pub id: String,
pub dataset_id: String,
pub model: String,
pub prompt_id: Option<String>,
pub status: String,
pub config: Option<Value>,
pub created_at: String,
pub started_at: Option<String>,
pub finished_at: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct EvaluationResultRow {
pub id: String,
pub run_id: String,
pub input_id: String,
pub output: String,
pub score: Option<f64>,
pub metadata: Option<Value>,
pub created_at: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct EvaluationResultsPage {
pub items: Vec<EvaluationResultRow>,
pub next_cursor: Option<String>,
pub has_more: bool,
}
#[derive(Debug, Clone, Serialize)]
pub struct EvaluationCreateParams {
pub dataset_id: String,
pub model: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub prompt_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub config: Option<Value>,
}