/*
 * Binance Staking REST API
 *
 * OpenAPI Specification for the Binance Staking REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

#![allow(unused_imports)]
use crate::staking::rest_api::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GetOnChainYieldsLockedProductPositionResponseRowsInner {
    #[serde(rename = "positionId", skip_serializing_if = "Option::is_none")]
    pub position_id: Option<String>,
    #[serde(rename = "projectId", skip_serializing_if = "Option::is_none")]
    pub project_id: Option<String>,
    #[serde(rename = "asset", skip_serializing_if = "Option::is_none")]
    pub asset: Option<String>,
    #[serde(rename = "amount", skip_serializing_if = "Option::is_none")]
    pub amount: Option<String>,
    #[serde(rename = "purchaseTime", skip_serializing_if = "Option::is_none")]
    pub purchase_time: Option<String>,
    #[serde(rename = "duration", skip_serializing_if = "Option::is_none")]
    pub duration: Option<String>,
    #[serde(rename = "accrualDays", skip_serializing_if = "Option::is_none")]
    pub accrual_days: Option<String>,
    #[serde(rename = "rewardAsset", skip_serializing_if = "Option::is_none")]
    pub reward_asset: Option<String>,
    #[serde(rename = "APY", skip_serializing_if = "Option::is_none")]
    pub apy: Option<String>,
    #[serde(rename = "rewardAmt", skip_serializing_if = "Option::is_none")]
    pub reward_amt: Option<String>,
    #[serde(rename = "nextPay", skip_serializing_if = "Option::is_none")]
    pub next_pay: Option<String>,
    #[serde(rename = "nextPayDate", skip_serializing_if = "Option::is_none")]
    pub next_pay_date: Option<String>,
    #[serde(rename = "payPeriod", skip_serializing_if = "Option::is_none")]
    pub pay_period: Option<String>,
    #[serde(rename = "rewardsPayDate", skip_serializing_if = "Option::is_none")]
    pub rewards_pay_date: Option<String>,
    #[serde(rename = "rewardsEndDate", skip_serializing_if = "Option::is_none")]
    pub rewards_end_date: Option<String>,
    #[serde(rename = "deliverDate", skip_serializing_if = "Option::is_none")]
    pub deliver_date: Option<String>,
    #[serde(
        rename = "nextSubscriptionDate",
        skip_serializing_if = "Option::is_none"
    )]
    pub next_subscription_date: Option<String>,
    #[serde(rename = "redeemingAmt", skip_serializing_if = "Option::is_none")]
    pub redeeming_amt: Option<String>,
    #[serde(rename = "redeemTo", skip_serializing_if = "Option::is_none")]
    pub redeem_to: Option<String>,
    #[serde(rename = "canRedeemEarly", skip_serializing_if = "Option::is_none")]
    pub can_redeem_early: Option<bool>,
    #[serde(rename = "autoSubscribe", skip_serializing_if = "Option::is_none")]
    pub auto_subscribe: Option<bool>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<String>,
    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
    pub status: Option<String>,
}

impl GetOnChainYieldsLockedProductPositionResponseRowsInner {
    #[must_use]
    pub fn new() -> GetOnChainYieldsLockedProductPositionResponseRowsInner {
        GetOnChainYieldsLockedProductPositionResponseRowsInner {
            position_id: None,
            project_id: None,
            asset: None,
            amount: None,
            purchase_time: None,
            duration: None,
            accrual_days: None,
            reward_asset: None,
            apy: None,
            reward_amt: None,
            next_pay: None,
            next_pay_date: None,
            pay_period: None,
            rewards_pay_date: None,
            rewards_end_date: None,
            deliver_date: None,
            next_subscription_date: None,
            redeeming_amt: None,
            redeem_to: None,
            can_redeem_early: None,
            auto_subscribe: None,
            r#type: None,
            status: None,
        }
    }
}
