import request from '@/config/axios'

// 邀请码 VO
export interface InviteCodeVO {
  id: number // 主键
  code: string // 邀请码
  roleIds: string // 绑定角色
  roleNames: [] // 绑定角色
  validTime: number // 有效期（天）
  expireTime: string // 过期时间
  useUserId: number // 使用用户id
  useUserName: String // 使用用户名称
  useUserTenantId: number // 使用用户租户id
  useUserTenantName: String // 使用用户租户名称
  status: string // 状态
}

// 邀请码 API
export const InviteCodeApi = {
  // 查询邀请码分页
  getInviteCodePage: async (params: any) => {
    return await request.get({ url: `/system/invite-code/page`, params })
  },

  // 查询邀请码详情
  getInviteCode: async (id: number) => {
    return await request.get({ url: `/system/invite-code/get?id=` + id })
  },

  // 新增邀请码
  createInviteCode: async (data: InviteCodeVO) => {
    return await request.post({ url: `/system/invite-code/create`, data })
  },

  // 修改邀请码
  updateInviteCode: async (data: InviteCodeVO) => {
    return await request.put({ url: `/system/invite-code/update`, data })
  },

  // 删除邀请码
  deleteInviteCode: async (id: number) => {
    return await request.delete({ url: `/system/invite-code/delete?id=` + id })
  },

  // 导出邀请码 Excel
  exportInviteCode: async (params) => {
    return await request.download({ url: `/system/invite-code/export-excel`, params })
  },

  // 发送邀请码短信
  sendSms: async (id: number) => {
    return await request.post({ url: `/system/invite-code/send-sms`, params: { id } })
  }
}
