// Background audio tracks from media/audio/audio.json.
// minio_object_key is null today; populated when audio files migrate to MinIO.
exports.up = (pgm) => {
  pgm.createTable('audio_tracks', {
    id:               'id',
    project_id:       { type: 'integer', notNull: true, references: 'videos', onDelete: 'CASCADE' },
    track_key:        { type: 'varchar(100)', notNull: true },  // cosmicpad, etc.
    source_file:      { type: 'varchar(500)' },
    minio_object_key: { type: 'varchar(500)' },
    volume:           { type: 'numeric', notNull: true, default: 1.0 },
    loop:             { type: 'boolean', notNull: true, default: false },
    overlap:          { type: 'varchar(20)' },              // "15s"
    ignore_pauses:    { type: 'boolean', notNull: true, default: false },
    duration_seconds: { type: 'numeric' },
    created_at:       { type: 'timestamptz', notNull: true, default: pgm.func('NOW()') },
    updated_at:       { type: 'timestamptz', notNull: true, default: pgm.func('NOW()') },
  });
  pgm.addConstraint('audio_tracks', 'audio_tracks_project_key_unique',
    'UNIQUE (project_id, track_key)');
};

exports.down = (pgm) => { pgm.dropTable('audio_tracks'); };
