package pwc.taxtech.atms.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
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 pwc.taxtech.atms.dpo.TaxRuleSettingDto;
import pwc.taxtech.atms.dto.BatchUpdateTaxRuleDto;
import pwc.taxtech.atms.dto.TaxPayerReportRuleDto;
import pwc.taxtech.atms.service.impl.RuleEngineeConfigServiceImpl;

import java.util.List;

@RestController
@RequestMapping("/api/v1/ruleEngineeConfig/")
public class RuleEngineeConfigController {
    private static Logger logger = LoggerFactory.getLogger(RuleEngineeConfigController.class);

    @Autowired
    RuleEngineeConfigServiceImpl 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,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public void saveTaxRuleSettings(@RequestBody BatchUpdateTaxRuleDto batchUpdateTaxRule) {
        logger.debug("RuleEngineeConfigController SaveTaxRuleSettings");
        ruleEngineeConfigService.savetaxrulesettings(batchUpdateTaxRule);
    }

}