43 lines
2.7 KiB
MySQL
43 lines
2.7 KiB
MySQL
|
|
CREATE TABLE "residential_clients" (
|
||
|
|
"id" text PRIMARY KEY NOT NULL,
|
||
|
|
"port_id" text NOT NULL,
|
||
|
|
"full_name" text NOT NULL,
|
||
|
|
"email" text,
|
||
|
|
"phone" text,
|
||
|
|
"place_of_residence" text,
|
||
|
|
"preferred_contact_method" text,
|
||
|
|
"status" text DEFAULT 'prospect' NOT NULL,
|
||
|
|
"source" text,
|
||
|
|
"notes" text,
|
||
|
|
"archived_at" timestamp with time zone,
|
||
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
||
|
|
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
||
|
|
);
|
||
|
|
--> statement-breakpoint
|
||
|
|
CREATE TABLE "residential_interests" (
|
||
|
|
"id" text PRIMARY KEY NOT NULL,
|
||
|
|
"port_id" text NOT NULL,
|
||
|
|
"residential_client_id" text NOT NULL,
|
||
|
|
"pipeline_stage" text DEFAULT 'new' NOT NULL,
|
||
|
|
"source" text,
|
||
|
|
"notes" text,
|
||
|
|
"preferences" text,
|
||
|
|
"assigned_to" text,
|
||
|
|
"date_first_contact" timestamp with time zone,
|
||
|
|
"date_last_contact" timestamp with time zone,
|
||
|
|
"archived_at" timestamp with time zone,
|
||
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
||
|
|
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
||
|
|
);
|
||
|
|
--> statement-breakpoint
|
||
|
|
ALTER TABLE "residential_clients" ADD CONSTRAINT "residential_clients_port_id_ports_id_fk" FOREIGN KEY ("port_id") REFERENCES "public"."ports"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
||
|
|
ALTER TABLE "residential_interests" ADD CONSTRAINT "residential_interests_port_id_ports_id_fk" FOREIGN KEY ("port_id") REFERENCES "public"."ports"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
||
|
|
ALTER TABLE "residential_interests" ADD CONSTRAINT "residential_interests_residential_client_id_residential_clients_id_fk" FOREIGN KEY ("residential_client_id") REFERENCES "public"."residential_clients"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_clients_port" ON "residential_clients" USING btree ("port_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_clients_email" ON "residential_clients" USING btree ("email");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_clients_archived" ON "residential_clients" USING btree ("port_id","archived_at");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_interests_port" ON "residential_interests" USING btree ("port_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_interests_client" ON "residential_interests" USING btree ("residential_client_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_interests_stage" ON "residential_interests" USING btree ("port_id","pipeline_stage");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_interests_assigned" ON "residential_interests" USING btree ("assigned_to");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_residential_interests_archived" ON "residential_interests" USING btree ("port_id","archived_at");
|