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>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
-- 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");
|
||||
|
||||
Reference in New Issue
Block a user