-- ═══════════════════════════════════════════════════════════════════
-- email_templates_20260505.sql | v1.0.0 | 2026-05-05
-- Author: Damir Radulić <dradulic@outlook.com> / damir@rinet.one
-- Lokacija: /opt/pgz-sport/migrations/email_templates_20260505.sql
-- Svrha: CRM v2 — E-mail templates tab (CRUD predložaka za masovni e-mail).
--        Idempotent: ostavlja postojeću tablicu netaknutom + osigurava
--        3 seed predloška (clanarina_opomena, lijecnicki_podsjetnik,
--        obrazac_potpis).
-- ═══════════════════════════════════════════════════════════════════

BEGIN;

CREATE TABLE IF NOT EXISTS pgz_sport.email_templates (
  id           SERIAL PRIMARY KEY,
  code         TEXT NOT NULL UNIQUE,
  naziv        TEXT NOT NULL,
  kategorija   TEXT,
  subject_tpl  TEXT NOT NULL,
  body_tpl     TEXT NOT NULL,
  variables    JSONB,
  active       BOOLEAN DEFAULT true,
  created_at   TIMESTAMPTZ DEFAULT now(),
  updated_at   TIMESTAMPTZ DEFAULT now()
);

-- Indexes
CREATE INDEX IF NOT EXISTS ix_email_templates_kategorija
  ON pgz_sport.email_templates (kategorija);
CREATE INDEX IF NOT EXISTS ix_email_templates_active
  ON pgz_sport.email_templates (active);

-- Seed (skip if already present)
INSERT INTO pgz_sport.email_templates (code, naziv, kategorija, subject_tpl, body_tpl, variables, active)
VALUES
  ('pristupnica',
   'Pristupnica klubu — predložak',
   'obrasci',
   'Pristupnica za klub {{naziv_kluba}}',
   E'Poštovani,\n\nu prilogu Vam šaljemo pristupnicu za klub {{naziv_kluba}} (sezona {{sezona}}).\nMolimo da ispunjenu i potpisanu pristupnicu vratite najkasnije do {{rok}}.\n\nLijep pozdrav,\nPGŽ Sport',
   '{"naziv_kluba":"string","sezona":"string","rok":"date"}'::jsonb,
   true),
  ('suglasnost',
   'Suglasnost roditelja — predložak',
   'obrasci',
   'Suglasnost roditelja za {{ime_djeteta}}',
   E'Poštovani roditelju/skrbniku,\n\nMolimo Vas da popunite priloženu suglasnost za sudjelovanje djeteta {{ime_djeteta}} u programu kluba {{naziv_kluba}}.\nSuglasnost je potrebno potpisati i vratiti najkasnije do {{rok}}.\n\nHvala na razumijevanju,\nPGŽ Sport',
   '{"ime_djeteta":"string","naziv_kluba":"string","rok":"date"}'::jsonb,
   true),
  ('putni-nalog',
   'Putni nalog — predložak',
   'obrasci',
   'Putni nalog #{{nalog_broj}} — {{odrediste}}',
   E'Pozdrav,\n\nIzdaje se putni nalog broj {{nalog_broj}} za putovanje u {{odrediste}} u razdoblju od {{datum_od}} do {{datum_do}}.\nSvrha: {{svrha}}\nProcijenjeni trošak: {{iznos}} EUR\n\nMolimo da po povratku dostavite obračun s pripadajućim računima.\n\nPGŽ Sport',
   '{"nalog_broj":"string","odrediste":"string","datum_od":"date","datum_do":"date","svrha":"string","iznos":"number"}'::jsonb,
   true)
ON CONFLICT (code) DO NOTHING;

COMMIT;
