use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConnectUser {
pub id: String,
pub name: String,
pub email: Option<String>,
pub email_verified: Option<bool>,
pub avatar_url: Option<String>,
pub raw_data: Value,
pub access_token: String,
pub refresh_token: Option<String>,
pub expires_in: Option<u64>,
}
use async_trait::async_trait;
#[async_trait]
pub trait IntoDatabaseUser<T> {
async fn sync_from_oauth(profile: &ConnectUser) -> Result<T, crate::error::ConnectError>;
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct DeviceAuthorizationResponse {
pub device_code: String,
pub user_code: String,
pub verification_uri: String,
pub verification_uri_complete: Option<String>,
pub expires_in: u64,
pub interval: Option<u64>,
}