TeamVis Self-Host-Bundle v0.31.0

This commit is contained in:
TeamVis Release
2026-06-25 16:43:22 +02:00
commit 138502b675
68 changed files with 3766 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
-- =====================================================================
-- 0000 — Basis-Schema (employees + admin_users)
-- =====================================================================
-- Die ursprünglichen Kern-Tabellen wurden früher direkt in Supabase Studio
-- angelegt und waren NICHT als Migration erfasst — die folgenden
-- Migrationen (0001 ff.) setzen sie voraus und erweitern sie nur additiv
-- (alle per `add column if not exists`). Auf einer komplett leeren DB fehlten
-- sie dadurch, womit `bundle-migrations` allein keine frische Instanz
-- bootstrappen konnte.
--
-- Diese Migration schließt die Lücke. Sie ist bewusst `if not exists`:
-- auf bestehenden Instanzen (Prod/Demo) ein No-Op, auf leeren DBs legt sie
-- die Basis. Spaltenstand entspricht dem aktuellen, generierten Typ
-- (lib/database.types.ts) — alle späteren Migrationen sind additiv und
-- bleiben damit No-Ops auf diesen Spalten.
create table if not exists public.employees (
id uuid primary key default gen_random_uuid(),
slug text not null unique,
academic_title text,
qualification text,
qualification_en text,
first_name text not null,
last_name text not null,
position text not null,
position_en text,
company text not null,
org_unit_id uuid,
address text,
street text,
postal_code text,
city text,
email text not null,
phone_office text not null,
phone_mobile text,
website text,
linkedin_url text,
xing_url text,
calendar_url text,
photo_url text,
show_mobile boolean not null default false,
show_linkedin boolean not null default false,
show_xing boolean not null default false,
active boolean not null default true,
calendar_embed boolean not null default false,
successor_employee_id uuid,
successor_note text,
location_id uuid,
person_id uuid,
trusted_token text,
trusted_token_expires_at timestamptz,
trusted_token_created_at timestamptz,
trusted_reveal text[] not null default '{}',
created_at timestamptz not null default now(),
updated_at timestamptz not null default now()
);
create table if not exists public.admin_users (
id uuid primary key default gen_random_uuid(),
email text not null unique,
password_hash text not null,
created_at timestamptz not null default now(),
name text,
role text not null default 'admin',
invited_by uuid,
last_login_at timestamptz,
totp_secret text,
totp_enabled boolean not null default false,
totp_backup_codes text[] not null default '{}',
totp_enabled_at timestamptz
);