mirror of
https://github.com/donpat1to/Schichtenplaner.git
synced 2025-12-01 15:05:45 +01:00
integrated database migrations
This commit is contained in:
@@ -3,9 +3,6 @@ import { Request, Response } from 'express';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { db } from '../services/databaseService.js';
|
||||
import {
|
||||
ShiftTemplate,
|
||||
TemplateShiftSlot,
|
||||
TemplateShiftTimeRange,
|
||||
CreateShiftTemplateRequest,
|
||||
UpdateShiftTemplateRequest
|
||||
} from '../models/ShiftTemplate.js';
|
||||
@@ -233,7 +230,7 @@ export const createTemplate = async (req: Request, res: Response): Promise<void>
|
||||
await db.run(
|
||||
`INSERT INTO template_time_slots (id, template_id, name, start_time, end_time, description)
|
||||
VALUES (?, ?, ?, ?, ?, ?)`,
|
||||
[timeSlotId, templateId, timeSlot.name, timeSlot.startTime, timeSlot.endTime, timeSlot.description]
|
||||
[timeSlotId, templateId, timeSlot.name, timeSlot.startTime, timeSlot.endTime, description]
|
||||
);
|
||||
}
|
||||
|
||||
@@ -316,7 +313,7 @@ export const updateTemplate = async (req: Request, res: Response): Promise<void>
|
||||
await db.run(
|
||||
`INSERT INTO template_time_slots (id, template_id, name, start_time, end_time, description)
|
||||
VALUES (?, ?, ?, ?, ?, ?)`,
|
||||
[timeSlotId, id, timeSlot.name, timeSlot.startTime, timeSlot.endTime, timeSlot.description]
|
||||
[timeSlotId, id, timeSlot.name, timeSlot.startTime, timeSlot.endTime, description]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
-- Add employee fields
|
||||
ALTER TABLE users ADD COLUMN employee_type TEXT CHECK(employee_type IN ('chef', 'neuling', 'erfahren'));
|
||||
ALTER TABLE users ADD COLUMN is_sufficiently_independent BOOLEAN DEFAULT FALSE;
|
||||
ALTER TABLE users ADD COLUMN last_login TEXT DEFAULT NULL;
|
||||
@@ -1,2 +0,0 @@
|
||||
-- backend/src/database/migrations/003_add_shift_name.sql
|
||||
ALTER TABLE assigned_shifts ADD COLUMN name TEXT;
|
||||
@@ -27,11 +27,21 @@ CREATE TABLE IF NOT EXISTS shift_templates (
|
||||
CREATE TABLE IF NOT EXISTS template_shifts (
|
||||
id TEXT PRIMARY KEY,
|
||||
template_id TEXT NOT NULL,
|
||||
time_range_id TEXT NOT NULL,
|
||||
day_of_week INTEGER NOT NULL CHECK (day_of_week >= 1 AND day_of_week <= 7),
|
||||
required_employees INTEGER DEFAULT 1,
|
||||
color TEXT DEFAULT '#3498db',
|
||||
FOREIGN KEY (template_id) REFERENCES shift_templates(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (time_range_id) REFERENCES template_time_slots(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Tabelle für Zeitbereiche in den Vorlagen
|
||||
CREATE TABLE IF NOT EXISTS template_time_slots (
|
||||
id TEXT PRIMARY KEY,
|
||||
template_id TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
start_time TEXT NOT NULL,
|
||||
end_time TEXT NOT NULL,
|
||||
required_employees INTEGER DEFAULT 1,
|
||||
FOREIGN KEY (template_id) REFERENCES shift_templates(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ export interface TemplateShift {
|
||||
|
||||
export interface TemplateShiftSlot {
|
||||
id: string;
|
||||
templateId: string;
|
||||
dayOfWeek: number;
|
||||
timeRange: TemplateShiftTimeRange;
|
||||
requiredEmployees: number;
|
||||
@@ -28,14 +29,14 @@ export interface CreateShiftTemplateRequest {
|
||||
name: string;
|
||||
description?: string;
|
||||
isDefault: boolean;
|
||||
shifts: Omit<TemplateShift, 'id' | 'templateId'>[];
|
||||
timeSlots: Omit<TemplateShiftTimeRange, 'id'>[];
|
||||
shifts: Omit<TemplateShiftSlot, 'id' | 'templateId'>[];
|
||||
timeSlots: TemplateShiftTimeRange[];
|
||||
}
|
||||
|
||||
export interface UpdateShiftTemplateRequest {
|
||||
name?: string;
|
||||
description?: string;
|
||||
isDefault?: boolean;
|
||||
shifts?: Omit<TemplateShift, 'id' | 'templateId'>[];
|
||||
timeSlots?: Omit<TemplateShiftTimeRange, 'id'>[];
|
||||
shifts?: Omit<TemplateShiftSlot, 'id' | 'templateId'>[];
|
||||
timeSlots?: TemplateShiftTimeRange[];
|
||||
}
|
||||
Reference in New Issue
Block a user