-- Performance optimizacije za rast saobraćaja (cilj 1M+ poseta mesečno).
--
-- 1) pg_trgm ekstenzija + GIN indeksi za fuzzy text pretragu (Company.name,
--    Company.description). Postgres `ILIKE %term%` bez pg_trgm radi full scan;
--    sa pg_trgm + GIN je O(log n) i radi i za 100k+ profila bez problema.
--
-- 2) Composite indeks za inbox brojač nepročitanih notifikacija po korisniku —
--    najčešći query u portal layoutu, izvršava se na svakom page-loadu.
--
-- 3) Indeks na ReviewVote po (reviewId, voterIp) — koristi se za anti-spam
--    proveru da li je isti IP već glasao za istu recenziju.

CREATE EXTENSION IF NOT EXISTS pg_trgm;

CREATE INDEX IF NOT EXISTS "Company_name_trgm_idx"
  ON "Company" USING GIN ("name" gin_trgm_ops);

CREATE INDEX IF NOT EXISTS "Company_description_trgm_idx"
  ON "Company" USING GIN ("description" gin_trgm_ops);

CREATE INDEX IF NOT EXISTS "Notification_userId_readAt_idx"
  ON "Notification" ("userId", "readAt");

CREATE INDEX IF NOT EXISTS "Notification_clientAccountId_readAt_idx"
  ON "Notification" ("clientAccountId", "readAt");
