edc_dataplane_proxy/model/
edr.rs1use 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}