ALTER TABLE "deals" ADD COLUMN "owner_commission" numeric(14, 2) DEFAULT 0 NOT NULL;--> statement-breakpoint ALTER TABLE "deals" ADD COLUMN "client_commission" numeric(14, 2) DEFAULT 0 NOT NULL;--> statement-breakpoint ALTER TABLE "deals" ADD COLUMN "owner_agent_id" integer;--> statement-breakpoint ALTER TABLE "deals" ADD COLUMN "client_agent_id" integer;--> statement-breakpoint ALTER TABLE "deals" ADD COLUMN "kind" text DEFAULT 'sale' NOT NULL;--> statement-breakpoint -- Прежние сделки остаются целиком за тем, кто их закрыл: сумма — на стороне объекта, если он есть, иначе на стороне клиента. UPDATE "deals" SET "owner_agent_id" = "agent_id", "client_agent_id" = "agent_id", "owner_commission" = CASE WHEN "lead_id" IS NOT NULL THEN "commission" ELSE 0 END, "client_commission" = CASE WHEN "lead_id" IS NOT NULL THEN 0 ELSE "commission" END;--> statement-breakpoint UPDATE "deals" d SET "kind" = 'rent' WHERE EXISTS (SELECT 1 FROM "leads" l WHERE l."id" = d."lead_id" AND l."deal_type" = 'rent') OR (NOT EXISTS (SELECT 1 FROM "leads" l WHERE l."id" = d."lead_id" AND l."deal_type" IS NOT NULL) AND EXISTS (SELECT 1 FROM "clients" c WHERE c."id" = d."client_id" AND c."kind" = 'tenant'));--> statement-breakpoint ALTER TABLE "deals" ALTER COLUMN "owner_agent_id" SET NOT NULL;--> statement-breakpoint ALTER TABLE "deals" ALTER COLUMN "client_agent_id" SET NOT NULL;--> statement-breakpoint ALTER TABLE "deals" ADD CONSTRAINT "deals_owner_agent_id_users_id_fk" FOREIGN KEY ("owner_agent_id") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "deals" ADD CONSTRAINT "deals_client_agent_id_users_id_fk" FOREIGN KEY ("client_agent_id") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;