async def delete_from_aggregates(self, aggregate_identifier: ResId): sql = f"delete from Aggregates where aggregateIdentifier = %s" return await self.do_upd_sql(sql, aggregate_identifier.id())
async def select_any_event(self, aggregate_identifier: ResId): sql = f"select eventIdentifier from MdbDomainEventEntry where aggregateIdentifier=%s LIMIT 1" return await self.do_sql(sql, [aggregate_identifier.id()])
async def select_aggregate(self, aggregate_identifier: ResId): sql = f"select * from Aggregates where aggregateIdentifier = %s" return await self.do_sql(sql, [aggregate_identifier.id()])
async def load_all_events(self, aggregate_identifier: ResId): return await self.do_sql( "select * from MdbDomainEventEntry where aggregateIdentifier=%s order by id", [aggregate_identifier.id()])
async def select_events(self, aggregate_identifier: ResId, limit=None): limits_str = f"LIMIT {limit}" if limit else "" sql = f"select * from MdbDomainEventEntry where aggregateIdentifier=%s order by id {limits_str}" return await self.do_sql(sql, [aggregate_identifier.id()])
async def load_events_of_type(self, aggregate_identifier: ResId, payload_type): return await self.do_sql( "select * from MdbDomainEventEntry where payloadType=%s and aggregateIdentifier=%s order by id", [payload_type, aggregate_identifier.id()])
async def delete_snapshot(self, aggregate_identifier: ResId): sql = "delete from MdbSnapshotEventEntry where aggregateIdentifier = %s;" return await self.do_sql(sql, [aggregate_identifier.id()])
async def delete_event_with_payload_like(self, agg_id: ResId, payload_type, payload_like): sql = """delete from MdbDomainEventEntry where aggregateIdentifier=%s and payloadType=%s AND payload like %s """ return await self.do_sql(sql, [agg_id.id(), payload_type, payload_like])
async def delete_aggregate(self, agg_id: ResId): sql = """delete from MdbDomainEventEntry where aggregateIdentifier=%s""" return await self.do_upd_sql(sql, [agg_id.id()])
async def delete_event(self, agg_id: ResId, payload_type, id_: int): # demand an unusual amount of information :) sql = """delete from MdbDomainEventEntry where aggregateIdentifier=%s and payloadType=%s AND id=%s""" return await self.do_sql(sql, [agg_id.id(), payload_type, id_])