mirror of
http://172.20.10.11:3000/gitadmin/INSIGHT-MVP.git
synced 2026-06-25 00:16:41 +02:00
Backend: - DealType.isProjectType Boolean-Flag (Admin-konfigurierbar in CRM Settings) - Neue 1:1-Tabelle project_request_details (ON DELETE CASCADE): notes, workload, startDate, duration, onsitePercent, rateRemote, rateOnsite - Migration 20260313_project_request - ProjectRequestDto mit Validierung (0-100% fuer Auslastung/Vorort-Anteil) - Deals-Service: nested create + upsert fuer projectRequest Frontend: - DealFormModal: Vorgangsart-Dropdown an Anfang verschoben; Projektanfrage-Sektion erscheint conditional bei isProjectType=true (Beschreibung, Auslastung/Start, Laufzeit/Vorort-Anteil, Stundensaetze) - CrmSettingsPage: DealTypesConfig mit Projektanfrage-Checkbox + Tabellenspalte - types.ts: ProjectRequestDetails, CreateProjectRequestPayload, Deal.projectRequest Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
1.3 KiB
SQL
32 lines
1.3 KiB
SQL
-- Migration: 20260313_project_request
|
|
-- Beschreibung: isProjectType auf deal_types + ProjectRequestDetails Tabelle
|
|
|
|
-- AlterTable: is_project_type auf deal_types
|
|
ALTER TABLE "app_crm"."deal_types" ADD COLUMN "is_project_type" BOOLEAN NOT NULL DEFAULT false;
|
|
|
|
-- CreateTable: project_request_details (1:1 mit deals, ON DELETE CASCADE)
|
|
CREATE TABLE "app_crm"."project_request_details" (
|
|
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
|
|
"deal_id" UUID NOT NULL,
|
|
"notes" TEXT,
|
|
"workload" DECIMAL(5,2),
|
|
"start_date" TIMESTAMP(3),
|
|
"duration" VARCHAR(200),
|
|
"onsite_percent" DECIMAL(5,2),
|
|
"rate_remote" DECIMAL(10,2),
|
|
"rate_onsite" DECIMAL(10,2),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "project_request_details_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex (unique: jeder Deal max. 1 Projektanfrage)
|
|
CREATE UNIQUE INDEX "project_request_details_deal_id_key" ON "app_crm"."project_request_details"("deal_id");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "app_crm"."project_request_details"
|
|
ADD CONSTRAINT "project_request_details_deal_id_fkey"
|
|
FOREIGN KEY ("deal_id")
|
|
REFERENCES "app_crm"."deals"("id")
|
|
ON DELETE CASCADE ON UPDATE CASCADE;
|