namespace Hc900Crawler.Core.Application.Feedforward;

/// <summary>
/// 스트림/피드의 flow 태그(예: FICQ-6118, ficq-6118.pv)에서
/// 루프 Working Set Point 태그(.SP, register-map RW)를 파생한다.
/// override 태그가 주어지면 그것을 우선(선택적 수동 지정).
/// </summary>
public static class FfSpTag
{
    public static string? Resolve(string? baseTag, string? overrideTag = null)
    {
        if (!string.IsNullOrWhiteSpace(overrideTag)) return overrideTag.Trim().ToUpperInvariant();
        if (string.IsNullOrWhiteSpace(baseTag)) return null;

        var t = baseTag.Trim();
        if (t.EndsWith(".pv", StringComparison.OrdinalIgnoreCase)) t = t[..^3];
        if (t.EndsWith(".sp", StringComparison.OrdinalIgnoreCase)) return t.ToUpperInvariant();
        return (t + ".SP").ToUpperInvariant();
    }
}
