BEGIN; CREATE TABLE "team_function_configs" ( "id" TEXT NOT NULL, "organization_unit_id" TEXT NOT NULL, "lead_employee_profile_id" TEXT, "description" TEXT NOT NULL DEFAULT '', "branches" JSONB NOT NULL DEFAULT '[]', "revision" INTEGER NOT NULL DEFAULT 1, "updated_by_user_id" TEXT NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "team_function_configs_pkey" PRIMARY KEY ("id"), CONSTRAINT "team_function_configs_revision_check" CHECK ("revision" > 0) ); CREATE UNIQUE INDEX "team_function_configs_organization_unit_id_key" ON "team_function_configs"("organization_unit_id"); ALTER TABLE "team_function_configs" ADD CONSTRAINT "team_function_configs_organization_unit_id_fkey" FOREIGN KEY ("organization_unit_id") REFERENCES "organization_units"("id") ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE "team_function_configs" ADD CONSTRAINT "team_function_configs_lead_employee_profile_id_fkey" FOREIGN KEY ("lead_employee_profile_id") REFERENCES "performance_survey_employee_profiles"("id") ON DELETE RESTRICT ON UPDATE CASCADE; CREATE TABLE "team_function_config_audits" ( "id" TEXT NOT NULL, "config_id" TEXT NOT NULL, "actor_user_id" TEXT NOT NULL, "before" JSONB, "after" JSONB NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "team_function_config_audits_pkey" PRIMARY KEY ("id") ); CREATE INDEX "team_function_config_audits_config_id_created_at_idx" ON "team_function_config_audits"("config_id", "created_at"); ALTER TABLE "team_function_config_audits" ADD CONSTRAINT "team_function_config_audits_config_id_fkey" FOREIGN KEY ("config_id") REFERENCES "team_function_configs"("id") ON DELETE RESTRICT ON UPDATE CASCADE; COMMIT;