b72d037141
Bug: crm_v2.html, admin_users.html, ostali pozivali /api/v2/auth/me
koji ne postoji u backendu (postoji /api/auth/me bez v2).
401 redirect na /login?reason=unauthorized iako Damir prijavljen.
Fix:
- Frontend: replace /api/v2/auth/me → /api/auth/me u svim file-ovima
- Backend: dodan defensive alias @app.get('/api/v2/auth/me')
59 lines
3.0 KiB
PL/PgSQL
59 lines
3.0 KiB
PL/PgSQL
-- ═══════════════════════════════════════════════════════════════════
|
|
-- 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;
|