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

import java.util.List;

import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
import it.integry.integrywmsnative.core.rest.model.ReportTypeDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface PrinterRESTConsumerService {

    @POST("getAvailablePrinters")
    Call<ServiceRESTResponse<List<String>>> getAvailablePrinters(@Query("codMdep") String codMdep);

    @POST("getAvailablePrinters")
    Call<ServiceRESTResponse<List<String>>> getAvailablePrinters(@Query("codMdep") String codMdep, @Query("printerType") String printerType);


    @POST("processPrintReport")
    Call<ServiceRESTResponse<Object>> processPrintReport(
            @Query("printerName") String printerName,
            @Query("numberOfCopies") int printQuantity,
            @Body JasperDTO jasperDTO
    );

    @POST("printReportType")
    Call<ServiceRESTResponse<Object>> printReportType(
            @Body ReportTypeDTO reportTypeDTO
    );

    @POST("wms/printEtichettaSSCC")
    Call<ServiceRESTResponse<Object>> printCollo(
            @Body MtbColt mtbColtToPrint
    );

    @POST("wms/printClosedOrders")
    Call<ServiceRESTResponse<Object>> printClosedOrders(
            @Query("codMdep") String codMdep,
            @Body PrintOrderCloseDTO printOrderCloseDTO
    );

}
