Revízny systém - kompletná implementácia

- Backend: CRUD revízií, schedule endpoint (agregovaný plán), skip revízia, stats
- Shared utility revisionSchedule.ts - centralizovaná logika výpočtu cyklov
- Equipment detail s revíznym plánom, históriou a prílohami
- Frontend: RevisionsList s tabmi (nadchádzajúce/po termíne/vykonané/preskočené)
- Pozičné labeling cyklov (eliminuje drift 4×90≠365)
- EquipmentRevisionSchedule model (many-to-many typy revízií)
- Aktualizovaná dokumentácia HELPDESK_INIT_V2.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-23 21:59:23 +01:00
parent 2ca0c4f4d8
commit da265ff097
28 changed files with 4587 additions and 149 deletions

View File

@@ -21,14 +21,39 @@ export interface CreateEquipmentData {
partNumber?: string;
serialNumber?: string;
installDate?: string;
revisionCycleStart?: string;
warrantyEnd?: string;
warrantyStatus?: string;
description?: string;
notes?: string;
active?: boolean;
revisionTypeIds?: string[];
tempId?: string; // For pending file uploads
}
export interface EquipmentScheduleItem {
revisionType: { id: string; name: string; color?: string; intervalDays: number };
lastPerformed: string | null;
nextDueDate: string | null;
upcomingCycles: string[];
}
export interface EquipmentSchedule {
cycleAnchor: string;
schedules: EquipmentScheduleItem[];
upcomingDates: Array<{
date: string;
label: string;
revisionTypes: Array<{
id: string;
name: string;
color?: string;
intervalDays: number;
cycleNumber: number;
}>;
}>;
}
export type UpdateEquipmentData = Partial<CreateEquipmentData>;
export interface CreateRevisionData {
@@ -73,4 +98,8 @@ export const equipmentApi = {
createRevision: (equipmentId: string, data: CreateRevisionData) =>
post<Revision>(`/equipment/${equipmentId}/revisions`, data),
// Schedule
getSchedule: (equipmentId: string, days?: number) =>
get<EquipmentSchedule>(`/equipment/${equipmentId}/schedule${days ? `?days=${days}` : ''}`),
};