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

import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.inventario.InsertInventarioRequestDTO;
import it.integry.integrywmsnative.core.rest.model.inventario.RetrieveInventariResponseDTO;
import it.integry.integrywmsnative.core.rest.model.inventario.RetrieveInventarioArtsResponseDTO;
import it.integry.integrywmsnative.core.rest.model.inventario.RetrieveInventarioResponseDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;

public interface InventarioRESTConsumerService {

    @GET("wms/inventario/")
    Call<ServiceRESTResponse<RetrieveInventariResponseDTO>> retrieve();

    @GET("wms/inventario/{inventoryId}")
    Call<ServiceRESTResponse<RetrieveInventarioResponseDTO>> retrieve(
            @Path("inventoryId") long inventoryId);

    @POST("wms/inventario/{inventoryId}")
    Call<ServiceRESTResponse<Void>> insert(
            @Path("inventoryId") long inventoryId,
            @Body InsertInventarioRequestDTO insertInventarioRequestDTO);

    @GET("wms/inventario/{inventoryId}/arts")
    Call<ServiceRESTResponse<RetrieveInventarioArtsResponseDTO>> retrieveArts(
            @Path("inventoryId") long inventoryId);
}
