use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UserCampaignRewards {
#[serde(rename = "userAddress")]
pub user_address: String,
#[serde(rename = "campaignName")]
pub campaign_name: String,
#[serde(rename = "epochNumber")]
pub epoch_number: i32,
#[serde(rename = "intervalNumber")]
pub interval_number: i32,
#[serde(rename = "symbol")]
pub symbol: String,
#[serde(rename = "status")]
pub status: Status,
#[serde(rename = "blueRewardsE9")]
pub blue_rewards_e9: String,
#[serde(rename = "suiRewardsE9")]
pub sui_rewards_e9: String,
#[serde(rename = "walRewardsE9")]
pub wal_rewards_e9: String,
#[serde(rename = "cashRewardsE9")]
pub cash_rewards_e9: String,
#[serde(rename = "userFeePaidE9")]
pub user_fee_paid_e9: String,
#[serde(rename = "intervalStartDate")]
pub interval_start_date: i32,
#[serde(rename = "intervalEndDate")]
pub interval_end_date: i32,
#[serde(rename = "isDisbursed")]
pub is_disbursed: bool,
#[serde(rename = "txnDigest")]
pub txn_digest: String,
#[serde(rename = "claimSignature", skip_serializing_if = "Option::is_none")]
pub claim_signature: Option<Vec<models::ClaimSignatureItem>>,
#[serde(rename = "claimStatus", skip_serializing_if = "Option::is_none")]
pub claim_status: Option<ClaimStatus>,
}
impl UserCampaignRewards {
pub fn new(user_address: String, campaign_name: String, epoch_number: i32, interval_number: i32, symbol: String, status: Status, blue_rewards_e9: String, sui_rewards_e9: String, wal_rewards_e9: String, cash_rewards_e9: String, user_fee_paid_e9: String, interval_start_date: i32, interval_end_date: i32, is_disbursed: bool, txn_digest: String) -> UserCampaignRewards {
UserCampaignRewards {
user_address,
campaign_name,
epoch_number,
interval_number,
symbol,
status,
blue_rewards_e9,
sui_rewards_e9,
wal_rewards_e9,
cash_rewards_e9,
user_fee_paid_e9,
interval_start_date,
interval_end_date,
is_disbursed,
txn_digest,
claim_signature: None,
claim_status: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "ACTIVE")]
Active,
#[serde(rename = "NOT_STARTED")]
NotStarted,
#[serde(rename = "FINALIZED")]
Finalized,
#[serde(rename = "COOLDOWN")]
Cooldown,
}
impl Default for Status {
fn default() -> Status {
Self::Active
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ClaimStatus {
#[serde(rename = "CLAIMABLE")]
Claimable,
#[serde(rename = "CLAIMED")]
Claimed,
#[serde(rename = "NOT_YET_CLAIMABLE")]
NotYetClaimable,
#[serde(rename = "CLAIM_ENDED")]
ClaimEnded,
}
impl Default for ClaimStatus {
fn default() -> ClaimStatus {
Self::Claimable
}
}