Skip to main content

im_core/auth/
dto.rs

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}