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>
25 lines
996 B
SQL
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");
|
|
|