/*
 * Ethereal Exchange API
 *
 * Ethereal HTTP API for real-time trading, order management, and market data access.
 *
 * The version of the OpenAPI document: 0.1.0
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ProjectedFundingDto {
    /// Id representing the registered product
    #[serde(rename = "productId")]
    pub product_id: uuid::Uuid,
    /// Projected funding rate expressed as a decimal (precision: 9)
    #[serde(rename = "fundingRateProjected1h")]
    pub funding_rate_projected1h: String,
    /// Funding rate expressed as a decimal (precision: 9)
    #[serde(rename = "fundingRate1h")]
    pub funding_rate1h: String,
}

impl ProjectedFundingDto {
    pub fn new(
        product_id: uuid::Uuid,
        funding_rate_projected1h: String,
        funding_rate1h: String,
    ) -> ProjectedFundingDto {
        ProjectedFundingDto {
            product_id,
            funding_rate_projected1h,
            funding_rate1h,
        }
    }
}
