feat: add WorkProcessor interfaces and options

- ISearchNotificationService: SignalR notification abstraction in Core
- WorkProcessorOptions: configuration for work processor behavior
- ISearchRepository: Search table operations contract
- ISearchExecutionService: search pipeline orchestration contract
This commit is contained in:
Joseph Doherty
2026-01-07 06:06:12 -05:00
parent 488aef560b
commit 14799b62dc
4 changed files with 118 additions and 0 deletions
@@ -0,0 +1,24 @@
using JdeScoping.Core.Models.Search;
namespace JdeScoping.Core.Interfaces;
/// <summary>
/// Interface for SignalR notifications - lives in Core to avoid dependency issues.
/// Implementation lives in Host/Api layer.
/// </summary>
public interface ISearchNotificationService
{
/// <summary>
/// Notifies clients of search status update.
/// </summary>
/// <param name="search">The search with updated status.</param>
/// <param name="ct">Cancellation token.</param>
Task NotifySearchUpdateAsync(Search search, CancellationToken ct = default);
/// <summary>
/// Notifies clients of work processor status change.
/// </summary>
/// <param name="status">Status message.</param>
/// <param name="ct">Cancellation token.</param>
Task NotifyStatusAsync(string status, CancellationToken ct = default);
}