-- 1. ДЕТАЛЕН ПРЕГЛЕД НА СМЕТКИ (Со име на клиент и салдо)
CREATE OR REPLACE VIEW vw_smetki_detali AS
SELECT
    s.smetka_id, s.broj_smetka, s.tip_smetka, s.saldo, v.kod AS valuta,
    k.ime, k.prezime, k.embg, s.status
FROM smetka s
JOIN klient k ON s.klient_id = k.klient_id
JOIN valuta v ON s.valuta_id = v.valuta_id;

-- 2. МОНИТОРИНГ НА КАРТИЧКИ (Поврзани со сопственикот)
CREATE OR REPLACE VIEW vw_karticki_klienti AS
SELECT
    ka.broj_karticka, ka.status AS karticka_status, ka.datum_istekuvanje,
    tk.ime AS tip_karticka, s.broj_smetka,
    k.ime, k.prezime
FROM karticka ka
JOIN tip_karticka tk ON ka.tip_karticka_id = tk.tip_karticka_id
JOIN smetka s ON ka.smetka_id = s.smetka_id
JOIN klient k ON s.klient_id = k.klient_id;

-- 3. КРЕДИТИ И СТАТУС НА РАТИ (Проверка на секоја рата поединечно)
-- Овој поглед ти овозможува да видиш која точно рата е платена а која не
CREATE OR REPLACE VIEW vw_kreditni_rati_status AS
SELECT
    kr.kredit_id, k.ime, k.prezime,
    r.rata_kredit_id, r.iznos_rata, r.datum_na_valuta, r.status AS status_rata,
    v.kod AS valuta
FROM rata_kredit r
JOIN kredit kr ON r.kredit_id = kr.kredit_id
JOIN smetka s ON s.kredit_id = kr.kredit_id
JOIN klient k ON s.klient_id = k.klient_id
JOIN valuta v ON kr.valuta_id = v.valuta_id;

-- 4. ТРАНСАКЦИОНЕН ЛОГ (Со имиња на испраќач и примач)
CREATE OR REPLACE VIEW vw_transakcii_imiња AS
SELECT
    t.transakcija_id, t.datum_transakcija, t.iznos,
    k_od.ime AS isprakjac_ime, k_od.prezime AS isprakjac_prezime,
    k_do.ime AS primac_ime, k_do.prezime AS primac_prezime,
    t.opis
FROM transakcija t
JOIN smetka s_od ON t.smetka_isprakjac_id = s_od.smetka_id
JOIN klient k_od ON s_od.klient_id = k_od.klient_id
JOIN smetka s_do ON t.smetka_primac_id = s_do.smetka_id
JOIN klient k_do ON s_do.klient_id = k_do.klient_id;

-- 5. ЦЕНТРАЛЕН КЛИЕНТСКИ АДРЕСАР
CREATE OR REPLACE VIEW vw_klient_kontakt_info AS
SELECT
    k.klient_id, k.ime, k.prezime, bu.username,
    t.telefonski_broj, e.email,
    concat(a.grad, ', ', a.ulica, ' ', a.broj) AS adresa
FROM klient k
JOIN bank_user bu ON k.user_id = bu.user_id
LEFT JOIN telefon t ON k.klient_id = t.klient_id
LEFT JOIN email e ON k.klient_id = e.klient_id
LEFT JOIN adresa a ON k.klient_id = a.klient_id;

-- 6. ПРЕГЛЕД НА ДЕПОЗИТИ ПО КЛИЕНТ
CREATE OR REPLACE VIEW vw_depoziti_klienti AS
SELECT
    d.depozit_id, d.iznos_depozit, d.kamatna_stapka, d.tip_depozit,
    k.ime, k.prezime, s.broj_smetka
FROM depozit d
JOIN smetka s ON d.smetka_id = s.smetka_id
JOIN klient k ON s.klient_id = k.klient_id;

-- 7. ПРАВНИ ДОГОВОРИ (Со потписници)
CREATE OR REPLACE VIEW vw_dogovori_detali AS
SELECT
    d.dogovor_id, d.naslov, d.status, d.datum_potpisuvanje,
    k.ime, k.prezime, u.ime AS usluga_ime
FROM dogovor d
JOIN klient k ON d.klient_id = k.klient_id
JOIN usluga u ON d.usluga_id = u.usluga_id;

-- 8. АНАЛИТИКА НА ПРОИЗВОДИ ПО КЛИЕНТ
CREATE OR REPLACE VIEW vw_klient_engagement AS
SELECT
    k.klient_id, k.ime, k.prezime,
    (SELECT COUNT(*) FROM smetka WHERE klient_id = k.klient_id) AS broj_smetki,
    (SELECT COUNT(*) FROM dogovor WHERE klient_id = k.klient_id) AS broj_dogovori
FROM klient k;

-- 9. ПРЕГЛЕД НА НАЛОЗИ (Плаќања)
CREATE OR REPLACE VIEW vw_nalozi_klienti AS
SELECT
    n.nalog_id, n.iznos, n.svrha_na_plakjanje, n.datum_na_valuta,
    k.ime, k.prezime, s.broj_smetka AS od_smetka
FROM nalog n
JOIN klient k ON n.nalogodavac_id = k.klient_id
JOIN smetka s ON n.smetka_nalogodavac_id = s.smetka_id;
