haste_repository/
sequence.rs1use haste_fhir_model::r4::{
2 generated::resources::{Resource, ResourceType},
3 sqlx::FHIRJson,
4};
5use haste_fhir_operation_error::OperationOutcomeError;
6use haste_jwt::{ProjectId, ResourceId, TenantId};
7
8use crate::types::FHIRMethod;
9
10#[derive(Clone)]
11pub struct ResourcePollingValue {
12 pub id: ResourceId,
13 pub resource_type: ResourceType,
14 pub version_id: String,
15 pub project: ProjectId,
16 pub tenant: TenantId,
17 pub resource: FHIRJson<Resource>,
18 pub sequence: i64,
19 pub fhir_method: FHIRMethod,
20}
21
22pub trait ResourceSequential {
23 fn max_safe_sequence(&self) -> impl Future<Output = Result<i64, OperationOutcomeError>> + Send;
28
29 fn get_sequence(
34 &self,
35 tenant_id: &TenantId,
36 project_id: &ProjectId,
37 sequence_id: u64,
38 safe_sequence: i64,
39 count: Option<u64>,
40 ) -> impl Future<Output = Result<Vec<ResourcePollingValue>, OperationOutcomeError>> + Send;
41}