CREATE VIRTUAL TABLE IF NOT EXISTS media_fts USING fts5 (
  title,
  artist,
  album,
  genre,
  description,
  file_name,
  content = 'media_items',
  content_rowid = 'rowid'
);

CREATE TRIGGER IF NOT EXISTS media_fts_insert
AFTER INSERT ON media_items
BEGIN
INSERT INTO
  media_fts (
    rowid,
    title,
    artist,
    album,
    genre,
    description,
    file_name
  )
VALUES
  (
    new.rowid,
    new.title,
    new.artist,
    new.album,
    new.genre,
    new.description,
    new.file_name
  );

END;

CREATE TRIGGER IF NOT EXISTS media_fts_update
AFTER
UPDATE ON media_items
BEGIN
INSERT INTO
  media_fts (
    media_fts,
    rowid,
    title,
    artist,
    album,
    genre,
    description,
    file_name
  )
VALUES
  (
    'delete',
    old.rowid,
    old.title,
    old.artist,
    old.album,
    old.genre,
    old.description,
    old.file_name
  );

INSERT INTO
  media_fts (
    rowid,
    title,
    artist,
    album,
    genre,
    description,
    file_name
  )
VALUES
  (
    new.rowid,
    new.title,
    new.artist,
    new.album,
    new.genre,
    new.description,
    new.file_name
  );

END;

CREATE TRIGGER IF NOT EXISTS media_fts_delete
AFTER DELETE ON media_items
BEGIN
INSERT INTO
  media_fts (
    media_fts,
    rowid,
    title,
    artist,
    album,
    genre,
    description,
    file_name
  )
VALUES
  (
    'delete',
    old.rowid,
    old.title,
    old.artist,
    old.album,
    old.genre,
    old.description,
    old.file_name
  );

END;
