CREATE TABLE "asset" ( "id" text PRIMARY KEY NOT NULL, "workspace_id" text NOT NULL, "project_id" text NOT NULL, "task_id" text, "activity_id" text, "object_key" text NOT NULL, "filename" text NOT NULL, "mime_type" text NOT NULL, "size" integer NOT NULL, "kind" text DEFAULT 'image' NOT NULL, "surface" text DEFAULT 'description' NOT NULL, "created_by" text, "created_at" timestamp DEFAULT now() NOT NULL, CONSTRAINT "asset_object_key_unique" UNIQUE("object_key") ); --> statement-breakpoint ALTER TABLE "asset" ADD CONSTRAINT "asset_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "asset" ADD CONSTRAINT "asset_project_id_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."project"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "asset" ADD CONSTRAINT "asset_task_id_task_id_fk" FOREIGN KEY ("task_id") REFERENCES "public"."task"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "asset" ADD CONSTRAINT "asset_activity_id_activity_id_fk" FOREIGN KEY ("activity_id") REFERENCES "public"."activity"("id") ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint ALTER TABLE "asset" ADD CONSTRAINT "asset_created_by_user_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE cascade;--> statement-breakpoint CREATE INDEX "asset_workspaceId_idx" ON "asset" USING btree ("workspace_id");--> statement-breakpoint CREATE INDEX "asset_projectId_idx" ON "asset" USING btree ("project_id");--> statement-breakpoint CREATE INDEX "asset_taskId_idx" ON "asset" USING btree ("task_id");--> statement-breakpoint CREATE INDEX "asset_activityId_idx" ON "asset" USING btree ("activity_id");