package nlib.col.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import nlib.util.StringUtil;

/**
 * <pre>
 * @Class Name : CartCookieVO.java
 * 
 * @Description : 비로그인 회원의 카트정보를 담는 쿠키 정보값 
 * 
 * 
 * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
 *
 * </pre>
 *
 * @ ------------    --------    ---------------------------
 * @ 수정일                     수정자             수정내용
 * @ ------------    --------    ---------------------------
 * @ 2021. 10. 13.    KNKIM       최초 생성
 *
 * 
 * @author 이씨플라자 * DIGITALSHIP KNKIM
 * @since 2021. 10. 13.
 * @version 1.0
 *
 */
public class CartCookieVO {

	String rentValues = null;    /* 대출 목록으로 ":"로 구분되어 짐 */
	String readValues = null;    /* 방문열람 목록으로 ":"로 구분되어 짐 */
	
	/**
	 * 쿠키 카트값에 자료 항목을 추가한다. 
	 * 
	 * @param cartTypeCd
	 * @param masterId
	 * @return
	 */
	public String addCartItem(String cartTypeCd, String masterId) {

		if(StringUtil.isEmpty(cartTypeCd)) return "카트구분 정보가 없습니다.";
		if(StringUtil.isEmpty(masterId)) return "자료정보가 없습니다.";
		
		String cartStr = null;
		
		if("1".equals(cartTypeCd)) cartStr = getRentValues();
		else if("2".equals(cartTypeCd)) cartStr = getReadValues();
		else return "카트구분 정보가 적합하지 않습니다.";
		
		cartStr = (StringUtil.isEmpty(cartStr) ? ":" : cartStr);
		if(cartStr.contains(":" + masterId + ":")) return "이미 카트에 존재합니다.";
		
		cartStr += (":" + masterId + ":");
		
		if("1".equals(cartTypeCd)) setRentValues(cartStr);
		else if("2".equals(cartTypeCd)) setReadValues(cartStr);
		
		return null;
	}

	/**
	 * 쿠키 카트값에서 자료 항목을 삭제한다.
	 *  
	 * @param cartTypeCd
	 * @param masterId
	 * @return
	 */
	public String removeCartItem(String cartTypeCd, String masterId) {
	
		if(StringUtil.isEmpty(cartTypeCd)) return "카트구분 정보가 없습니다.";
		if(StringUtil.isEmpty(masterId)) return "자료정보가 없습니다.";

		String cartStr = null;
		
		if("1".equals(cartTypeCd)) cartStr = getRentValues();
		else if("2".equals(cartTypeCd)) cartStr = getReadValues();
		else return "카트구분 정보가 적합하지 않습니다.";
		

		cartStr = (StringUtil.isEmpty(cartStr) ? ":" : cartStr);
		if(StringUtil.isEmpty(cartStr) || !cartStr.contains(":" + masterId + ":")) return "해당 자료는 카트에 존재하지 않습니다.";
		
		int startIdx = cartStr.indexOf(":" + masterId + ":");
		if(startIdx < 0) return "해당 자료는 카트에 존재하지 않습니다.";
		
		int endIdx = startIdx + (":" + masterId).length();
		
		cartStr = cartStr.substring(0, startIdx) + cartStr.substring(endIdx);

		if("1".equals(cartTypeCd)) setRentValues(cartStr);
		else if("2".equals(cartTypeCd)) setReadValues(cartStr);
		
		return null;
	}
	
	// GET & SET 
	public String getRentValues() {
		return rentValues;
	}
	public void setRentValues(String rentValues) {
		this.rentValues = rentValues;
	}
	public String getReadValues() {
		return readValues;
	}
	public void setReadValues(String readValues) {
		this.readValues = readValues;
	}
	
}
