using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using GB5Shared.ScanIdentifier; namespace WiBLL.ScanIdentifier; // Thin WI-owned facade over GB5Shared's generic ScanIdentifierEngine/IScanTargetResolverDispatcher, // so WiSL keeps going through a WI BLL (per CLAUDE.md's SL -> BLL -> DAL rule) even though the // actual engine/dispatcher logic is shared, not WI-specific. public interface IWiScanIdentifierBLL { IEnumerable GetRegisteredEntityTypes(); Task> SearchTargetAsync(string entityType, string? term, LoginDTO login, CancellationToken ct); Task GenerateAsync(GenerateScanIdentifierRequestDTO request, LoginDTO login, CancellationToken ct); Task GetEffectiveConfigAsync(string entityType, LoginDTO login, CancellationToken ct); Task GetByValueAsync(string identifierValue, LoginDTO login, CancellationToken ct); Task> GetListPagedAsync( string entityType, int statusFilter, string searchTerm, DateTime generatedFrom, int page, int pageSize, LoginDTO login, CancellationToken ct); Task RetireAsync(int scanIdentifierId, LoginDTO login, CancellationToken ct); Task ReactivateAsync(int scanIdentifierId, LoginDTO login, CancellationToken ct); Task MarkPrintedAsync(int scanIdentifierId, LoginDTO login, CancellationToken ct); Task> GetPrinterTypesAsync(LoginDTO login, CancellationToken ct); Task> GetLabelTypesAsync(LoginDTO login, CancellationToken ct); Task PrintBatchAsync(PrintBatchRequestDTO request, LoginDTO login, CancellationToken ct); }