package cokr.xit.fims.epst.web;

import javax.annotation.Resource;

import org.springframework.web.servlet.ModelAndView;

import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.epst.EpostRcptReg;
import cokr.xit.fims.epst.service.EpostRcptRegService;

/**전자우편 접수 등록 서비스의 웹 컨트롤러
*
* <p>상세 설명:
*
* <pre>
* ============ 변경 이력 ============
* 2023-10-11	JoJH 최초 작성
* ================================
* </pre>
*/
public class Epst01Controller extends ApplicationController {

	public static final String CLASS_URL = "/epst/epst01";

	public class METHOD_URL {
		public static final String
			  createEpostReceiptRegistration	= "/010/create.do"		// 전자우편 접수 정보 등록
			, updateEpostReceiptRegistration	= "/010/update.do"		// 전자우편 접수 정보 수정
			, removeEpostReceiptRegistration	= "/010/remove.do"		// 전자우편 접수 정보 삭제
		;
	}

	/**전자우편 접수 등록 서비스*/
	@Resource(name="epostRcptRegService")
	private EpostRcptRegService epostRcptRegService;

	/**전자우편 접수 등록를 등록한다.
	 * @param epostRcptReg 전자우편 접수 등록 정보
	 * @return jsonView
	 * <pre><code> {
	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
	 * }</code></pre>
	 */
	public ModelAndView createEpostReceiptRegistration(EpostRcptReg epostRcptReg) {
		boolean saved = epostRcptRegService.create(epostRcptReg);
		return new ModelAndView("jsonView")
			.addObject("saved", saved);
	}

	/**전자우편 접수 등록 정보를 수정한다.
	 * @param epostRcptReg 전자우편 접수 등록 정보
	 * @return jsonView
	 * <pre><code> {
	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
	 * }</code></pre>
	 */
	public ModelAndView updateEpostReceiptRegistration(EpostRcptReg epostRcptReg) {
		boolean saved = epostRcptRegService.update(epostRcptReg);
		return new ModelAndView("jsonView")
			.addObject("saved", saved);
	}

	/**지정한 전자우편 접수 등록를 제거한다.
	 * @param epostRcptRegIds 전자우편 접수 등록 아이디
	 * @return jsonView
	 * <pre><code> {
	 *     "affected": 저장된 정보수
	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
	 * }</code></pre>
	 */
	public ModelAndView removeEpostReceiptRegistration(EpostRcptReg epostRcptReg) {
		String rtnMsg = epostRcptRegService.remove(epostRcptReg);

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