/*
 * codex-backend
 *
 * codex-backend
 *
 * The version of the OpenAPI document: 0.0.1
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::Deserialize;
use serde::Serialize;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CodeTaskDetailsResponse {
    #[serde(rename = "task")]
    pub task: Box<models::TaskResponse>,
    #[serde(rename = "current_user_turn", skip_serializing_if = "Option::is_none")]
    pub current_user_turn: Option<std::collections::HashMap<String, serde_json::Value>>,
    #[serde(
        rename = "current_assistant_turn",
        skip_serializing_if = "Option::is_none"
    )]
    pub current_assistant_turn: Option<std::collections::HashMap<String, serde_json::Value>>,
    #[serde(
        rename = "current_diff_task_turn",
        skip_serializing_if = "Option::is_none"
    )]
    pub current_diff_task_turn: Option<std::collections::HashMap<String, serde_json::Value>>,
}

impl CodeTaskDetailsResponse {
    pub fn new(task: models::TaskResponse) -> CodeTaskDetailsResponse {
        CodeTaskDetailsResponse {
            task: Box::new(task),
            current_user_turn: None,
            current_assistant_turn: None,
            current_diff_task_turn: None,
        }
    }
}
