package com.madeu.crm.kiosk.map;

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

import org.apache.ibatis.annotations.Mapper;

import com.madeu.crm.kiosk.dto.ConsentFormDTO;
import com.madeu.crm.kiosk.dto.KioskDTO;
import com.madeu.crm.kiosk.dto.ReserveDTO;
import com.madeu.crm.kiosk.dto.UserDTO;

@Mapper
public interface KioskMAP {
    // 동의서 조회
    ConsentFormDTO selectConsentForm(ConsentFormDTO dto);

    // 진료 리스트 조회
    List<Map<String, Object>> getTreatmentOptionList(Map<String, Object> paramMap);

    // 카테고리 조회 (List & Item)
    List<Map<String, Object>> getCategoryList(Map<String, Object> paramMap);
    List<Map<String, Object>> getCategoryItem(Map<String, Object> paramMap);

    // 고객 리스트 및 카운트
    int getUserOptionListCnt(Map<String, Object> paramMap);
    List<Map<String, Object>> getUserOptionList(Map<String, Object> paramMap);

    // 고객 등록 및 단일 조회
    int putUser(Map<String, Object> paramMap);
    Map<String, Object> getUser(Map<String, Object> paramMap);

    // 병원 및 근무시간 정보
    List<Map<String, Object>> getHospital(Map<String, Object> paramMap);
    List<Map<String, Object>> getHospitalHolidayList(Map<String, Object> paramMap);

    // 진료시술 리스트 및 카운트
    int getTotalTreatmentProcedureOptionCount(Map<String, Object> paramMap);
    List<Map<String, Object>> getTreatmentProcedureOptionList(Map<String, Object> paramMap);

    // 상담 의사 리스트
    List<Map<String, Object>> getMemberDoctorConsultingOptionList(Map<String, Object> paramMap);

    // 직원 리스트 및 카운트
    List<Map<String, Object>> getMemberListCnt(Map<String, Object> paramMap);
    List<Map<String, Object>> getMemberList(Map<String, Object> paramMap);

    // 예약 고객 옵션 리스트
    List<Map<String, Object>> getReserveUserOptionList(Map<String, Object> paramMap);
    
    int insertUser(UserDTO dto);
    
    List<KioskDTO> selectUserByPhoneNumber(KioskDTO dto);
    
    List<ReserveDTO> selectReserveByMuUserId(KioskDTO dto);
    
    int updateReserveStatus(ReserveDTO dto);
    
    int insertReserve(ReserveDTO dto);
}