using GB5Shared.DTO.Framework.Login; namespace AccountsBLL.Warehouse { public interface IWarehouseChangeQueueBLL { // Called by WarehouseChangeSubscriber after a voucher-saved Dapr event arrives. // Finds all delta-enabled facts and enqueues one row per fact for this OU + date. Task EnqueueVoucherChangeAsync(int ouId, DateTime voucherDate, LoginDTO login, CancellationToken ct); // Called by PostWarehouseDelta endpoint / Quartz job. // Drains the queue for the given factId, then calls PostFactAsync with the claimed OUs + dates. Task ProcessDeltaForFactAsync(int factId, LoginDTO login, CancellationToken ct); } }