-- +goose Up
-- +goose StatementBegin
BEGIN;

DROP INDEX IF EXISTS articles_fts_idx;
ALTER TABLE articles DROP COLUMN IF EXISTS fts_vector;

ALTER TABLE articles DROP COLUMN IF EXISTS author;

ALTER TABLE articles 
ADD COLUMN fts_vector tsvector GENERATED ALWAYS AS (
    to_tsvector('german', coalesce(title, '') || ' ' || coalesce(content, ''))
) STORED;
CREATE INDEX articles_fts_idx ON articles USING gin(fts_vector);

COMMIT;
-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
BEGIN; 

ALTER TABLE articles ADD COLUMN author VARCHAR(255) DEFAULT '';

DROP INDEX IF EXISTS articles_fts_idx;
ALTER TABLE articles DROP COLUMN IF EXISTS fts_vector;

ALTER TABLE articles 
ADD COLUMN fts_vector tsvector GENERATED ALWAYS AS (
    to_tsvector('german', coalesce(title, '') || ' ' || coalesce(content, '') || ' ' || coalesce(author, ''))
) STORED;

CREATE INDEX articles_fts_idx ON articles USING gin(fts_vector);

COMMIT;
-- +goose StatementEnd