Skip to main content

edc_web_components/models/
contract_agreement_item.rs

1use edc_connector_client::types::contract_agreement::ContractAgreement;
2
3#[derive(Clone, Debug, PartialEq)]
4pub struct ContractAgreementItem {
5  pub id: String,
6  pub signing_date: String,
7  pub consumer_id: String,
8  pub provider_id: String,
9  pub asset_id: String,
10  pub policy_id: String,
11}
12
13impl From<ContractAgreement> for ContractAgreementItem {
14  fn from(contract_agreement: ContractAgreement) -> Self {
15    let id = contract_agreement.id().to_string();
16    let signing_date =
17      chrono::DateTime::from_timestamp(contract_agreement.contract_signing_date(), 0)
18        .unwrap_or_default()
19        .to_string();
20
21    let consumer_id = contract_agreement.consumer_id().to_string();
22    let provider_id = contract_agreement.provider_id().to_string();
23    let asset_id = contract_agreement.asset_id().to_string();
24    let policy_id = contract_agreement
25      .policy()
26      .id()
27      .map(|id| id.to_string())
28      .unwrap_or_default();
29
30    Self {
31      id,
32      signing_date,
33      consumer_id,
34      provider_id,
35      asset_id,
36      policy_id,
37    }
38  }
39}