feat(db): add sequences and sequence_clips tables
This commit is contained in:
parent
0964645910
commit
b12d8c619a
1 changed files with 35 additions and 0 deletions
35
services/mam-api/src/db/schema_patch_editor.sql
Normal file
35
services/mam-api/src/db/schema_patch_editor.sql
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
-- services/mam-api/src/db/schema_patch_editor.sql
|
||||||
|
-- Run once against the Wild Dragon PostgreSQL database.
|
||||||
|
|
||||||
|
-- Named timelines within a project (multiple per project, like Premiere)
|
||||||
|
CREATE TABLE IF NOT EXISTS sequences (
|
||||||
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||||
|
project_id UUID NOT NULL REFERENCES projects ON DELETE CASCADE,
|
||||||
|
name TEXT NOT NULL DEFAULT 'Sequence 1',
|
||||||
|
frame_rate NUMERIC(6,3) NOT NULL DEFAULT 59.94,
|
||||||
|
width INTEGER NOT NULL DEFAULT 1920,
|
||||||
|
height INTEGER NOT NULL DEFAULT 1080,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||||
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_sequences_project_id ON sequences(project_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_sequences_updated_at ON sequences(updated_at DESC);
|
||||||
|
|
||||||
|
-- Clips placed on a sequence timeline
|
||||||
|
CREATE TABLE IF NOT EXISTS sequence_clips (
|
||||||
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||||
|
sequence_id UUID NOT NULL REFERENCES sequences ON DELETE CASCADE,
|
||||||
|
asset_id UUID NOT NULL REFERENCES assets ON DELETE CASCADE,
|
||||||
|
track INTEGER NOT NULL DEFAULT 0,
|
||||||
|
-- track encoding: 0=V1, 1=V2, 100=A1, 101=A2
|
||||||
|
timeline_in_frames BIGINT NOT NULL,
|
||||||
|
timeline_out_frames BIGINT NOT NULL,
|
||||||
|
source_in_frames BIGINT NOT NULL DEFAULT 0,
|
||||||
|
source_out_frames BIGINT NOT NULL,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||||
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_sequence_clips_sequence_id ON sequence_clips(sequence_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_sequence_clips_track_position ON sequence_clips(sequence_id, track, timeline_in_frames);
|
||||||
Loading…
Reference in a new issue