pub struct IntegrationEvent {
pub id: Uuid,
pub connector_id: Uuid,
pub event_type: String,
pub external_id: String,
pub business_key: String,
pub status: IntegrationStatus,
pub payload: String,
pub mapped_ref_type: Option<String>,
pub mapped_ref_id: Option<Uuid>,
pub error_detail: Option<String>,
pub metadata: AuditMetadata,
}Fields§
§id: Uuid§connector_id: Uuid§event_type: String§external_id: String§business_key: String§status: IntegrationStatus§payload: String§mapped_ref_type: Option<String>§mapped_ref_id: Option<Uuid>§error_detail: Option<String>§metadata: AuditMetadataImplementations§
Source§impl IntegrationEvent
impl IntegrationEvent
Sourcepub fn builder() -> IntegrationEventBuilder
pub fn builder() -> IntegrationEventBuilder
Create a builder for IntegrationEvent
Sourcepub fn new(
connector_id: Uuid,
event_type: String,
external_id: String,
business_key: String,
status: IntegrationStatus,
payload: String,
) -> Self
pub fn new( connector_id: Uuid, event_type: String, external_id: String, business_key: String, status: IntegrationStatus, payload: String, ) -> Self
Create a new IntegrationEvent with required fields
Sourcepub fn typed_id(&self) -> IntegrationEventId
pub fn typed_id(&self) -> IntegrationEventId
Get a strongly-typed ID for this entity
Sourcepub fn created_at(&self) -> Option<&DateTime<Utc>>
pub fn created_at(&self) -> Option<&DateTime<Utc>>
Get when this entity was created
Sourcepub fn updated_at(&self) -> Option<&DateTime<Utc>>
pub fn updated_at(&self) -> Option<&DateTime<Utc>>
Get when this entity was last updated
Sourcepub fn is_deleted(&self) -> bool
pub fn is_deleted(&self) -> bool
Check if this entity is soft deleted
Sourcepub fn deleted_at(&self) -> Option<&DateTime<Utc>>
pub fn deleted_at(&self) -> Option<&DateTime<Utc>>
Get when this entity was deleted
Sourcepub fn created_by(&self) -> Option<&Uuid>
pub fn created_by(&self) -> Option<&Uuid>
Get who created this entity
Sourcepub fn updated_by(&self) -> Option<&Uuid>
pub fn updated_by(&self) -> Option<&Uuid>
Get who last updated this entity
Sourcepub fn deleted_by(&self) -> Option<&Uuid>
pub fn deleted_by(&self) -> Option<&Uuid>
Get who deleted this entity
Sourcepub fn status(&self) -> &IntegrationStatus
pub fn status(&self) -> &IntegrationStatus
Get the current status
Sourcepub fn with_mapped_ref_type(self, value: String) -> Self
pub fn with_mapped_ref_type(self, value: String) -> Self
Set the mapped_ref_type field (chainable)
Sourcepub fn with_mapped_ref_id(self, value: Uuid) -> Self
pub fn with_mapped_ref_id(self, value: Uuid) -> Self
Set the mapped_ref_id field (chainable)
Sourcepub fn with_error_detail(self, value: String) -> Self
pub fn with_error_detail(self, value: String) -> Self
Set the error_detail field (chainable)
Sourcepub fn apply_patch(&mut self, fields: HashMap<String, Value>)
pub fn apply_patch(&mut self, fields: HashMap<String, Value>)
Apply partial updates from a map of field name to JSON value
Trait Implementations§
Source§impl ApplyUpdateDto<UpdateIntegrationEventDto> for IntegrationEvent
impl ApplyUpdateDto<UpdateIntegrationEventDto> for IntegrationEvent
fn apply_update(self, dto: UpdateIntegrationEventDto) -> ServiceResult<Self>
Source§impl Clone for IntegrationEvent
impl Clone for IntegrationEvent
Source§impl CrudRepository<IntegrationEvent> for IntegrationEventRepository
impl CrudRepository<IntegrationEvent> for IntegrationEventRepository
Hydrate
?include= relations: fetch rows from table by id list, as JSON
(raw row_to_json). table comes from EntityRepoMeta::relations()
(generator-emitted), never client input. Default: no expansion. The
Postgres-backed generated repos override this via impl_crud_repository!.Source§fn create<'life0, 'async_trait>(
&'life0 self,
entity: IntegrationEvent,
) -> Pin<Box<dyn Future<Output = Result<IntegrationEvent, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'async_trait>(
&'life0 self,
entity: IntegrationEvent,
) -> Pin<Box<dyn Future<Output = Result<IntegrationEvent, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a new entity
Source§fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Find entity by ID (excluding soft-deleted)
Source§fn find_by_id_including_deleted<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_id_including_deleted<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Find entity by ID (including soft-deleted, for trash operations)
Source§fn update<'life0, 'async_trait>(
&'life0 self,
entity: IntegrationEvent,
) -> Pin<Box<dyn Future<Output = Result<IntegrationEvent, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>(
&'life0 self,
entity: IntegrationEvent,
) -> Pin<Box<dyn Future<Output = Result<IntegrationEvent, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update an existing entity
Source§fn soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Soft delete an entity
Source§fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Restore a soft-deleted entity
Source§fn hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Permanently delete an entity
Source§fn list<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List entities with pagination (excluding soft-deleted)
Source§fn list_filtered<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_filtered<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List entities with pagination and filters (excluding soft-deleted) Read more
Source§fn list_filtered_with_info<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, PaginationInfo), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_filtered_with_info<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, PaginationInfo), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
list_filtered, carrying the pagination info (cursor positions
included) so the HTTP layer can surface keyset paging. Default: the
tuple form with the cursor fields absent; the generated Postgres
repositories override this with the real keyset walk.Source§fn table_name(&self) -> Option<&str>
fn table_name(&self) -> Option<&str>
Group and reduce entities under the same filters as
list_filtered. Read morefn aggregate_filtered<'life0, 'life1, 'async_trait>(
&'life0 self,
spec: &'life1 AggregateSpec,
filters: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<AggregateResult, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn list_deleted<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_deleted<'life0, 'async_trait>(
&'life0 self,
page: u32,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<(Vec<IntegrationEvent>, u64), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List soft-deleted entities with pagination
Source§fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Count all entities (excluding soft-deleted)
Source§fn count_deleted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_deleted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Count soft-deleted entities
Source§fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<IntegrationEvent>,
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_create<'life0, 'async_trait>(
&'life0 self,
entities: Vec<IntegrationEvent>,
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Bulk create entities
Source§fn empty_trash<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn empty_trash<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Permanently delete all soft-deleted entities
Source§fn bulk_soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_soft_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Soft-delete many entities by id. Returns the number affected.
Source§fn bulk_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_restore<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Restore many soft-deleted entities by id. Returns the restored entities.
Source§fn bulk_hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bulk_hard_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<u64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Permanently delete many entities by id. Returns the number affected.
Source§fn restore_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn restore_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Restore every soft-deleted entity. Returns the restored entities.
Source§fn bulk_update<'life0, 'async_trait>(
&'life0 self,
entities: Vec<IntegrationEvent>,
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bulk_update<'life0, 'async_trait>(
&'life0 self,
entities: Vec<IntegrationEvent>,
) -> Pin<Box<dyn Future<Output = Result<Vec<IntegrationEvent>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update many entities atomically. Returns the updated entities.
Source§impl Debug for IntegrationEvent
impl Debug for IntegrationEvent
Source§impl<'de> Deserialize<'de> for IntegrationEvent
impl<'de> Deserialize<'de> for IntegrationEvent
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Entity for IntegrationEvent
impl Entity for IntegrationEvent
Source§impl EntityRepoMeta for IntegrationEvent
impl EntityRepoMeta for IntegrationEvent
Source§fn column_types() -> HashMap<String, String>
fn column_types() -> HashMap<String, String>
PostgreSQL type hints for filter/sort (e.g.
{"id": "uuid"}).Source§fn search_fields() -> &'static [&'static str]
fn search_fields() -> &'static [&'static str]
Text columns to include in full-text / ILIKE search.
Source§fn private_fields() -> &'static [&'static str]
fn private_fields() -> &'static [&'static str]
Response fields visible only to the row owner and platform/root callers
(
@private). Stripped for everyone else.Source§fn owner_field() -> Option<&'static str>
fn owner_field() -> Option<&'static str>
The response field (camelCase) holding the owner/company id (
@owner),
compared against the caller’s access scope to decide private-field
visibility. None = the entity has no owner concept.Source§impl From<&IntegrationEvent> for IntegrationEventResponseDto
impl From<&IntegrationEvent> for IntegrationEventResponseDto
Source§fn from(entity: &IntegrationEvent) -> Self
fn from(entity: &IntegrationEvent) -> Self
Converts to this type from the input type.
Source§impl From<CreateIntegrationEventDto> for IntegrationEvent
impl From<CreateIntegrationEventDto> for IntegrationEvent
Source§fn from(dto: CreateIntegrationEventDto) -> Self
fn from(dto: CreateIntegrationEventDto) -> Self
Converts to this type from the input type.
Source§impl From<IntegrationEvent> for IntegrationEventResponseDto
impl From<IntegrationEvent> for IntegrationEventResponseDto
Source§fn from(entity: IntegrationEvent) -> Self
fn from(entity: IntegrationEvent) -> Self
Converts to this type from the input type.
Source§impl From<IntegrationEvent> for IntegrationEventSummaryDto
impl From<IntegrationEvent> for IntegrationEventSummaryDto
Source§fn from(entity: IntegrationEvent) -> Self
fn from(entity: IntegrationEvent) -> Self
Converts to this type from the input type.
Source§impl FromCreateDto<CreateIntegrationEventDto> for IntegrationEvent
impl FromCreateDto<CreateIntegrationEventDto> for IntegrationEvent
fn from_create_dto(dto: CreateIntegrationEventDto) -> ServiceResult<Self>
Source§impl<'a, R: Row> FromRow<'a, R> for IntegrationEventwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
IntegrationStatus: Decode<'a, R::Database> + Type<R::Database>,
Option<String>: Decode<'a, R::Database> + Type<R::Database>,
Option<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
Json<AuditMetadata>: Decode<'a, R::Database> + Type<R::Database>,
impl<'a, R: Row> FromRow<'a, R> for IntegrationEventwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
IntegrationStatus: Decode<'a, R::Database> + Type<R::Database>,
Option<String>: Decode<'a, R::Database> + Type<R::Database>,
Option<Uuid>: Decode<'a, R::Database> + Type<R::Database>,
Json<AuditMetadata>: Decode<'a, R::Database> + Type<R::Database>,
Source§impl PersistentEntity for IntegrationEvent
impl PersistentEntity for IntegrationEvent
Source§fn set_entity_id(&mut self, id: String)
fn set_entity_id(&mut self, id: String)
Set the entity’s unique identifier
Source§fn set_created_at(&mut self, ts: DateTime<Utc>)
fn set_created_at(&mut self, ts: DateTime<Utc>)
Set creation timestamp
Source§fn set_updated_at(&mut self, ts: DateTime<Utc>)
fn set_updated_at(&mut self, ts: DateTime<Utc>)
Set last update timestamp
Source§fn is_deleted(&self) -> bool
fn is_deleted(&self) -> bool
Check if entity is soft-deleted
Source§fn mark_deleted(&mut self)
fn mark_deleted(&mut self)
Mark entity as deleted (soft delete)
Source§fn generate_id() -> String
fn generate_id() -> String
Generate a new ID for this entity type
Auto Trait Implementations§
impl Freeze for IntegrationEvent
impl RefUnwindSafe for IntegrationEvent
impl Send for IntegrationEvent
impl Sync for IntegrationEvent
impl Unpin for IntegrationEvent
impl UnsafeUnpin for IntegrationEvent
impl UnwindSafe for IntegrationEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more