package com.ecep.contract.ds.other.controller;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.ecep.contract.cloud.tyc.CloudTycService;
import com.ecep.contract.model.CloudTyc;

@RestController
@RequestMapping("/cloudTyc")
public class CloudTycController {
    @Autowired
    private CloudTycService cloudTycService;

    @RequestMapping("/findById")
    public CloudTyc findById(Integer id) {
        return cloudTycService.findById(id);
    }

    @RequestMapping("/list")
    public Page<CloudTyc> list(
            Map<String, Object> params,
            @RequestParam(defaultValue = "0", name = "page") int pageNumber,
            @RequestParam(defaultValue = "10", name = "size") int pageSize) {
        Specification<CloudTyc> spec = null;
        Sort sort = Sort.by(Sort.Order.desc("id"));
        Pageable pageable = PageRequest.of(pageNumber, pageSize, sort);
        return cloudTycService.findAll(spec, pageable);
    }

    @RequestMapping("/save")
    public CloudTyc save(CloudTyc cloudTyc) {
        return cloudTycService.save(cloudTyc);
    }

    @RequestMapping("/delete")
    public void delete(Integer id) {
        CloudTyc cloudTyc = cloudTycService.findById(id);
        cloudTycService.delete(cloudTyc);
    }
}