import { apiRequestData } from "./http"; export type WeeklyReportProjectLink = { id: string; projectId: string; progressText: string | null; riskText: string | null; nextStepText: string | null; project: { id: string; projectNo: string; name: string } | null; }; export type WeeklyReport = { id: string; employeeId: string; weekStart: string; status: "draft" | "submitted"; highlightsText: string; blockersText: string; nextWeekText: string; needsHelp: boolean; submittedAt: string | null; createdAt: string | null; updatedAt: string | null; projectLinks: WeeklyReportProjectLink[]; }; export type WeeklyReportTeamItem = { employee: { id: string; employeeNo: string; name: string; title: string; department: { id: string; name: string } | null; }; report: WeeklyReport | null; }; export type WeeklyReportTeamSummary = { totalEmployees: number; submittedCount: number; draftCount: number; missingCount: number; needsHelpCount: number; }; export async function fetchMyWeeklyReport(weekStart?: string) { const suffix = weekStart ? `?weekStart=${encodeURIComponent(weekStart)}` : ""; return apiRequestData<{ item: WeeklyReport }>(`/api/weekly-reports/me${suffix}`); } export async function updateMyWeeklyReport(payload: { weekStart?: string; highlightsText?: string; blockersText?: string; nextWeekText?: string; needsHelp?: boolean; projectLinks?: Array<{ projectId: string; progressText?: string; riskText?: string; nextStepText?: string }>; }) { return apiRequestData<{ item: WeeklyReport }>("/api/weekly-reports/me", { method: "PUT", body: JSON.stringify(payload), }); } export async function submitMyWeeklyReport(payload: { weekStart?: string } = {}) { return apiRequestData<{ item: WeeklyReport }>("/api/weekly-reports/me/submit", { method: "POST", body: JSON.stringify(payload), }); } export async function fetchTeamWeeklyReports(weekStart?: string) { const suffix = weekStart ? `?weekStart=${encodeURIComponent(weekStart)}` : ""; return apiRequestData<{ weekStart: string; summary: WeeklyReportTeamSummary; items: WeeklyReportTeamItem[]; }>(`/api/weekly-reports/team${suffix}`); }