set template shift struc

This commit is contained in:
2025-10-10 23:42:11 +02:00
parent 168f2cfae3
commit 6247461754
21 changed files with 1627 additions and 369 deletions

View File

@@ -1,17 +1,37 @@
// backend/src/models/Shift.ts
export interface ShiftTemplate {
export interface Shift {
id: string;
name: string;
shifts: TemplateShift[];
description?: string;
isDefault: boolean;
createdBy: string;
createdAt: string;
shifts: ShiftSlot[];
}
export interface TemplateShift {
dayOfWeek: number; // 0-6
export interface ShiftSlot {
id: string;
shiftId: string;
dayOfWeek: number;
name: string;
startTime: string; // "08:00"
endTime: string; // "12:00"
startTime: string;
endTime: string;
requiredEmployees: number;
color?: string;
}
export interface CreateShiftRequest {
name: string;
description?: string;
isDefault: boolean;
shifts: Omit<ShiftSlot, 'id' | 'shiftId'>[];
}
export interface UpdateShiftSlotRequest {
name?: string;
description?: string;
isDefault?: boolean;
shifts?: Omit<ShiftSlot, 'id' | 'shiftId'>[];
}
export interface ShiftPlan {
@@ -32,4 +52,4 @@ export interface AssignedShift {
endTime: string;
requiredEmployees: number;
assignedEmployees: string[];
}
}

View File

@@ -1,30 +1,35 @@
// backend/src/models/ShiftTemplate.ts
export interface ShiftTemplate {
export interface TemplateShift {
id: string;
name: string;
description?: string;
isDefault: boolean;
createdBy: string;
createdAt: string;
shifts: TemplateShift[];
shifts: TemplateShiftSlot[];
}
export interface TemplateShift {
export interface TemplateShiftSlot {
id: string;
templateId: string;
dayOfWeek: number;
name: string;
startTime: string;
endTime: string;
timeRange: TemplateShiftTimeRange;
requiredEmployees: number;
color?: string;
}
export interface TemplateShiftTimeRange {
id: string;
name: string; // e.g., "Frühschicht", "Spätschicht"
startTime: string;
endTime: string;
}
export interface CreateShiftTemplateRequest {
name: string;
description?: string;
isDefault: boolean;
shifts: Omit<TemplateShift, 'id' | 'templateId'>[];
timeSlots: Omit<TemplateShiftTimeRange, 'id'>[];
}
export interface UpdateShiftTemplateRequest {
@@ -32,4 +37,5 @@ export interface UpdateShiftTemplateRequest {
description?: string;
isDefault?: boolean;
shifts?: Omit<TemplateShift, 'id' | 'templateId'>[];
timeSlots?: Omit<TemplateShiftTimeRange, 'id'>[];
}