package cokr.xit.fims.nxrp.web;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cokr.xit.fims.nxrp.NisIndivQuery;
import cokr.xit.fims.nxrp.service.NisIndivService;
import cokr.xit.fims.task.Task;
import cokr.xit.foundation.web.AbstractController;

/**세외수입 매칭 내역 서비스의 웹 컨트롤러
*
* <p>상세 설명:
*
* <pre>
* ============ 변경 이력 ============
* 2023-11-16	JoJH 최초 작성
* ================================
* </pre>
*/
@Controller
@RequestMapping(name="차세대 세외수입 연계", value=Nxrp01Controller.CLASS_URL)
public class Nxrp01Controller extends AbstractController {

	public static final String CLASS_URL = "/nxrp/nxrp01";

	public class METHOD_URL {
		public static final String
			  createIndividualA01		= "/010/createIndivA01.do"		// 과태료 대장 단속 정보 등록(실시간)
			, updateIndividualA02		= "/010/updateIndivA02.do"		// 과태료 대장 등록 자료 일괄 조회(전일자 변동자료)
			, updateIndividualA03		= "/010/updateIndivA03.do"		// 과태료 대장 등록 자료 상세 조회(실시간)
			, createIndividualB01		= "/010/createIndivB01.do"      // 주정차과태료 대장 단속 정보 등록
			, createIndividualC01		= "/010/createIndivC01.do"      // 전용차로과태료 대장 단속 정보 등록
		;
	}

	/**세외수입 매칭 내역 서비스*/
	@Resource(name = "nisIndivService")
	private NisIndivService nisIndivService;

	/**과태료 대장 단속 정보 등록를 등록한다.
	 * @param nisIndivA01 과태료 대장 단속 정보 등록 정보
	 * @return jsonView
	 * <pre><code> {
	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
	 * }</code></pre>
	 */
	@Task({"ECA","DPV","PES","DVS"})
	@RequestMapping(name="차세대 세외수입 과태료 대장 단속 정보 등록", value=METHOD_URL.createIndividualA01)
	public ModelAndView createIndividualA01(NisIndivQuery req) {
		String rtnMsg = nisIndivService.createNisIndivA01(req);

		return new ModelAndView("jsonView")
			.addObject("saved", rtnMsg.contains("[S]"))
			.addObject("rtnMsg", rtnMsg);
	}

	/**주정차 과태료 대장 단속 정보 등록를 등록한다.
     * @param nisIndivB01 주정차 과태료 대장 단속 정보 등록 정보
     * @return jsonView
     * <pre><code> {
     *     "saved": 등록되었으면 true, 그렇지 않으면 false
     * }</code></pre>
     */
    @Task("PVS")
    @RequestMapping(name="차세대 세외수입 주정차 과태료 대장 단속 정보 등록", value=METHOD_URL.createIndividualB01)
    public ModelAndView createIndividualB01(NisIndivQuery req) {
        String rtnMsg = nisIndivService.createNisIndivB01(req);

        return new ModelAndView("jsonView")
            .addObject("saved", rtnMsg.contains("[S]"))
            .addObject("rtnMsg", rtnMsg);
    }

    /**전용차로 과태료 대장 단속 정보 등록를 등록한다.
     * @param nisIndivC01 전용차로 과태료 대장 단속 정보 등록 정보
     * @return jsonView
     * <pre><code> {
     *     "saved": 등록되었으면 true, 그렇지 않으면 false
     * }</code></pre>
     */
    @Task("BPV")
    @RequestMapping(name="차세대 세외수입 전용차로 과태료 대장 단속 정보 등록", value=METHOD_URL.createIndividualC01)
    public ModelAndView createIndividualC01(NisIndivQuery req) {
        String rtnMsg = nisIndivService.createNisIndivC01(req);

        return new ModelAndView("jsonView")
            .addObject("saved", rtnMsg.contains("[S]"))
            .addObject("rtnMsg", rtnMsg);
    }
}