package com.hesiii.i_hear.API;


import com.hesiii.i_hear.ResponseModels.ClassificationResponse;
import com.hesiii.i_hear.ResponseModels.PronunciationAccuracyResponse;
import com.hesiii.i_hear.ResponseModels.SignResponse;
import com.hesiii.i_hear.ResponseModels.SummarizationResponse;

import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;

public interface ApiServices {

    // Multipart
    // @POST("your/upload/endpoint")
    // Call<ClassificationResponse> uploadAudio(@Part MultipartBody.Part file);

//    @Multipart
//    @POST("/api/v1.0/classify-sound")
//    Call<ClassificationResponse> uploadAudio(@Part("audio") RequestBody file);

    // noise sounddetect
    @Multipart
    @POST("/noise")
    Call<ClassificationResponse>uploadAudio(@Part MultipartBody.Part audio);

    @Headers("Accept: application/json")
    @FormUrlEncoded
    @POST("/v1/summerize")
    Call<SummarizationResponse> getSummarization(@Field("paragraph") String paragraph);

    @Headers("Accept: application/json")
    @Multipart
    @POST("/v1/pronouncationaccuracy")
    Call<PronunciationAccuracyResponse> getPronunciationAccuracy(
            @Part("element") String element,
            @Part MultipartBody.Part audio
    );

    @Multipart
    @POST("/v1/sign")
    Call<SignResponse> getSignResult(
            @Part("sign") String sign,
            @Part MultipartBody.Part image_path
    );

//    @Multipart
//    @POST("/api/v1.0/pronounciation")
//    Call<PronounciationResponse> getPronounciation(
//            @Part MultipartBody.Part audio,
//            @Part("word") RequestBody word
//    );

}
