phase 0 & 1 , onto the next logic

This commit is contained in:
user
2026-03-01 06:17:43 +02:00
parent 5a5f565377
commit c74523e4bc
10 changed files with 1815 additions and 7 deletions

View File

@@ -0,0 +1,56 @@
CREATE TABLE "mobile_device" (
"id" serial PRIMARY KEY NOT NULL,
"external_device_id" text NOT NULL,
"name" text NOT NULL,
"manufacturer" text NOT NULL,
"model" text NOT NULL,
"android_version" text NOT NULL,
"owner_user_id" text NOT NULL,
"last_ping_at" timestamp,
"created_at" timestamp NOT NULL,
"updated_at" timestamp NOT NULL
);
--> statement-breakpoint
CREATE TABLE "mobile_media_asset" (
"id" serial PRIMARY KEY NOT NULL,
"device_id" integer NOT NULL,
"external_media_id" text,
"file_id" text NOT NULL,
"mime_type" text NOT NULL,
"filename" text,
"captured_at" timestamp,
"size_bytes" integer,
"hash" text,
"metadata" json,
"created_at" timestamp NOT NULL,
"updated_at" timestamp NOT NULL
);
--> statement-breakpoint
CREATE TABLE "mobile_sms" (
"id" serial PRIMARY KEY NOT NULL,
"device_id" integer NOT NULL,
"external_message_id" text,
"sender" text NOT NULL,
"recipient" text,
"body" text NOT NULL,
"sent_at" timestamp NOT NULL,
"received_at" timestamp,
"dedup_hash" text NOT NULL,
"raw_payload" json,
"created_at" timestamp NOT NULL,
"updated_at" timestamp NOT NULL
);
--> statement-breakpoint
ALTER TABLE "mobile_device" ADD CONSTRAINT "mobile_device_owner_user_id_user_id_fk" FOREIGN KEY ("owner_user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "mobile_media_asset" ADD CONSTRAINT "mobile_media_asset_device_id_mobile_device_id_fk" FOREIGN KEY ("device_id") REFERENCES "public"."mobile_device"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "mobile_media_asset" ADD CONSTRAINT "mobile_media_asset_file_id_file_id_fk" FOREIGN KEY ("file_id") REFERENCES "public"."file"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "mobile_sms" ADD CONSTRAINT "mobile_sms_device_id_mobile_device_id_fk" FOREIGN KEY ("device_id") REFERENCES "public"."mobile_device"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE UNIQUE INDEX "mobile_device_external_device_id_uq" ON "mobile_device" USING btree ("external_device_id");--> statement-breakpoint
CREATE INDEX "mobile_device_owner_user_id_idx" ON "mobile_device" USING btree ("owner_user_id");--> statement-breakpoint
CREATE INDEX "mobile_device_last_ping_at_idx" ON "mobile_device" USING btree ("last_ping_at");--> statement-breakpoint
CREATE INDEX "mobile_media_asset_device_created_at_idx" ON "mobile_media_asset" USING btree ("device_id","created_at");--> statement-breakpoint
CREATE UNIQUE INDEX "mobile_media_asset_device_external_media_uq" ON "mobile_media_asset" USING btree ("device_id","external_media_id");--> statement-breakpoint
CREATE UNIQUE INDEX "mobile_media_asset_file_id_uq" ON "mobile_media_asset" USING btree ("file_id");--> statement-breakpoint
CREATE INDEX "mobile_sms_device_sent_at_idx" ON "mobile_sms" USING btree ("device_id","sent_at");--> statement-breakpoint
CREATE UNIQUE INDEX "mobile_sms_device_dedup_hash_uq" ON "mobile_sms" USING btree ("device_id","dedup_hash");--> statement-breakpoint
CREATE UNIQUE INDEX "mobile_sms_device_external_msg_uq" ON "mobile_sms" USING btree ("device_id","external_message_id");

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,13 @@
"when": 1772335785371,
"tag": "0001_silly_venus",
"breakpoints": true
},
{
"idx": 2,
"version": "7",
"when": 1772338633827,
"tag": "0002_massive_captain_britain",
"breakpoints": true
}
]
}