package ogloszenia.klient_proxy;

import java.math.BigDecimal;
import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

import ogloszenia.model.ListaOgloszen;
import ogloszenia.model.Samochodowe;

// Po stronie klienta mam interfejs, który odpowiada klasie z implementacją na serwerze:
//  * te same metody z tymi samymi parametrami i wynikami
//  * zachowane wszystkie adnotacje REST

@Path("/ogloszenia")
@Produces({"application/json"})
@Consumes({"application/json"})
public interface IOgloszenia {
	@GET
	public ListaOgloszen odczytajWszystkie();

	@GET
	@Path("/{id}")
	public Samochodowe odczytajJedno(@PathParam("id") int idOgloszenia);
	
	@GET
	@Path("/{id}/sprzedawca")
	public Response sprzwedawcaDlaOgloszenia(@PathParam("id") int idOgloszenia);

	@GET
	@Path("/{id}/foto")
	@Produces("image/jpeg")
	public byte[] foto(@PathParam("id") int idOgloszenia);
	
	@GET
	@Path("/{id}/cena")
	@Produces("text/plain")
	public BigDecimal odczytajCena(@PathParam("id") int idOgloszenia);

	@PUT
	@Path("/{id}/cena")
	@Consumes("text/plain")
	public void zapiszCena(@PathParam("id") int idOgloszenia, BigDecimal nowaCena);
	
	@POST
	public Response zapiszRekord(Samochodowe ogl);
	
	@DELETE
	@Path("/{id}")
	public void usunRekord(@PathParam("id") int idOgloszenia);
	
}
