import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { AnnualTaskVO, AnnualTaskQuery, AnnualTaskForm } from './types';

/**
 * 查询销售任务年度任务列表
 * @param query 查询参数
 */
export function listAnnualTask(query: AnnualTaskQuery): AxiosPromise<AnnualTaskVO[]> {
    return request({
        url: '/customer/annualTask/list',
        method: 'get',
        params: query
    });
}

/**
 * 获取销售年度任务详细信息
 * @param id 主键 ID
 */
export function getAnnualTask(id: string | number): AxiosPromise<AnnualTaskVO> {
    return request({
        url: `/customer/annualTask/${id}`,
        method: 'get'
    });
}

/**
 * 新增销售年度任务
 * @param data 年度任务数据
 */
export function addAnnualTask(data: AnnualTaskForm): AxiosPromise<void> {
    return request({
        url: '/customer/annualTask',
        method: 'post',
        data: data
    });
}

/**
 * 修改销售年度任务
 * @param data 年度任务数据
 */
export function updateAnnualTask(data: AnnualTaskForm): AxiosPromise<void> {
    return request({
        url: '/customer/annualTask',
        method: 'put',
        data: data
    });
}

/**
 * 删除销售年度任务
 * @param ids 主键 ID 集合
 */
export function delAnnualTask(ids: string | number | (string | number)[]): AxiosPromise<void> {
    return request({
        url: `/customer/annualTask/${ids}`,
        method: 'delete'
    });
}

/**
 * 导出销售年度任务列表
 * @param query 查询参数
 */
export function exportAnnualTask(query: AnnualTaskQuery) {
    return request({
        url: '/customer/annualTask/export',
        method: 'post',
        params: query,
        responseType: 'blob'
    });
}
