CREATE TABLE families (
    id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    slug        TEXT NOT NULL UNIQUE,
    name_scientific TEXT NOT NULL,
    name_en     TEXT,
    name_de     TEXT,
    description TEXT,
    created_at  TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at  TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX idx_families_search ON families
    USING GIN (to_tsvector('english',
        coalesce(name_scientific,'') || ' ' ||
        coalesce(name_en,'') || ' ' ||
        coalesce(name_de,'')));
