'use client'; import { useEffect, useState } from 'react'; import { migrationService } from '@/lib/services/migration.service'; import { MigrationErrorItem } from '@/types/migration'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { format } from 'date-fns'; import { ArrowLeftIcon } from 'lucide-react'; import Link from 'next/link'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { getApiErrorMessage } from '@/types/api-error'; export default function MigrationErrorsPage() { const [items, setItems] = useState([]); const [loading, setLoading] = useState(true); const [errorMessage, setErrorMessage] = useState(null); useEffect(() => { fetchData(); }, []); const fetchData = async () => { try { setLoading(true); setErrorMessage(null); const res = await migrationService.getErrors({ limit: 100 }); setItems(Array.isArray(res.items) ? res.items : []); } catch (error: unknown) { setItems([]); setErrorMessage(getApiErrorMessage(error, 'Failed to load errors')); } finally { setLoading(false); } }; return (

Migration Errors

Systemic errors encountered during the background migration process.

Error Audit Log {errorMessage && (
{errorMessage}
)} {loading ? (
Loading errors...
) : items.length === 0 ? (
No errors found.
) : (
Batch ID Document No. Error Type Error Message Occurred At {items.map((item) => ( {item.batchId || '-'} {item.documentNumber || '-'} {item.errorType || 'UNKNOWN'} {item.errorMessage || '-'} {format(new Date(item.createdAt), 'dd MMM yyyy, HH:mm')} ))}
)}
); }