Files
ressourcenplanung/server/schema.sql
T
admin 60dd58d31f Vorname/Nachname für Mitarbeiter, Aufgaben-Duplizierung, Zeitstrahl im Zeitplan
- employees: name-Feld in first_name/last_name aufgeteilt (Schema, API,
  Formular, alle Namensanzeigen)
- Aufgaben können mit neuem Start-/Enddatum dupliziert werden
  (POST /api/tasks/:id/duplicate übernimmt Name, Stunden, Status und
  Zuweisungen 1:1, nur die Termine ändern sich)
- Zeitplan zeigt jetzt einen Zeitstrahl mit Kalenderwochen und
  Tagesnummern oberhalb der Projekt-Balken
2026-07-04 00:09:41 +02:00

56 lines
1.6 KiB
SQL

PRAGMA foreign_keys = ON;
CREATE TABLE IF NOT EXISTS employees (
id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT,
role TEXT,
weekly_capacity_hours REAL NOT NULL DEFAULT 40
);
CREATE TABLE IF NOT EXISTS teams (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
description TEXT
);
CREATE TABLE IF NOT EXISTS team_members (
team_id INTEGER NOT NULL REFERENCES teams(id) ON DELETE CASCADE,
employee_id INTEGER NOT NULL REFERENCES employees(id) ON DELETE CASCADE,
PRIMARY KEY (team_id, employee_id)
);
CREATE TABLE IF NOT EXISTS projects (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
description TEXT,
start_date TEXT,
end_date TEXT,
color TEXT DEFAULT '#4f46e5'
);
CREATE TABLE IF NOT EXISTS tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
name TEXT NOT NULL,
start_date TEXT NOT NULL,
end_date TEXT NOT NULL,
estimated_hours REAL NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'geplant'
);
CREATE TABLE IF NOT EXISTS task_dependencies (
task_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
depends_on_task_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
PRIMARY KEY (task_id, depends_on_task_id)
);
CREATE TABLE IF NOT EXISTS assignments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
task_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
employee_id INTEGER NOT NULL REFERENCES employees(id) ON DELETE CASCADE,
allocated_hours_per_week REAL NOT NULL DEFAULT 0,
UNIQUE (task_id, employee_id)
);