package it.integry.integrywmsnative.core.REST.consumers;

import java.util.List;

import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.MailRequestDTO;
import it.integry.integrywmsnative.core.REST.model.NativeSqlRequestDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface SystemRESTConsumerService {

    @POST("processSql")
    Call<ServiceRESTResponse<Object>> processSql(@Body NativeSqlRequestDTO nativeSqlDTO);

    @GET("getAvailableProfiles")
    Call<ServiceRESTResponse<List<String>>> getAvailableProfiles(@Query("username") String username, @Query("password") String password);

    @GET("getAvailableCodMdepsForUser")
    Call<ServiceRESTResponse<List<AvailableCodMdepsDTO>>> getAvailableCodMdeps();

    @POST("sendEmail")
    Call<ServiceRESTResponse<String>> sendMail(@Body MailRequestDTO mailDto);

}
