use serde::{Deserialize, Serialize};
use crate::records::{Capability, JsonValue};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Artifact {
pub id: String,
pub path: String,
pub content_hash: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub preview_path: Option<String>,
pub model: String,
pub model_id: String,
pub runtime: String,
pub capability: Capability,
pub params: JsonValue,
pub created_at: i64,
pub duration_ms: i64,
pub job_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub session_id: Option<String>,
}
#[derive(Debug, Clone)]
pub struct ArtifactDraft {
pub data: Vec<u8>,
pub file_extension: String,
pub preview: Option<Vec<u8>>,
pub model: String,
pub model_id: String,
pub runtime: String,
pub capability: Capability,
pub params: JsonValue,
pub job_id: String,
pub duration_ms: i64,
pub session_id: Option<String>,
}