package pwc.taxtech.atms.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import io.swagger.annotations.ApiOperation;
import pwc.taxtech.atms.dto.VMRegionDevTreeData;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
import pwc.taxtech.atms.dto.navtree.IvhTreeDto;
import pwc.taxtech.atms.entitiy.Region;
import pwc.taxtech.atms.service.RegionService;

@RestController
@RequestMapping("/api/v1/region")
public class RegionController {

	@Autowired
	private RegionService regionService;
	
    @ApiOperation(value = "getSettingRegionTree", notes = "生成区域及省市树形结构")
    @RequestMapping(value = { "/getSettingRegionTree" }, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ResponseBody
    public List<DevTreeDto<VMRegionDevTreeData>> getSettingRegionTree() {
    	return regionService.getRegionAreaTree();
    }
    
    
    @ApiOperation(value = "getProvinceAndCityTreeList", notes = "生成省市树形结构")
    @RequestMapping(value = { "/getProvinceAndCityTreeList" }, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ResponseBody
    public List<DevTreeDto<IvhTreeDto<Region>>> getProvinceAndCityTreeList() {
    	return regionService.getProvinceAndCityTreeList();
    }
    
    @SuppressWarnings("rawtypes")
    @ApiOperation(value = "根据分区获取分区和行政区域树", notes = "机构管理/卡片/区域/点击区域编辑按钮")
    @RequestMapping(value = "getAreRegionTreeByNodeID", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<DevTreeDto> getAreRegionTreeByNodeID(@RequestParam("areaID") String areaID) {
        return regionService.getAreaRegionTreeByNodeID(areaID);
    }
}