package pwc.taxtech.atms.controller;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import io.swagger.annotations.ApiOperation;
import pwc.taxtech.atms.dto.BatchUpdateTaxRuleDto;
import pwc.taxtech.atms.dto.TaxPayerReportRuleDto;
import pwc.taxtech.atms.dto.TaxRuleSettingDto;
import pwc.taxtech.atms.dto.navtree.NavTreeDto;
import pwc.taxtech.atms.service.RuleEngineeConfigService;

/** @see PwC.Tax.Tech.Atms.WebApi\Controllers\RuleEngineeConfigController.cs */
@RestController
@RequestMapping("/api/v1/ruleEngineeConfig/")
public class RuleEngineeConfigController {
    private static Logger logger = LoggerFactory.getLogger(RuleEngineeConfigController.class);
    
    @Autowired
    RuleEngineeConfigService ruleEngineeConfigService;
    
    @ApiOperation(value = "Get TaxPayerReportMapping", notes = "Return TaxPayerReportMapping")
    @RequestMapping(value = "taxPayerReportMapping", method = RequestMethod.GET)
    public @ResponseBody List<TaxPayerReportRuleDto> getTaxPayerReportMapping() {
        logger.debug("RuleEngineeConfigController GetTaxPayerReportMapping");
        return ruleEngineeConfigService.getTaxPayerReportMapping();
    }
    
    @ApiOperation(value="Get TaxRuleSetting",notes="Return TaxRuleSetting")
    @RequestMapping(value="taxRuleSetting",method= RequestMethod.GET)
    public @ResponseBody List<TaxRuleSettingDto> getTaxRuleSetting()
    {
    	logger.debug("RuleEngineeConfigController GetTaxRuleSetting");
    	return ruleEngineeConfigService.getTaxRuleSetting();
    }
    
    @ApiOperation(value="",notes="saveTaxRuleSettings")
    @RequestMapping(value="taxRuleSetting/Save",method = RequestMethod.POST)
    public void saveTaxRuleSettings(@RequestBody BatchUpdateTaxRuleDto batchUpdateTaxRule) {
    	logger.debug("RuleEngineeConfigController SaveTaxRuleSettings");
    	ruleEngineeConfigService.savetaxrulesettings(batchUpdateTaxRule);
    }
	
}