CREATE TABLE IF NOT EXISTS categories (
  tag TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  sort_order INTEGER NOT NULL DEFAULT 100,
  is_active BOOLEAN NOT NULL DEFAULT TRUE
);

INSERT INTO categories(tag, name, sort_order) VALUES
  ('odezhda', 'Одежда', 1),
  ('snaryazhenie', 'Снаряжение', 2),
  ('bronya', 'Броня', 3),
  ('aksessuary', 'Аксессуары', 4),
  ('svyaz', 'Связь', 5),
  ('patchi', 'Патчи', 6),
  ('navigaciya', 'Навигация', 7),
  ('pricely', 'Прицелы', 8),
  ('nochnye-pribory', 'Ночные приборы', 9),
  ('medicina', 'Медицина', 10),
  ('svet', 'Свет', 11),
  ('elektronika', 'Электроника', 12),
  ('nozhi', 'Ножи и мультитулы', 13),
  ('oruzheynyy-obves', 'Оружейный обвес', 14),
  ('praktika', 'Практика', 15),
  ('teoriya', 'Теория', 16),
  ('pushki', 'Оружие', 17)
ON CONFLICT(tag) DO UPDATE SET
  name=EXCLUDED.name,
  sort_order=EXCLUDED.sort_order;

UPDATE articles a
SET category_name=c.name,
    updated_at=NOW()
FROM categories c
WHERE a.category_tag=c.tag
  AND a.category_name<>c.name;
