import Vue from 'vue';

async function deleteCan(id) {
    return Vue.axios.delete('/admin/can/' + id);
}

async function getCans() {
    return Vue.axios.get('/can');
}

async function insertCan(can, rewardCan, price) {
    const request = {can: can, rewardCan: rewardCan, price: price}
    return Vue.axios.post('/admin/can', request);
}

async function paymentCan(can, method, member_id) {
    const request = {memberId: member_id, method: method, can: can}
    return Vue.axios.post('/admin/can/charge', request)
}

async function getCouponList(page) {
    return Vue.axios.get('/can/coupon?page=' + (page - 1) + "&size=20");
}

async function generateCoupon(couponName, can, validity, isMultipleUse, couponNumberCount) {
    const request = {couponName, can, validity: validity + ' 23:59:59', isMultipleUse, couponNumberCount};
    return Vue.axios.post('/can/coupon', request);
}

async function getCouponNumberList(couponId, page) {
    return Vue.axios.get('/can/coupon/number-list?couponId=' + couponId + '&page=' + (page - 1) + "&size=20");
}

async function downloadCouponNumberList(couponId) {
    return Vue.axios.get('/can/coupon/number-list/download?couponId=' + couponId, { responseType: 'blob' });
}

async function modifyCoupon(request) {
    return Vue.axios.put('/can/coupon', request);
}

export {
    getCans,
    insertCan,
    deleteCan,
    paymentCan,
    modifyCoupon,
    getCouponList,
    generateCoupon,
    getCouponNumberList,
    downloadCouponNumberList
}