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