import request from '@/utils/request'
import { BASE_URL, CLIENT_ID, PLATFORM_CODE } from '@/utils/config'

/**
 * 提交入驻申请（招募表单）
 * @param {Object} data - 申请数据
 */
export function submitAudit(data) {
  return request({
    url: '/fulfiller/app/audit/submit',
    method: 'POST',
    needToken: false,
    data
  })
}

/**
 * 获取服务项目列表（动态获取服务类型）
 */
export function getServiceTypes() {
  return request({
    url: '/fulfiller/app/service/list',
    method: 'GET',
    needToken: false
  })
}

/**
 * 查询子级区域/站点列表（级联选择器用）
 * @param {number} parentId - 父级ID，0或不传查顶级
 */
export function getAreaChildren(parentId = 0) {
  return request({
    url: '/fulfiller/app/area/children',
    method: 'GET',
    needToken: false,
    data: { parentId }
  })
}

/**
 * 上传文件（图片等）
 * @param {string} filePath - 本地文件路径
 * @returns {Promise} - { url, fileName, ossId }
 */
export function uploadFile(filePath) {
  return new Promise((resolve, reject) => {
    const token = uni.getStorageSync('fulfiller_token')
    uni.uploadFile({
      url: BASE_URL + '/fulfiller/app/upload',
      filePath: filePath,
      name: 'file',
	  timeout: 600000,
      header: {
        'clientid': CLIENT_ID,
        'X-Platform-Code': PLATFORM_CODE,
        'Authorization': token ? `Bearer ${token}` : '',
      },
      success: (res) => {
        try {
          const data = JSON.parse(res.data)
          if (data.code === 200) {
            resolve(data)
          } else {
            reject(data)
          }
        } catch (e) {
          reject(e)
        }
      },
      fail: (err) => {
        reject(err)
      }
    })
  })
}
