use crate::device_client::DeviceClient;
use crate::json_serde::json_date_format;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct AccessToken {
pub start_url: String,
pub region: String,
pub access_token: String,
#[serde(with = "json_date_format")]
pub expires_at: DateTime<Utc>,
#[serde(flatten)]
pub device_client: DeviceClient,
pub refresh_token: String,
}
impl AccessToken {
pub fn is_expired(&self) -> bool {
self.expires_at < Utc::now()
}
}