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

/** 用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系信息 */
export interface UserInviteCodes {
          id: number; // 邀请码主键ID
          code?: string; // 邀请码字符串，对外展示，唯一
          ownerUserId?: number; // 邀请码所属用户ID（邀请人）
          status?: number; // 邀请码状态：1=启用，0=停用
          createdAt?: string | Dayjs; // 邀请码创建时间
          expiresAt: string | Dayjs; // 邀请码过期时间，NULL表示永久有效
          maxUses: number; // 邀请码最大可使用次数，NULL表示不限次数
          usedCount?: number; // 邀请码已使用次数
          systemUserId: number; // 邀请码所属系统用户ID（邀请人）
          ownerTenantId: number; // 邀请码所属租户
          owenrSystemUserId: number; // 邀请码所属系统用户
          inviteType?: string; // 邀请码类型
  }

// 用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系 API
export const UserInviteCodesApi = {
  // 查询用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系分页
  getUserInviteCodesPage: async (params: any) => {
    return await request.get({ url: `/keyboard/user-invite-codes/page`, params })
  },

  // 查询用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系详情
  getUserInviteCodes: async (id: number) => {
    return await request.get({ url: `/keyboard/user-invite-codes/get?id=` + id })
  },

  // 新增用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系
  createUserInviteCodes: async (data: UserInviteCodes) => {
    return await request.post({ url: `/keyboard/user-invite-codes/create`, data })
  },

  // 修改用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系
  updateUserInviteCodes: async (data: UserInviteCodes) => {
    return await request.put({ url: `/keyboard/user-invite-codes/update`, data })
  },

  // 删除用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系
  deleteUserInviteCodes: async (id: number) => {
    return await request.delete({ url: `/keyboard/user-invite-codes/delete?id=` + id })
  },

  /** 批量删除用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系 */
  deleteUserInviteCodesList: async (ids: number[]) => {
    return await request.delete({ url: `/keyboard/user-invite-codes/delete-list?ids=${ids.join(',')}` })
  },

  // 导出用户生成的邀请码表，用于邀请新用户注册/安装并建立邀请关系 Excel
  exportUserInviteCodes: async (params) => {
    return await request.download({ url: `/keyboard/user-invite-codes/export-excel`, params })
  }
}