import { getResult, patchResult, postResult, putResult } from './core/request'
import type {
  MiniVisitorDetailItem,
  MiniVisitorListItem,
  MiniVisitorSaveRequest,
} from '@/types/visitor'

export function fetchMyVisitors() {
  return getResult<MiniVisitorListItem[]>('/api/mini/visitors')
}

export function createVisitor(payload: MiniVisitorSaveRequest) {
  return postResult<void>('/api/mini/visitors', payload)
}

export function fetchVisitorDetail(id: number, uuid: string) {
  return getResult<MiniVisitorDetailItem>(`/api/mini/visitors/${id}`, {
    params: { uuid },
  })
}

export function updateVisitor(id: number, uuid: string, payload: MiniVisitorSaveRequest) {
  return putResult<void>(`/api/mini/visitors/${id}`, payload, {
    params: { uuid },
  })
}

export function setDefaultVisitor(id: number, uuid: string) {
  return patchResult<void>(`/api/mini/visitors/${id}/default`, undefined, {
    params: { uuid },
  })
}
