/*
 * 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 AccountSignerQuotaDto {
    /// Ratelimit period in days for linking signers per account
    #[serde(rename = "maxLinkedSignersPeriodDays")]
    pub max_linked_signers_period_days: f64,
    /// Max number of signer that can be linked within ratelimit period
    #[serde(rename = "maxLinkedSignersInPeriod")]
    pub max_linked_signers_in_period: f64,
    /// Number of signers linked within current ratelimit period
    #[serde(rename = "linkedSignersUsedInPeriod")]
    pub linked_signers_used_in_period: f64,
    /// Hours before expiry when a signer can be refreshed
    #[serde(rename = "linkedSignerRefreshHoursBeforeExpiry")]
    pub linked_signer_refresh_hours_before_expiry: f64,
}

impl AccountSignerQuotaDto {
    pub fn new(
        max_linked_signers_period_days: f64,
        max_linked_signers_in_period: f64,
        linked_signers_used_in_period: f64,
        linked_signer_refresh_hours_before_expiry: f64,
    ) -> AccountSignerQuotaDto {
        AccountSignerQuotaDto {
            max_linked_signers_period_days,
            max_linked_signers_in_period,
            linked_signers_used_in_period,
            linked_signer_refresh_hours_before_expiry,
        }
    }
}
