package nlib.restful.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import nlib.util.StringUtil;

/**
 * <pre>
 * @Class Name : DataApiResVO.java
 * 
 * @Description : RESTful API 응답 VO
 * 
 * 
 * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
 *
 * </pre>
 *
 * @ ------------    --------    ---------------------------
 * @ 수정일                     수정자             수정내용
 * @ ------------    --------    ---------------------------
 * @ 2021. 6. 22.    KNKIM       최초 생성
 *
 * 
 * @author 이씨플라자 * DIGITALSHIP KNKIM
 * @since 2021. 6. 22.
 * @version 1.0
 *
 */
public class DataApiResVO {
	
	/**
	 * 생성자 
	 */
	public DataApiResVO() {
		super();
	}

	/**
	 * 생성자 
	 * 
	 * @param resultCode
	 * @param resultMessage
	 */
	public DataApiResVO(String resultCode, String resultMessage) {
		this.resultCode = resultCode;
		this.resultMessage = resultMessage;
	}
	

    /* 처리결과 */
    String	resultCode;							/* 결과코드 */
    String	resultMessage;						/* 결과내용(오류내용) */
    
    /* 페이징 정보 */
    int pageIndex = 0;								/* 요청 페이지 번호 (page) */ 
    int pageLastIndex = 0;						/* 마지막페이지번호 (totPages)  */ 

    /* 기본/추가 정보 */
    HashMap<String, Object> info = null;

    /* 목록정보 */
    int recordTotCount = 0;						/* 총 레코드수 (records) */ 
    
    /**
     * 응답 처리결과가 성공인지의 여부를 리턴한다.
     * 결과코드(resultCode)의 값이 "S"로 시작하는 경우 true 리턴한다.
     * 
     * @return
     */
    public boolean isSuccess() {
		if(StringUtil.isEmpty(resultCode)) return false;
		return (resultCode.trim().charAt(0) == 'S');
    }
    
    // GET/SET 
    
    public String getResultCode() {
        return resultCode;
    }
    public void setResultCode(String resultCode) {
        this.resultCode = resultCode;
    }
    public String getResultMessage() {
        return resultMessage;
    }
    public void setResultMessage(String resultMessage) {
        this.resultMessage = resultMessage;
    }
    public int getPageIndex() {
        return pageIndex;
    }
    public void setPageIndex(int pageIndex) {
        this.pageIndex = pageIndex;
    }
    public int getPageLastIndex() {
        return pageLastIndex;
    }
    public void setPageLastIndex(int pageLastIndex) {
        this.pageLastIndex = pageLastIndex;
    }
    public HashMap<String, Object> getInfo() {
        return info;
    }
    public void setInfo(HashMap<String, Object> info) {
        this.info = info;
    }
    public int getRecordTotCount() {
        return recordTotCount;
    }
    public void setRecordTotCount(int recordTotCount) {
        this.recordTotCount = recordTotCount;
    }
    
    /**
     * 반복되는 목록용 리스트 정보를 가져온다. 
     * - RESTful API : "<results>"요소로 반복되는 요소를 반환한다.
     * 
     * @return
     */
    public List<HashMap<String, String>> getList() {
    	if(info == null) return null;
        return (List<HashMap<String, String>>)info.get("results");
    }
    

	public String getInfoItem(String key) {
		if(key == null) return null;
		if(info == null) return null;
		
		return (String)info.get(key);
	}
}
