use agileplus_domain::intent_graph::*;
use serde::{Deserialize, Serialize};

/// Input request for prompt-to-graph conversion.
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct ConvertRequest {
    pub prompt: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub source_system: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub agent_id: Option<String>,
}

/// Output response containing the generated intent graph.
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct ConvertResponse {
    pub graph: IntentGraph,
    pub confidence: f64,
    pub tokens_used: Option<usize>,
    pub processing_time_ms: u64,
}
