69 lines
2.6 KiB
MySQL
69 lines
2.6 KiB
MySQL
|
|
CREATE TABLE "attachments" (
|
||
|
|
"id" text PRIMARY KEY NOT NULL,
|
||
|
|
"message_id" text NOT NULL,
|
||
|
|
"guild_id" text NOT NULL,
|
||
|
|
"channel_id" text NOT NULL,
|
||
|
|
"thread_id" text,
|
||
|
|
"user_id" text NOT NULL,
|
||
|
|
"filename" text NOT NULL,
|
||
|
|
"size" integer NOT NULL,
|
||
|
|
"type" text NOT NULL,
|
||
|
|
"discord_url" text NOT NULL,
|
||
|
|
"uploaded_url" text,
|
||
|
|
"upload_status" text DEFAULT 'pending' NOT NULL,
|
||
|
|
"upload_error" text,
|
||
|
|
"created_at" bigint NOT NULL,
|
||
|
|
"uploaded_at" bigint
|
||
|
|
);
|
||
|
|
--> statement-breakpoint
|
||
|
|
CREATE TABLE "messages" (
|
||
|
|
"id" text PRIMARY KEY NOT NULL,
|
||
|
|
"guild_id" text NOT NULL,
|
||
|
|
"channel_id" text NOT NULL,
|
||
|
|
"thread_id" text,
|
||
|
|
"user_id" text NOT NULL,
|
||
|
|
"username" text NOT NULL,
|
||
|
|
"avatar_url" text,
|
||
|
|
"content" text NOT NULL,
|
||
|
|
"edited_content" text,
|
||
|
|
"created_at" bigint NOT NULL,
|
||
|
|
"edited_at" bigint,
|
||
|
|
"deleted_at" bigint,
|
||
|
|
"type" text DEFAULT 'text' NOT NULL,
|
||
|
|
"metadata" text,
|
||
|
|
"ai_status" text DEFAULT 'pending' NOT NULL,
|
||
|
|
"ai_moderation_flags" text,
|
||
|
|
"ai_moderation_score" real,
|
||
|
|
"ai_moderation_raw" text,
|
||
|
|
"ai_analysis" text,
|
||
|
|
"ai_analyzed_at" bigint,
|
||
|
|
"ai_error" text
|
||
|
|
);
|
||
|
|
--> statement-breakpoint
|
||
|
|
CREATE TABLE "muxer_jobs" (
|
||
|
|
"id" text PRIMARY KEY NOT NULL,
|
||
|
|
"data" text NOT NULL,
|
||
|
|
"status" text DEFAULT 'pending' NOT NULL,
|
||
|
|
"attempts" integer DEFAULT 0 NOT NULL,
|
||
|
|
"maxAttempts" integer DEFAULT 3 NOT NULL,
|
||
|
|
"createdAt" bigint NOT NULL,
|
||
|
|
"updatedAt" bigint NOT NULL,
|
||
|
|
"error" text
|
||
|
|
);
|
||
|
|
--> statement-breakpoint
|
||
|
|
CREATE TABLE "ui_state" (
|
||
|
|
"key" text PRIMARY KEY NOT NULL,
|
||
|
|
"value" text NOT NULL,
|
||
|
|
"updated_at" bigint NOT NULL
|
||
|
|
);
|
||
|
|
--> statement-breakpoint
|
||
|
|
ALTER TABLE "attachments" ADD CONSTRAINT "fk_attachments_message_id" FOREIGN KEY ("message_id") REFERENCES "public"."messages"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_attachments_channel" ON "attachments" USING btree ("channel_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_attachments_message" ON "attachments" USING btree ("message_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_attachments_status" ON "attachments" USING btree ("upload_status");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_messages_channel" ON "messages" USING btree ("channel_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_messages_user" ON "messages" USING btree ("user_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_messages_created" ON "messages" USING btree ("created_at");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_messages_thread" ON "messages" USING btree ("thread_id");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_muxer_jobs_status" ON "muxer_jobs" USING btree ("status");--> statement-breakpoint
|
||
|
|
CREATE INDEX "idx_muxer_jobs_createdAt" ON "muxer_jobs" USING btree ("createdAt");
|