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(name = "saic-docs-service", contextId = "plantilla-controller")
public interface PlantillaClient {

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

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

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

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

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

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

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

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

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