import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** 用户内购记录信息 */
export interface UserPurchaseRecords {
          id: number; // 主键，自增，唯一标识每条购买记录
          userId?: number; // 用户 ID，关联到用户表，表示是哪位用户购买了产品
          productId?: string; // 购买的产品 ID，关联到产品表
          purchaseQuantity?: number; // 购买数量（如内购的金币数量，订阅的时长）
          price?: number; // 实际支付价格
          currency?: string; // 货币类型（如美元 $）
          purchaseTime: string | Dayjs; // 购买时间
          purchaseType?: string; // 购买类型（如内购，订阅）
          status?: string; // 购买状态（如已支付，待支付，退款）
          paymentMethod: string; // 支付方式（如信用卡，支付宝等）
          transactionId?: string; // 唯一的交易 ID，用于标识该购买操作
          originalTransactionId: string; // 苹果的原始交易 ID
          productIds: object; // 购买的产品 ID 列表（JSON 格式或数组）
          purchaseDate: string | Dayjs; // 苹果返回的购买时间
          expiresDate: string | Dayjs; // 苹果返回的过期时间（如果有）
          environment: string; // 苹果的环境（如 Sandbox 或 Production）
  }

// 用户内购记录 API
export const UserPurchaseRecordsApi = {
  // 查询用户内购记录分页
  getUserPurchaseRecordsPage: async (params: any) => {
    return await request.get({ url: `/keyboard/user-purchase-records/page`, params })
  },

  // 查询用户内购记录详情
  getUserPurchaseRecords: async (id: number) => {
    return await request.get({ url: `/keyboard/user-purchase-records/get?id=` + id })
  },

  // 新增用户内购记录
  createUserPurchaseRecords: async (data: UserPurchaseRecords) => {
    return await request.post({ url: `/keyboard/user-purchase-records/create`, data })
  },

  // 修改用户内购记录
  updateUserPurchaseRecords: async (data: UserPurchaseRecords) => {
    return await request.put({ url: `/keyboard/user-purchase-records/update`, data })
  },

  // 删除用户内购记录
  deleteUserPurchaseRecords: async (id: number) => {
    return await request.delete({ url: `/keyboard/user-purchase-records/delete?id=` + id })
  },

  /** 批量删除用户内购记录 */
  deleteUserPurchaseRecordsList: async (ids: number[]) => {
    return await request.delete({ url: `/keyboard/user-purchase-records/delete-list?ids=${ids.join(',')}` })
  },

  // 导出用户内购记录 Excel
  exportUserPurchaseRecords: async (params) => {
    return await request.download({ url: `/keyboard/user-purchase-records/export-excel`, params })
  }
}