using AsbCloudApp.Data.SAUB;
using Refit;

namespace AsbCloudWebApi.IntegrationTests.Clients;
public interface ITelemetryControllerClient
{
    private const string BaseRoute = "/api/telemetry";

    [Get($"{BaseRoute}/Active")]
    Task<IApiResponse> GetTelemetriesInfoByLastData(CancellationToken token);

    [Post($"{BaseRoute}/{{uid}}/info")]
    Task<IApiResponse> PostInfoAsync(string uid, [Body] TelemetryInfoDto info, CancellationToken token);

    [Post($"{BaseRoute}/{{uid}}/message")]
    Task<IApiResponse> PostMessagesAsync(string uid, [Body] IEnumerable<TelemetryMessageDto> dtos, CancellationToken token);

    [Post($"{BaseRoute}/{{uid}}/event")]
    Task<IApiResponse> PostEventsAsync(string uid, [Body] IEnumerable<EventDto> dtos, CancellationToken token);

    [Post($"{BaseRoute}/{{uid}}/user")]
    Task<IApiResponse> PostUsersAsync(string uid, [Body] IEnumerable<TelemetryUserDto> dtos, CancellationToken token);
}