use crate::orders_id::OperationStatus;
use crate::*;
use crate::{orders_id::OperationType, serde_help::*};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, Builder)]
#[serde(rename_all = "camelCase")]
pub struct CancelOrderRequest {
#[into]
pub reason: String,
#[default(None)]
pub external_operation_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct OperationResponseData {
pub operation: Operation,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Operation {
pub amount: f64,
pub operation_id: String,
pub operation_type: OperationType,
pub order_id: String,
#[serde(with = "option_iso8601")]
pub created: Option<Time>,
pub external_operation_id: Option<String>,
pub params: Option<serde_json::Value>,
pub reason: Option<String>,
pub status: OperationStatus,
#[serde(with = "option_iso8601")]
pub updated: Option<Time>,
}