edc_web_components/models/
contract_negotiation_item.rs1use super::{ContractNegotiationKind, ContractNegotiationState};
2use edc_connector_client::types::contract_negotiation::ContractNegotiation;
3
4#[derive(Clone, Debug, PartialEq)]
5pub struct ContractNegotiationItem {
6 pub id: String,
7 pub state: String,
8 pub contract_agreement_id: String,
9 pub counter_party_id: String,
10 pub counter_party_address: String,
11 pub protocol: String,
12 pub kind: String,
13}
14
15impl From<ContractNegotiation> for ContractNegotiationItem {
16 fn from(contract_negotiation: ContractNegotiation) -> Self {
17 let id = contract_negotiation.id().to_string();
18 let state = ContractNegotiationState::from(contract_negotiation.state()).to_string();
19 let contract_agreement_id = contract_negotiation
20 .contract_agreement_id()
21 .map(|contract_agreement_id| contract_agreement_id.to_string())
22 .unwrap_or_default();
23 let counter_party_id = contract_negotiation
24 .counter_party_id()
25 .clone()
26 .unwrap_or_default();
27 let counter_party_address = contract_negotiation.counter_party_address().to_string();
28 let protocol = contract_negotiation.protocol().to_string();
29 let kind = ContractNegotiationKind::from(contract_negotiation.kind()).to_string();
30
31 Self {
32 id,
33 state,
34 contract_agreement_id,
35 counter_party_id,
36 counter_party_address,
37 protocol,
38 kind,
39 }
40 }
41}