#![allow(dead_code)]
#![allow(clippy::useless_conversion)]
#![allow(unused_imports)]
use mongodb::bson::{oid::ObjectId, DateTime};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HealthData {
    #[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
    pub id: Option<ObjectId>,
    #[serde(rename = "healthDataId")]
    pub health_data_id: String,
    #[serde(rename = "userId")]
    pub user_id: String,
    #[serde(rename = "profileId")]
    pub profile_id: String,
    #[serde(rename = "familyId")]
    pub family_id: Option<String>,
    #[serde(rename = "healthData")]
    pub health_data: Vec<EncryptedField>,
    #[serde(rename = "createdAt")]
    pub created_at: DateTime,
    #[serde(rename = "updatedAt")]
    pub updated_at: DateTime,
    #[serde(rename = "dataSource")]
    pub data_source: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EncryptedField {
    pub encrypted: bool,
    pub data: String,
    pub iv: String,
    pub auth_tag: String,
}
