package itn.let.sym.site.service;

import java.util.List;
/**
 * 로그인정책에 대한 Service Interface를 정의한다.
 * 로그인정책에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다.
 * 로그인정책의 조회기능은 목록조회, 상세조회로 구분된다.
 * @author 공통서비스개발팀 lee.m.j
 * @since 2009.08.03
 * @version 1.0
 * @see
 *
 * <pre>
 * << 개정이력(Modification Information) >>
 *   
 *   수정일      수정자           수정내용
 *  -------    --------    ---------------------------
 *   2009.08.03  lee.m.j        최초 생성
 *   2011.08.31  JJY            경량환경 템플릿 커스터마이징버전 생성 
 *
 * </pre>
 */

public interface EgovSiteManagerService {

	SiteManagerVO selectSiteManagerVO(SiteManagerVO siteManagerVO) throws Exception;

	void insertSiteManager(SiteManagerVO siteManagerVO) throws Exception;

	List<SiteManagerVO> selectSiteManagerList(SiteManagerVO siteManagerVO) throws Exception ;

	int selectSiteManagerListTotCnt(SiteManagerVO siteManagerVO) throws Exception;

	void deleteSiteManager(String id) throws Exception;

	void siteManagerUpdate(SiteManagerVO siteManagerVO) throws Exception;

	void updateInsp(SiteManagerVO siteManagerVO) throws Exception;

	SiteManagerVO selectFaviconFileVO(SiteManagerVO siteManagerVO) throws Exception; 

	void updateFaviconFile(SiteManagerVO siteManagerVO) throws Exception;

	void updateFaviconYnAjax(SiteManagerVO siteManagerVO) throws Exception;
	
	void updateTabTitle(SiteManagerVO siteManagerVO)  throws Exception;

	void updateTabTitleYnAjax(SiteManagerVO siteManagerVO) throws Exception;

	void updateTabTitleYn(SiteManagerVO siteManagerVO) throws Exception;

	void updateJoinAutoAjax(SiteManagerVO siteManagerVO)  throws Exception;

	void updateInfoProtectPassAjax(SiteManagerVO siteManagerVO)  throws Exception;

	void updateInfoProtectMark(SiteManagerVO siteManagerVO) throws Exception;

	void updateWithdrawCd(SiteManagerVO siteManagerVO) throws Exception;

	void updateAdminLogKpCd(SiteManagerVO siteManagerVO) throws Exception;

	void updateRecentSearchCd(SiteManagerVO siteManagerVO) throws Exception;

	void updateTermsYnAjax(SiteManagerVO siteManagerVO) throws Exception;

	void updateTerms(SiteManagerVO siteManagerVO)  throws Exception;

	void updateSessionTimeCd(SiteManagerVO siteManagerVO) throws Exception;

	List<TermsVO> selectTermsEmailTargetList(TermsVO termsVO) throws Exception ;
	
	//이용약관 메뉴 시작 - 기본 terms뒤 mng추가
	List<TermsVO> selectTermsMngList(TermsVO termsVO) throws Exception ;
	
	int selectTermsMngListTotCnt(TermsVO termsVO) throws Exception;
	
	void updateTermsNecYnAjax(TermsVO termsVO) throws Exception;
	
	void updateTermsUseYnAjax(TermsVO termsVO) throws Exception;
	
	TermsVO selectTermsVO(TermsVO termsVO) throws Exception;
	
	void insertTermsMng(TermsVO termsVO)  throws Exception;
	
	void updateTermsMng(TermsVO termsVO)  throws Exception;
	
	void deleteTermsMng(TermsVO termsVO) throws Exception;
	
	//사용자페이지 - 이용약관
	List<TermsVO> selectTerms(TermsVO termsVO) throws Exception ;
	
	//사용자 기본 단가 조회
	JoinSettingVO selectJoinSetting() throws Exception ;
	
	//사용자 기본 단가 수정
	void updateJoinSetting(JoinSettingVO joinSettingVO) throws Exception;
	
	//회원가입 인증 방법 선택
	public JoinSettingVO selectJoinCertTypeDetail() throws Exception;
	
	//회원가입 인증 방법 수정
	public void updateJoinCertType(JoinSettingVO joinSettingVO) throws Exception;
	
	//사용자페이지 - 메뉴에 따른 이용약관 조회
	List<TermsVO> selectTermsMenu(TermsVO termsVO) throws Exception ;
	
	int insertMetaTag(MetaTagVO metaTagVO)  throws Exception;
	
	int updateMetaTag(MetaTagVO metaTagVO)  throws Exception;
	
	List<MetaTagVO> selectMetaTagList(MetaTagVO metaTagVO) throws Exception ;
	
	void deleteMetaTag(MetaTagVO metaTagVO) throws Exception;
	
	MetaTagVO selectMetaTagDetail(MetaTagVO metaTagVO) throws Exception;
	
	MetaTagVO selectMetaTagDetailByUrl(String url) throws Exception;
	
	//관리자 알림 여부
	public JoinSettingVO selectAdminNotiDetail() throws Exception;
	
	//관리자 알림 수정
	public void updateAdminNoti(JoinSettingVO joinSettingVO) throws Exception;

	List<TermsVO> selectTermsMastMngBeforeList(TermsVO termsVO) throws Exception ;
	
	List<TermsVO> selectTermsMastMngList(TermsVO termsVO) throws Exception ;
	
	List<TermsVO> selectTermsSubMngList(TermsVO termsVO) throws Exception ;
	
	void insertTermsMastMng(TermsVO termsVO)  throws Exception;
	
	String selectTermsLastMastNo(String termsDivCode) throws Exception;
	
	void insertTermsSubMng(TermsVO termsVO)  throws Exception;
	
	void deleteTermsMastMng(TermsVO termsVO) throws Exception;
	
	void deleteTermsSubMng(TermsVO termsVO) throws Exception;
	
	void updateTermsSubUseYnAjax(TermsVO termsVO) throws Exception;
	
	TermsVO selectTermsSubVO(TermsVO termsVO) throws Exception;
	
	// 이용약관/개인정보 메일발송 대상
	TermsVO selectTermsMastEffectUseInfo(TermsVO termsVO) throws Exception;
	
	void updateTermsSubMng(TermsVO termsVO)  throws Exception;
	
	TermsVO selectTermsMastVO(TermsVO termsVO) throws Exception;
	
	void updateTermsMastUseYnAjax(TermsVO termsVO) throws Exception;
	
	void updateTermsMastEmainInfoYUpdateAjax(TermsVO termsVO) throws Exception;
	
	void deleteTermsEmailTagetByMemberId(TermsVO termsVO)  throws Exception;
	
	void updateTermsMastEmailYn(TermsVO termsVO)  throws Exception;
	
	// 개인회원여부
	int selectPersnalMemberCnt(String userId) throws Exception;

	// 첫결제여부
	int selectFirstPayCnt(String userId) throws Exception;
	
	void updateInspManage(SiteManagerVO siteManagerVO) throws Exception;
}
