/*
 * Late API
 *
 * API reference for Late. Authenticate with a Bearer API key. Base URL: https://getlate.dev/api
 *
 * The version of the OpenAPI document: 1.0.1
 * Contact: support@getlate.dev
 * Generated by: https://openapi-generator.tech
 */

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

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AccountWithFollowerStats {
    #[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
    pub _id: Option<String>,
    #[serde(rename = "platform", skip_serializing_if = "Option::is_none")]
    pub platform: Option<String>,
    #[serde(rename = "profileId", skip_serializing_if = "Option::is_none")]
    pub profile_id: Option<Box<models::SocialAccountProfileId>>,
    #[serde(rename = "username", skip_serializing_if = "Option::is_none")]
    pub username: Option<String>,
    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
    pub display_name: Option<String>,
    /// Full profile URL for the connected account on its platform.
    #[serde(rename = "profileUrl", skip_serializing_if = "Option::is_none")]
    pub profile_url: Option<String>,
    #[serde(rename = "isActive", skip_serializing_if = "Option::is_none")]
    pub is_active: Option<bool>,
    /// Follower count (only included if user has analytics add-on)
    #[serde(rename = "followersCount", skip_serializing_if = "Option::is_none")]
    pub followers_count: Option<f64>,
    /// Last time follower count was updated (only included if user has analytics add-on)
    #[serde(
        rename = "followersLastUpdated",
        skip_serializing_if = "Option::is_none"
    )]
    pub followers_last_updated: Option<String>,
    #[serde(rename = "profilePicture", skip_serializing_if = "Option::is_none")]
    pub profile_picture: Option<String>,
    /// Current follower count
    #[serde(rename = "currentFollowers", skip_serializing_if = "Option::is_none")]
    pub current_followers: Option<f64>,
    #[serde(rename = "lastUpdated", skip_serializing_if = "Option::is_none")]
    pub last_updated: Option<String>,
    /// Follower change over period
    #[serde(rename = "growth", skip_serializing_if = "Option::is_none")]
    pub growth: Option<f64>,
    /// Percentage growth
    #[serde(rename = "growthPercentage", skip_serializing_if = "Option::is_none")]
    pub growth_percentage: Option<f64>,
    /// Number of historical snapshots
    #[serde(rename = "dataPoints", skip_serializing_if = "Option::is_none")]
    pub data_points: Option<f64>,
}

impl AccountWithFollowerStats {
    pub fn new() -> AccountWithFollowerStats {
        AccountWithFollowerStats {
            _id: None,
            platform: None,
            profile_id: None,
            username: None,
            display_name: None,
            profile_url: None,
            is_active: None,
            followers_count: None,
            followers_last_updated: None,
            profile_picture: None,
            current_followers: None,
            last_updated: None,
            growth: None,
            growth_percentage: None,
            data_points: None,
        }
    }
}
