diff --git a/app/api/dashboard/stats/route.ts b/app/api/dashboard/stats/route.ts index a24b611..ecf7e96 100644 --- a/app/api/dashboard/stats/route.ts +++ b/app/api/dashboard/stats/route.ts @@ -26,7 +26,7 @@ export async function GET() { const siteMap: Record = {} for (const r of rows) { - const name = (r.sites as any)?.name ?? 'Unknown' + const name = (r.sites as { name: string } | null)?.name ?? 'Unknown' siteMap[name] = (siteMap[name] ?? 0) + 1 } const by_site = Object.entries(siteMap).map(([name, count]) => ({ name, count })) diff --git a/app/api/incidents/route.ts b/app/api/incidents/route.ts index 1b827d8..5e85610 100644 --- a/app/api/incidents/route.ts +++ b/app/api/incidents/route.ts @@ -1,6 +1,6 @@ import { NextResponse } from 'next/server' import { createClient } from '@/lib/supabase/server' -import { validateIncidentInput } from '@/lib/incidents/validate' +import { validateIncidentInput, type IncidentType, type MedicalStatus } from '@/lib/incidents/validate' import { uploadEvidenceFile, type EvidenceStage } from '@/lib/supabase/storage' import { sendNewIncidentEmail } from '@/lib/notifications/email' @@ -28,11 +28,11 @@ export async function POST(request: Request) { const input = { zone_token: body.zone_token as string, - incident_type: body.incident_type as any, + incident_type: body.incident_type as IncidentType, description: body.description as string, injury_involved: body.injury_involved === 'true' || body.injury_involved === true, asset_involved: body.asset_involved === 'true' || body.asset_involved === true, - medical_status: body.medical_status as any || undefined, + medical_status: body.medical_status as MedicalStatus | undefined || undefined, } const validation = validateIncidentInput(input) diff --git a/app/report/page.tsx b/app/report/page.tsx index 755d079..25e2161 100644 --- a/app/report/page.tsx +++ b/app/report/page.tsx @@ -32,13 +32,13 @@ export default async function ReportPage({ searchParams }: Props) {

Report an Incident

{zoneData ? (

- {(zoneData.sites as any)?.name ?? 'Unknown Site'} — {zoneData.name} + {zoneData.sites.name} — {zoneData.name}

) : (

No zone detected — zone will not be recorded

)} - + ) } diff --git a/lib/notifications/email.ts b/lib/notifications/email.ts index d02a591..586647a 100644 --- a/lib/notifications/email.ts +++ b/lib/notifications/email.ts @@ -27,8 +27,8 @@ export async function sendNewIncidentEmail( .eq('id', incidentId) .single() - const siteName = (incident?.sites as any)?.name ?? 'Unknown Site' - const reporterName = (incident?.reporter as any)?.name ?? 'Unknown' + const siteName = (incident?.sites as { name: string } | null)?.name ?? 'Unknown Site' + const reporterName = (incident?.reporter as { name: string } | null)?.name ?? 'Unknown' const reportedAt = incident?.reported_at ? new Date(incident.reported_at).toLocaleString('en-MY', { timeZone: 'Asia/Kuala_Lumpur' }) : '-'