edc_dataplane_proxy/model/
edr.rs

1use bon::Builder;
2use derive_more::{From, Into};
3use edc_dataplane_core::signaling::DataAddress;
4use serde::{Deserialize, Serialize};
5use sqlx::FromRow;
6use uuid::Uuid;
7
8#[derive(Builder)]
9pub struct Edr {
10    #[builder(into)]
11    pub token_id: TokenId,
12    #[builder(into)]
13    pub refresh_token_id: RefreshTokenId,
14    pub data_address: DataAddress,
15}
16
17#[derive(Builder, FromRow, Clone, Debug, PartialEq)]
18pub struct EdrEntry {
19    #[builder(into)]
20    pub transfer_id: String,
21    #[builder(into)]
22    pub token_id: TokenId,
23    #[builder(into)]
24    pub refresh_token_id: RefreshTokenId,
25}
26
27#[derive(From, Into, Serialize, Clone, Copy, Debug, sqlx::Type, PartialEq)]
28#[sqlx(transparent)]
29pub struct TokenId(Uuid);
30
31#[derive(From, Into, Clone, Debug, sqlx::Type, PartialEq, Copy)]
32#[sqlx(transparent)]
33pub struct RefreshTokenId(Uuid);
34
35#[derive(Builder, Serialize, Debug, Deserialize)]
36pub struct EdrClaims {
37    pub jti: Uuid,
38    pub aud: String,
39    pub iss: String,
40    pub sub: String,
41    exp: i64,
42    iat: i64,
43    pub transfer_id: String,
44}
45
46impl EdrClaims {
47    pub fn transfer_id(&self) -> &str {
48        &self.transfer_id
49    }
50
51    pub fn jti(&self) -> Uuid {
52        self.jti
53    }
54}