import httpClient from '@/common/http-client';
import subsExcelHeader from './mock/subsExcelHeader';
import carryOverExcelHeader from './mock/carryOverExcelHeader';
import sampleExcelHeader from './mock/sampleExcelHeader';

// 공통 코드.
const getCommCode = (params) => {
    return httpClient.post('/api/v1/bo/comm/getCode', params, { withCredentials: false });
}

// 청약정보 상세조회
const subsDetail = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/subsDetail', params, { withCredentials: false});
}

// 이월금액 목록 조회 
const carryOverList = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/carryOverList', params, { withCredentials: false});
}

// 청약정보 엑셀다운로드 목록 조회
const subsListExcel = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/subsListExcel', params);
}

// 사용자 상세 정보 조회.
const memberDetail = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/memberDetail', params);
}

// 관리자 상세 정보 조회.
const memberAdminDetail = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/memberAdminDetail', params);
}

// 관리자명(마당ID) 조회
const selectSearchMadangId = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/adminInfo', params);
}

// 청약정보 관리자명/관리자ID 수정
const updateAdminInfo = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/updateAdminInfo', params);
}

// 사용자 ID 생성
const insertUser = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/insertUser', params);
}

// 사용자 ID 중복 체크
const duplicateCheckUserId = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/duplicateCheckUserId', params);
}

// 사용자 ID 수정
const updateUser = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/updateUser', params);
}

// 사용자 ID 대량등록
const insertMassUser = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/insertMassUser', params);
}

// 사용자 ID (리스트) 삭제
const deleteUser = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/deleteUser', params);
}

// 관리자정보 종합(사용자정보, 메모, 발송한도) 수정
const updateAdminInfoTotal = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/updateAdminInfoTotal', params);
}

//insertTestId
const insertTestId = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/insertTestId', params);
}

// 메모삭제
const deleteMemo = (params) => {
    return httpClient.post('/api/v1/bo/custMgt/deleteMemo', params);
}

const getExcelHeader = category => {
    // 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다.
    return new Promise(function(resolve, reject) {
        let header = [];
        switch (category) {
            case 'SUBS':
                header = subsExcelHeader.header;
                break;
            case 'CARRY':
                header = carryOverExcelHeader.header;
                break;
            case 'SAMPLE':
                header = sampleExcelHeader.header;
                break;
            default:
                header = '';
                break;
        }
        resolve(header);
    });
};

export default {
    getCommCode,
    subsDetail,
    carryOverList,
    getExcelHeader,
    subsListExcel,
    memberDetail,
    memberAdminDetail,
    selectSearchMadangId,
    updateAdminInfo,
    insertUser,
    updateUser,
    insertMassUser,
    deleteUser,
    updateAdminInfoTotal,
    deleteMemo,
    insertTestId,
    duplicateCheckUserId,
}
