1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4pub enum AuthScope {
5 UserProfile,
6 Messaging,
7 GroupMessaging,
8}
9
10#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
11pub struct SessionBundle {
12 pub subject: crate::ids::Did,
13 pub scope: AuthScope,
14 pub expires_at: Option<String>,
15 pub refreshed: bool,
16 pub bearer_token: Option<String>,
17}
18
19#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
20pub struct SessionUpdate {
21 pub subject: crate::ids::Did,
22 pub previous_expires_at: Option<String>,
23 pub new_expires_at: Option<String>,
24 pub refreshed: bool,
25 pub bearer_token: Option<String>,
26}
27
28#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
29pub struct AuthStatus {
30 pub subject: crate::ids::Did,
31 pub has_session: bool,
32 pub expires_at: Option<String>,
33 pub needs_refresh: bool,
34 pub warnings: Vec<String>,
35}