umami-api 0.0.2

Easily interact with the Umami API (self-hosted instances)
Documentation
use chrono::{DateTime, Utc};
use serde::{Deserialize};

use crate::{teams::TeamWithMembers, users::BaseUser};

#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Website {
  pub id: String,
  pub name: String,
  pub domain: String,
  pub share_id: Option<String>,
  pub reset_at: Option<DateTime<Utc>>,
  pub user_id: Option<String>,
  pub team_id: Option<String>,
  pub created_by: Option<String>,
  pub created_at: DateTime<Utc>,
  pub updated_at: Option<DateTime<Utc>>,
  pub deleted_at: Option<DateTime<Utc>>,
}

#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WebsiteWithCreateUser {
  #[serde(flatten)]
  pub website: Website,
  pub create_user: BaseUser,
}

#[derive(Clone, Debug, Deserialize)]
pub struct WebsiteWithUser {
  #[serde(flatten)]
  pub website: Website,
  pub user: Option<BaseUser>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct WebsiteWithUserTeam {
  #[serde(flatten)]
  pub website: WebsiteWithUser,
  pub team: Option<TeamWithMembers>,
}