import request from '@/utils/request'

/**
 * 上传文件通用接口
 * @param data File 对象 或 FormData 对象
 * 适配说明：list.vue 中 customUpload 已经封装了 FormData，所以这里支持直接传 FormData
 */
export function uploadFile(data: File | FormData) {
    let formData: FormData

    if (data instanceof FormData) {
        formData = data
    } else {
        // 如果传入的是原始 File 对象，则手动封装
        formData = new FormData()
        // @ts-ignore
        formData.append('file', data)
    }

    return request({
        // 注意：这里 /v1/common/upload 需要与后端 BluePrint 注册的 url_prefix 对应
        url: '/v1/common/upload',
        method: 'post',
        data: formData,
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    })
}

/**
 * 删除文件通用接口 (新增)
 * @param filename 文件名 (例如: a1b2c3d4.jpg)
 */
export function deleteFile(filename: string) {
    return request({
        // 对应后端路由: @upload_bp.route('/files/<filename>', methods=['DELETE'])
        url: `/v1/common/files/${filename}`,
        method: 'delete'
    })
}