const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:3000/api'; export interface UploadError { row: number; field?: string; message: string; data?: Record; } export interface UploadResult { total: number; inserted: number; updated: number; errors: UploadError[]; } export interface ApiResponse { success: boolean; message: string; data?: UploadResult; } /** * Upload meters CSV file */ export async function uploadMetersCSV(file: File): Promise { const formData = new FormData(); formData.append('file', file); const response = await fetch(`${API_BASE_URL}/csv-upload/meters`, { method: 'POST', body: formData, }); return response.json(); } /** * Upload readings CSV file */ export async function uploadReadingsCSV(file: File): Promise { const formData = new FormData(); formData.append('file', file); const response = await fetch(`${API_BASE_URL}/csv-upload/readings`, { method: 'POST', body: formData, }); return response.json(); } /** * Download meters CSV template */ export function downloadMetersTemplate(): void { window.open(`${API_BASE_URL}/csv-upload/meters/template`, '_blank'); } /** * Download readings CSV template */ export function downloadReadingsTemplate(): void { window.open(`${API_BASE_URL}/csv-upload/readings/template`, '_blank'); }