package com.takensoft.cms.mber.web;

import com.takensoft.cms.mber.dto.JoinDTO;
import com.takensoft.cms.mber.dto.PasswordDTO;
import com.takensoft.cms.mber.service.MberService;
import com.takensoft.cms.mber.vo.MberVO;
import com.takensoft.common.exception.IdDuplicationException;
import com.takensoft.common.message.MessageCode;
import com.takensoft.common.util.ResponseData;
import com.takensoft.common.util.ResponseUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import jakarta.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.nio.charset.Charset;
import java.util.HashMap;
/**
 * @author takensoft
 * @since 2024.04.01
 * @modification
 *     since    |    author    | description
 *  2024.04.01  |  takensoft   | 최초 등록
 *
 * 회원 정보 관련 컨트롤러
 */
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping(value = "/mbr")
public class MberController {
    private final MberService mberService;
    private final ResponseUtil resUtil;

    /**
     * @param params - 부서 아이디
     * @return ResponseEntity - 회원정보 상세 조회 응답 결과
     *
     * 회원정보 상세 조회
     */
    @PostMapping(value = "/findByMbr.json")
    public ResponseEntity<?> findByMbr(@RequestBody HashMap<String, Object> params){
        // 상세 조회
        MberVO result = mberService.findByMbr(params);

        // 응답 처리
        return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
    }
    /**
     * @param passwordDTO - 비밀번호
     * @return ResponseEntity - 비밀번호 변경 결과
     *
     * 비밀번호 변경
     */
    @PostMapping(value = "/updatePassword.json")
    public ResponseEntity<?> joinProc(@RequestBody @Valid PasswordDTO passwordDTO){
        // 비밀 번호 비교
        boolean isExistence = mberService.passwordCheck(passwordDTO);
        return resUtil.successRes(isExistence, MessageCode.COMMON_SUCCESS);
    }
}