hypercall_db/traits/
pm_settlement.rs1use anyhow::Result;
2
3#[async_trait::async_trait]
4pub trait PmSettlementProjectionReader: Send + Sync {
5 async fn list_pm_settlement_pools(&self) -> Result<Vec<crate::PmSettlementPoolProjection>>;
6
7 async fn pm_settlement_pool_gate_counts(&self) -> Result<crate::PmSettlementPoolGateCounts>;
8
9 async fn list_pm_settlement_accounts(
10 &self,
11 ) -> Result<Vec<crate::PmSettlementAccountProjection>>;
12
13 async fn pm_settlement_account_gate_counts(
14 &self,
15 now_ms: i64,
16 ) -> Result<crate::PmSettlementAccountGateCounts>;
17
18 async fn list_pm_settlement_events(&self) -> Result<Vec<crate::PmSettlementEventProjection>>;
19
20 async fn list_pm_settlement_interest_events(
21 &self,
22 ) -> Result<Vec<crate::PmSettlementInterestEventProjection>>;
23
24 async fn list_pm_settlement_repayment_events(
25 &self,
26 ) -> Result<Vec<crate::PmSettlementRepaymentEventProjection>>;
27
28 async fn list_pm_recovery_plans(&self) -> Result<Vec<crate::PmRecoveryPlanProjection>>;
29
30 async fn list_pm_recovery_actions(&self) -> Result<Vec<crate::PmRecoveryActionProjection>>;
31
32 async fn pm_recovery_action_gate_counts(&self) -> Result<crate::PmRecoveryActionGateCounts>;
33}
34
35pub trait PmSettlementProjectionSyncReader: Send + Sync {
36 fn list_pm_settlement_pools_sync(&self) -> Result<Vec<crate::PmSettlementPoolProjection>>;
37
38 fn list_pm_settlement_accounts_sync(&self)
39 -> Result<Vec<crate::PmSettlementAccountProjection>>;
40
41 fn list_pm_settlement_events_sync(&self) -> Result<Vec<crate::PmSettlementEventProjection>>;
42
43 fn list_pm_settlement_interest_events_sync(
44 &self,
45 ) -> Result<Vec<crate::PmSettlementInterestEventProjection>>;
46
47 fn list_pm_settlement_repayment_events_sync(
48 &self,
49 ) -> Result<Vec<crate::PmSettlementRepaymentEventProjection>>;
50
51 fn list_pm_recovery_plans_sync(&self) -> Result<Vec<crate::PmRecoveryPlanProjection>>;
52
53 fn list_pm_recovery_actions_sync(&self) -> Result<Vec<crate::PmRecoveryActionProjection>>;
54}
55
56pub trait PmSettlementProjectionSyncWriter: Send + Sync {
57 fn apply_pm_settlement_projection_writes_sync(
58 &self,
59 writes: &[crate::PmSettlementProjectionWrite],
60 ) -> Result<()>;
61}