namespace OI.Metrology.Shared.Models.Stateless;

public interface IInfinityQSV4Controller<T>
{

    enum Action : int
    {
        Index = 0,
        MarkAsPinned = 1
    }

    static string GetRouteName() => nameof(IInfinityQSV4Controller<T>)[1..^12];
    static string GetRouteVersion() => nameof(IInfinityQSV4Controller<T>)[1..^10][^2..];
    
    T GetData(string sub_group_id);
    T GetHeader(string sub_group_id);
    T GetDescriptors(string sub_group_id);
    T GetEpiProTempVerification(int[] night);
    T GetEpiProTempVerificationRows(int[] night);
    T GetLastGroupIdWithValue(string process, string? part, int? test);
    T GetProductDataAverageSumOfDefectsProcessMeanProcessSigma(string process, string? recipe);
    T GetCommandText(string sub_group_id, string process, string job, string part, string lot, string date_time);

}