Introduce SegmentsSidebar component and supporting reader UI for segment-level navigation and inspection. Add TTS segments manifest and clear API endpoints to enable efficient retrieval and management of segment variants. Update TTS segment schema to include settings_hash for improved lookup and indexing, and adjust indexes to use settings_hash instead of settings_json. Update contexts and types to support segment variant display and interaction. This enhances document navigation and TTS segment management for end users.
26 lines
No EOL
1.2 KiB
SQL
26 lines
No EOL
1.2 KiB
SQL
CREATE TABLE "tts_segments" (
|
|
"segment_id" text NOT NULL,
|
|
"user_id" text NOT NULL,
|
|
"document_id" text NOT NULL,
|
|
"reader_type" text NOT NULL,
|
|
"document_version" bigint NOT NULL,
|
|
"segment_index" integer NOT NULL,
|
|
"locator_json" text,
|
|
"settings_hash" text NOT NULL,
|
|
"settings_json" jsonb NOT NULL,
|
|
"text_hash" text NOT NULL,
|
|
"text_length" integer DEFAULT 0 NOT NULL,
|
|
"audio_key" text,
|
|
"audio_format" text DEFAULT 'mp3' NOT NULL,
|
|
"duration_ms" integer,
|
|
"alignment_json" text,
|
|
"status" text DEFAULT 'pending' NOT NULL,
|
|
"error" text,
|
|
"created_at" bigint DEFAULT (extract(epoch from now()) * 1000)::bigint,
|
|
"updated_at" bigint DEFAULT (extract(epoch from now()) * 1000)::bigint,
|
|
CONSTRAINT "tts_segments_segment_id_user_id_pk" PRIMARY KEY("segment_id","user_id")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "tts_segments" ADD CONSTRAINT "tts_segments_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
CREATE INDEX "idx_tts_segments_lookup" ON "tts_segments" USING btree ("user_id","document_id","document_version","settings_hash");--> statement-breakpoint
|
|
CREATE INDEX "idx_tts_segments_doc_index" ON "tts_segments" USING btree ("user_id","document_id","segment_index"); |