Files
craftvia/prisma/migrations/20260915120000_zeiterfassung_freigabe/migration.sql
T
msolarczekandClaude Opus 5 03a2ccab4f L12 Zeiterfassung: Datenmodell, Rechte und Events für die Zeitfreigabe
Migration zeiterfassung_freigabe (TimeEntry source/approvalStatus/pendingChange,
WorkSession.manual), Rechte field:record_own_time und time:approve,
PII approvedById, Events time.approval_requested/approved/rejected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 09:29:20 +02:00

25 lines
996 B
SQL

-- L12 Zeiterfassung: approval workflow for manual time entries and correction proposals.
-- Additive columns only (existing rows: tracked + approved = unchanged behaviour). No new table -> no RLS/TENANT_MODELS change.
-- CreateEnum
CREATE TYPE "TimeEntrySource" AS ENUM ('tracked', 'manual');
-- CreateEnum
CREATE TYPE "TimeApprovalStatus" AS ENUM ('approved', 'pending', 'rejected');
-- AlterTable
ALTER TABLE "time_entries" ADD COLUMN "approval_status" "TimeApprovalStatus" NOT NULL DEFAULT 'approved',
ADD COLUMN "approved_at" TIMESTAMP(3),
ADD COLUMN "approved_by_id" TEXT,
ADD COLUMN "note" TEXT,
ADD COLUMN "pending_change" JSONB,
ADD COLUMN "rejection_reason" TEXT,
ADD COLUMN "source" "TimeEntrySource" NOT NULL DEFAULT 'tracked';
-- AlterTable
ALTER TABLE "work_sessions" ADD COLUMN "manual" BOOLEAN NOT NULL DEFAULT false;
-- CreateIndex
CREATE INDEX "time_entries_tenant_id_approval_status_idx" ON "time_entries"("tenant_id", "approval_status");