package br.com.codetec.saudesabor.service;

import br.com.codetec.saudesabor.model.FavoritoResponse;
import br.com.codetec.saudesabor.model.ProdutoResponse;
import br.com.codetec.saudesabor.model.ResponseCodeTec;
import br.com.codetec.saudesabor.model.ResponseBairros;
import br.com.codetec.saudesabor.model.ResponseCEP;
import br.com.codetec.saudesabor.model.ResponseCadastro;
import br.com.codetec.saudesabor.model.ResponseCategoria;
import br.com.codetec.saudesabor.model.ResponseCidades;
import br.com.codetec.saudesabor.model.ResponseDashboard;
import br.com.codetec.saudesabor.model.ResponseEnderecos;
import br.com.codetec.saudesabor.model.ResponseEstados;
import br.com.codetec.saudesabor.model.ResponseFormasEnvio;
import br.com.codetec.saudesabor.model.ResponseFormasPagamento;
import br.com.codetec.saudesabor.model.ResponseLogin;
import br.com.codetec.saudesabor.model.RespostaRegistraVenda;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;

public interface SaudeSaborService {

    @POST("ws_login.php")
    Call<ResponseLogin> login(@Header("login") String login, @Header("senha") String senha);

    @POST("ws_cep.php")
    Call<ResponseCEP> consultarCep(@Header("LOCALE") String locale, @Header("CEP") String cep);

    @POST("ws_estados.php")
    Call<ResponseEstados> consultarEstados(@Header("LOCALE") String locale);

    @POST("ws_listar_enderecos.php")
    Call<ResponseEnderecos> listarEnderecosUsuario(@Header("TOKEN") String token);

    @FormUrlEncoded
    @POST("ws_bairros.php")
    Call<ResponseBairros> consultarBairros(@Field("LOCALE") String locale, @Field("CIDADE") String cidade);

    @FormUrlEncoded
    @POST("ws_cidades.php")
    Call<ResponseCidades> consultarCidades(@Field("LOCALE") String locale, @Field("ESTADO") String estado);

    @GET("ws_dashboard.php")
    Call<ResponseDashboard> dashboard(@Header("TOKEN") String token);

    @FormUrlEncoded
    @POST("ws_cadastrar_usuario.php")
    Call<ResponseCadastro> cadastrarUsuario(@Field("v_locale") String locale,
                                            @Field("v_firstname") String v_firstname,
                                            @Field("v_lastname") String v_lastname,
                                            @Field("v_email") String v_email,
                                            @Field("v_telephone") String v_telephone,
                                            @Field("v_password") String v_password,
                                            @Field("v_ip") String v_ip,
                                            @Field("v_address1") String v_address1,
                                            @Field("v_address2") String v_address2,
                                            @Field("v_city") String v_city,
                                            @Field("v_zipcode") String v_zipcode,
                                            @Field("v_zone_id") String v_zone_id,
                                            @Field("v_photo") String foto,
                                            @Field("v_customer_id") String idUsuario
    );

    @FormUrlEncoded
    @POST("ws_adicionar_endereco.php")
    Call<ResponseCadastro> cadastrarEndereco(@Field("v_customer_id") String idUsuario,
                                            @Field("v_locale") String locale,
                                            @Field("v_firstname") String v_firstname,
                                            @Field("v_lastname") String v_lastname,
                                            @Field("v_address1") String v_address1,
                                            @Field("v_address2") String v_address2,
                                            @Field("v_city") String v_city,
                                            @Field("v_zipcode") String v_zipcode,
                                            @Field("v_zone_id") String v_zone_id,
                                             @Field("v_email") String v_email,
                                             @Field("v_telephone") String v_telephone,
                                             @Field("v_password") String v_password,
                                             @Field("v_padrao") String enderecoPadrao);

    @FormUrlEncoded
    @POST("ws_categorias.php")
    Call<ResponseCategoria> categorias(@Field("LOCALE") String locale);

    @FormUrlEncoded
    @POST("ws_formas_envio.php")
    Call<ResponseFormasEnvio> listaFormasEnvio(@Field("LOCALE") String locale);

    @FormUrlEncoded
    @POST("ws_formas_pagamento.php")
    Call<ResponseFormasPagamento> listaFormasPagamento(@Field("LOCALE") String locale);

    @FormUrlEncoded
    @POST("ws_produtos.php")
    Call<ProdutoResponse> produtos(@Field("LOCALE") String locale, @Field("CATEGORY_ID") String categoriaId);

    @FormUrlEncoded
    @POST("ws_listar_compras.php")
    Call<ProdutoResponse> listarHistoricoCompras(@Field("LOCALE") String locale, @Field("TOKEN") String token);

    @FormUrlEncoded
    @POST("ws_listar_favoritos.php")
    Call<FavoritoResponse> listarFavoritos(@Field("LOCALE") String locale, @Field("TOKEN") String token);

    @FormUrlEncoded
    @POST("ws_favoritar_produtos.php")
    Call<ResponseCodeTec> favoritarDesfavoritarProduto(@Field("PRODUCT_ID") String idProduto, @Field("TOKEN") String token);

    @FormUrlEncoded
    @POST("ws_registra_venda.php")
    Call<RespostaRegistraVenda> registraVenda(@Field("dados") String dados);


    @FormUrlEncoded
    @POST("ws_check_venda.php")
    Call<RespostaRegistraVenda> checkVenda(@Field("dados") String dados);

}