package es.uv.saic.feign;

import java.util.List;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import es.uv.saic.domain.Plantilla;
import es.uv.saic.dto.PdfDTO;
import es.uv.saic.dto.TemplateDataDTO;

@FeignClient(value = "plantilla-controller", url = "${saic.url.docs.domain}")
public interface PlantillaClient {

    //Se usa
    @GetMapping("/plantilla")
    List<Plantilla> findAll();

    //Se usa
    @GetMapping("/plantilla/{id}")
    Plantilla findByID(@PathVariable("id") Integer id);

    @GetMapping("/plantilla/{versio}/{codi}/{ambit}")
    Plantilla findByVersioCodiAmbit(@PathVariable("versio") Integer versio, @PathVariable("codi") String codi, @PathVariable("ambit") String ambit);

    @PostMapping("/plantilla/save")
    String save(@RequestBody Plantilla plantilla);

    @DeleteMapping("/plantilla/delete")
    String delete(@RequestBody Plantilla plantilla);

    @GetMapping("/plantilla/used/{id}")
    Boolean isUsed(@PathVariable("id") Integer id);

    @PostMapping("/addTemplateData")
    String addTemplateData(@RequestBody TemplateDataDTO td);

    //Se usa
    @PostMapping("/addTemplateData2")
    String addTemplateData2(@RequestBody TemplateDataDTO td);

    @PostMapping("/savePDF")
    String savePDF(@RequestBody PdfDTO pdf);
}
