using Predictalytics.Domain.Entities;
using Predictalytics.Domain.ValueObjects;

namespace Predictalytics.Application.Interfaces;

public interface IScoringService
{
    /// <summary>Calculate and update priority score for a single trader.</summary>
    Task<PriorityScore> CalculateScoreAsync(int traderId, CancellationToken ct = default);

    /// <summary>Recalculate scores for all tracked traders.</summary>
    Task RecalculateAllScoresAsync(CancellationToken ct = default);

    /// <summary>Set a manual priority override for a trader.</summary>
    Task SetManualOverrideAsync(int traderId, int? score, CancellationToken ct = default);
}
