package com.dbs.mplus.service.mobile.user.repository;

import java.util.Map;

import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.stereotype.Repository;

import com.dbs.mplus.framework.exception.MPlusServiceException;
import com.dbs.mplus.framework.template.GenericRepository;
import com.dbs.mplus.service.mobile.user.repository.dao.MPlusUser;
/**
 * 한번등록되면 지워지지 않을것만 같은 사용자 등록 처리 
 * 
 * @author hyeeun 
 *
 */
@Repository 
public class MPlusUserRepository extends GenericRepository<MPlusUser> {
	/**
	 * 신규 사용자 추가 
	 * @param userId 차트번호 
	 * @param userName 사용자 이름 
	 * @param sha256PassWord 해쉬적용된 로그인 비번 
	 * @param localCipherKey 로컬DB암호화 키 
	 * @throws MPlusServiceException 
	 */
	public void insertUser(String userId, String userName, String sha256PassWord, String localCipherKey) throws MPlusServiceException {
		final MapSqlParameterSource param = new MapSqlParameterSource(); 
		
		param.addValue("userId", userId); 
		param.addValue("userName", userName); 
		param.addValue("passWordValue", sha256PassWord); 
		param.addValue("localCipherKeyValue", localCipherKey); 
		
		// 추가 
		super.insert(param); 
	}
	/**
	 * 사용자의 deviceToken 지우기 
	 * 마땅이 꼽아 둘데가 없어서 여기에 위치했음 
	 * Api로 분리하자니 트랜잭션 걸기가 어렵고, 얘를 위해 query-repository-service를 다 만들기도 그렇고... 
	 * 
	 * @param userId
	 * @throws MPlusServiceException
	 */
	public void deleteUserDeviceToken(Map<String, Object> param) throws MPlusServiceException {
		// 삭제
		super.delete("deleteUserDeviceToken", param); 
	}
	
//	/**
//	 * 환자의 시스템 접근 및 등록 정보 조회 
//	 * @param params
//	 * @return
//	 * @throws MPServiceException
//	 */
//	public Map<String, Object> selectUserAccessDay(Map<String, Object> params) throws MPServiceException {
//		return super.queryForPaging("selectUserAccessDay", params, false); 
//	}
}
