package com.takensoft.cms.mber.service;

import com.takensoft.cms.mber.dto.AdmMbrDTO;
import com.takensoft.cms.mber.dto.JoinDTO;
import com.takensoft.cms.mber.vo.MberVO;

import jakarta.servlet.http.HttpServletRequest;
import org.springframework.dao.DataAccessException;

import java.util.HashMap;
/**
 * @author 박정하
 * @since 2024.06.21
 * @modification
 *     since    |    author    | description
 *  2024.06.21  |    박정하     | 최초 등록
 *
 * 회원정보 관련 인터페이스
 */
public interface AdmMbrService {
    /**
     * @param params - 회원정보
     * @return HashMap<String, Object>
     *  - result : 회원정보
     *  - pagination : 페이징 정보
     *
     * 회원정보 목록 조회
     */
    public HashMap<String, Object> mbrList(HashMap<String, String> params);

    /**
     * @param mbrId - 회원 아이디
     * @return AdmMbrDTO - 회원정보 상세 조회 결과
     *
     * 회원정보 상세 조회
     */
    public AdmMbrDTO mbrDetail(String mbrId);

    /**
     * @param admMbrDTO -회원정보
     * @return int - 회원정보 수정 결과
     *
     * 회원정보 수정
     */
    public int updateMbr(AdmMbrDTO admMbrDTO);

    /**
     * @param req - HTTP 요청 객체
     * @param joinDTO -회원정보
     * @return HashMap<String, Object> - 회원정보 등록 결과
     *  - mbrId : 회원 아이디
     *  - insertResult : 회원등록정보 결과
     *
     * 회원정보 등록
     */
    public HashMap<String, Object> mbrInsert(HttpServletRequest req, JoinDTO joinDTO);

    /**
     * @param mbrVO -회원정보
     * @return String - 로그인 아이디
     *
     * 아이디 찾기 (로그인 아이디)
     */
    public String lgnIdSearch(MberVO mbrVO);

    /**
     * @param resetPswd -초기화비밀번호
     * @param admMbrDTO -회원정보
     * @return int - 회원정보 등록 결과
     *
     * 아이디 찾기 (회원 아이디)
     */
    public int mbrIdSearch(String resetPswd, AdmMbrDTO admMbrDTO);
}