Skip to main content

yauth_entity/
oauth2_server.rs

1use chrono::NaiveDateTime;
2use serde::{Deserialize, Serialize};
3use uuid::Uuid;
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct Oauth2Client {
7    pub id: Uuid,
8    pub client_id: String,
9    pub client_secret_hash: Option<String>,
10    pub redirect_uris: serde_json::Value,
11    pub client_name: Option<String>,
12    pub grant_types: serde_json::Value,
13    pub scopes: Option<serde_json::Value>,
14    pub is_public: bool,
15    pub created_at: NaiveDateTime,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct NewOauth2Client {
20    pub id: Uuid,
21    pub client_id: String,
22    pub client_secret_hash: Option<String>,
23    pub redirect_uris: serde_json::Value,
24    pub client_name: Option<String>,
25    pub grant_types: serde_json::Value,
26    pub scopes: Option<serde_json::Value>,
27    pub is_public: bool,
28    pub created_at: NaiveDateTime,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct AuthorizationCode {
33    pub id: Uuid,
34    pub code_hash: String,
35    pub client_id: String,
36    pub user_id: Uuid,
37    pub scopes: Option<serde_json::Value>,
38    pub redirect_uri: String,
39    pub code_challenge: String,
40    pub code_challenge_method: String,
41    pub expires_at: NaiveDateTime,
42    pub used: bool,
43    pub nonce: Option<String>,
44    pub created_at: NaiveDateTime,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
48pub struct NewAuthorizationCode {
49    pub id: Uuid,
50    pub code_hash: String,
51    pub client_id: String,
52    pub user_id: Uuid,
53    pub scopes: Option<serde_json::Value>,
54    pub redirect_uri: String,
55    pub code_challenge: String,
56    pub code_challenge_method: String,
57    pub expires_at: NaiveDateTime,
58    pub used: bool,
59    pub nonce: Option<String>,
60    pub created_at: NaiveDateTime,
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize)]
64pub struct Consent {
65    pub id: Uuid,
66    pub user_id: Uuid,
67    pub client_id: String,
68    pub scopes: Option<serde_json::Value>,
69    pub created_at: NaiveDateTime,
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct NewConsent {
74    pub id: Uuid,
75    pub user_id: Uuid,
76    pub client_id: String,
77    pub scopes: Option<serde_json::Value>,
78    pub created_at: NaiveDateTime,
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
82pub struct DeviceCode {
83    pub id: Uuid,
84    pub device_code_hash: String,
85    pub user_code: String,
86    pub client_id: String,
87    pub scopes: Option<serde_json::Value>,
88    pub user_id: Option<Uuid>,
89    pub status: String,
90    pub interval: i32,
91    pub expires_at: NaiveDateTime,
92    pub last_polled_at: Option<NaiveDateTime>,
93    pub created_at: NaiveDateTime,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
97pub struct NewDeviceCode {
98    pub id: Uuid,
99    pub device_code_hash: String,
100    pub user_code: String,
101    pub client_id: String,
102    pub scopes: Option<serde_json::Value>,
103    pub user_id: Option<Uuid>,
104    pub status: String,
105    pub interval: i32,
106    pub expires_at: NaiveDateTime,
107    pub created_at: NaiveDateTime,
108}