import api from '../config/api';
import { Geofence } from '../types';

export const geofenceService = {
  async list(): Promise<Geofence[]> {
    const response = await api.get('/geofences');
    return response.data.data || response.data.geofences || response.data || [];
  },

  async create(data: {
    name: string;
    latitude: number;
    longitude: number;
    radius: number;
  }): Promise<Geofence> {
    const response = await api.post('/geofences', data);
    return response.data.data || response.data.geofence || response.data;
  },

  async update(id: number, data: {
    name: string;
    latitude: number;
    longitude: number;
    radius: number;
  }): Promise<void> {
    await api.put(`/geofences/${id}`, data);
  },

  async remove(id: number): Promise<void> {
    await api.delete(`/geofences/${id}`);
  },

  async check(
    latitude: number,
    longitude: number
  ): Promise<{ inside: boolean; geofence_id?: number; distance_meters?: number; name?: string; radius?: number }> {
    const response = await api.post('/geofences/check', { latitude, longitude });
    return response.data.data || response.data;
  },
};
