import api from "../lib/axios";
import { AxiosRequestConfig } from "axios";

export const biometricService = {
  getDevices: async (options?: AxiosRequestConfig): Promise<any[]> => {
    const response = await api.get("/biometric/devices", options);
    return response.data;
  },

  registerDevice: async (data: any, options?: AxiosRequestConfig): Promise<any> => {
    const response = await api.post("/biometric/devices", data, options);
    return response.data;
  },

  updateDeviceStatus: async (deviceId: string, isActive: boolean, options?: AxiosRequestConfig): Promise<any> => {
    const response = await api.put(`/biometric/devices/${deviceId}/status`, { isActive }, options);
    return response.data;
  },

  linkEmployee: async (data: { userId: number; biometricDeviceId: number }, options?: AxiosRequestConfig): Promise<any> => {
    const response = await api.post("/biometric/link", data, options);
    return response.data;
  },

  getUserLogs: async (userId: number, params?: { start?: string; end?: string }, options?: AxiosRequestConfig): Promise<any[]> => {
    const response = await api.get(`/biometric/logs/${userId}`, { ...options, params });
    return response.data;
  },

  uploadExcel: async (file: File, options?: AxiosRequestConfig): Promise<any> => {
    const formData = new FormData();
    formData.append("file", file);
    const response = await api.post("/biometric/upload-excel", formData, {
      ...options,
      headers: {
        ...options?.headers,
        "Content-Type": "multipart/form-data",
      },
    });
    return response.data;
  },
};
