package nlib.restful.service;

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

/**
 * <pre>
 * @Class Name : DataApiReqVO.java
 * 
 * @Description : RESTful API 요청 VO
 * 
 * 
 * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
 *
 * </pre>
 *
 * @ ------------    --------    ---------------------------
 * @ 수정일                     수정자             수정내용
 * @ ------------    --------    ---------------------------
 * @ 2021. 6. 22.    KNKIM       최초 생성
 *
 * 
 * @author 이씨플라자 * DIGITALSHIP KNKIM
 * @since 2021. 6. 22.
 * @version 1.0
 *
 */
public class DataApiReqVO {
	
	public static final int DEFAULT_PAGE_SIZE = 10;
	public static final int DEFAULT_PAGE_INDEX = 1;
	
    /* 처리결과 */
    private String	authKey;	/* 로그인키 */

    /* 페이징 정보 */
    private int pageIndex = 0;		/* 요청 페이지 번호 */ 
    private int pageSize = 0;		/* 페이지별 표출할 레코드 수 */

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

    public boolean hasInfo() {
    	return (info != null && info.size() > 0);
    }
    
    /* 요청업무ID 및 처리URI */
    int    reqMethod; /* 요청메소드구분값 */
    String reqUrl;    /* 요청업무ID에 대한 통합시스템의 응답 처리 프로그램 URI */
    
    // GET/SET
    public String getAuthKey() {
        return authKey;
    }

	public void setAuthKey(String authKey) {
        this.authKey = authKey;
    }

    public int getPageIndex() {
        return (pageIndex < 1 ? DEFAULT_PAGE_INDEX : pageIndex);
    }

    public void setPageIndex(int pageIndex) {
        this.pageIndex = pageIndex;
    }
    
    public void setPageIndex(String pageIndex) {
    	try {
    		this.pageIndex = Integer.parseInt(pageIndex);
    	} catch(Exception e) {
    		this.pageIndex = DEFAULT_PAGE_INDEX;	
    	}
        
    }

    public int getPageSize() {
        return (pageSize < 1 ? DEFAULT_PAGE_SIZE : pageSize);
    }

    public void setPageSize(String pageSize) {
    	try {
    		this.pageSize = Integer.parseInt(pageSize);
    	} catch(Exception e) {
    		this.pageSize = DEFAULT_PAGE_SIZE;	
    	}
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public HashMap<String, Object> getInfo() {
        return info;
    }

    public void setInfo(HashMap<String, Object> info) {
        this.info = info;
    } 

	public String getReqUrl() {
		return reqUrl;
	}
	public void setReqUrl(String reqUrl) {
		this.reqUrl = reqUrl;
	}

	public int getReqMethod() {
		return reqMethod;
	}

	public void setReqMethod(int reqMethod) {
		this.reqMethod = reqMethod;
	}
	
	public void addInfoItem(String key, String value) {
		if(key == null) return;
		
		if(info == null) info = new HashMap<String, Object>();
		
		info.put(key, value);
	}
	
	public String getInfoItem(String key) {
		if(key == null) return null;
		if(info == null) return null;
		
		return (String)info.get(key);
	}
	
	public void removeInfoItem(String key) {
		if(key == null) return;
		if(info == null) return;
		
		info.remove(key);
	}

}
