group PersistentBusSqlDao;
CHECK_TENANT() ::= "tenant_record_id = :tenantRecordId"
AND_CHECK_TENANT() ::= "AND <CHECK_TENANT()>"
getNextBusEventEntry() ::= <<
select
record_id
, class_name
, event_json
, created_date
, creating_owner
, processing_owner
, processing_available_date
, processing_state
, account_record_id
, tenant_record_id
from bus_events
where
processing_state != 'PROCESSED'
and processing_state != 'REMOVED'
and (processing_owner IS NULL OR processing_available_date \<= :now)
order by
record_id asc
limit :max
;
>>
claimBusEvent() ::= <<
update bus_events
set
processing_owner = :owner
, processing_available_date = :nextAvailable
, processing_state = 'IN_PROCESSING'
where
record_id = :recordId
and processing_state != 'PROCESSED'
and processing_state != 'REMOVED'
and (processing_owner IS NULL OR processing_available_date \<= :now)
;
>>
clearBusEvent() ::= <<
update bus_events
set
processing_state = 'PROCESSED'
where
record_id = :recordId
;
>>
removeBusEventsById() ::= <<
update bus_events
set
processing_state = 'REMOVED'
where
record_id = :recordId
;
>>
insertBusEvent() ::= <<
insert into bus_events (
class_name
, event_json
, created_date
, creating_owner
, processing_owner
, processing_available_date
, processing_state
, account_record_id
, tenant_record_id
) values (
:className
, :eventJson
, :createdDate
, :creatingOwner
, :processingOwner
, :processingAvailableDate
, :processingState
, :accountRecordId
, :tenantRecordId
);
>>
insertClaimedHistory() ::= <<
insert into claimed_bus_events (
owner_id
, claimed_date
, bus_event_id
, account_record_id
, tenant_record_id
) values (
:ownerId
, :claimedDate
, :busEventId
, :accountRecordId
, :tenantRecordId
);
>>