Index: src/main/java/mk/ukim/finki/busngo/model/Kazna.java
===================================================================
--- src/main/java/mk/ukim/finki/busngo/model/Kazna.java	(revision 24c39f958d6dc4a916ce04381e57b26a8163a342)
+++ src/main/java/mk/ukim/finki/busngo/model/Kazna.java	(revision 24c39f958d6dc4a916ce04381e57b26a8163a342)
@@ -0,0 +1,154 @@
+package mk.ukim.finki.busngo.model;
+
+import jakarta.persistence.*;
+
+import java.sql.Timestamp;
+import java.util.Objects;
+
+@Entity
+public class Kazna {
+    private Long kzId;
+    private Double kzIznos;
+    private Boolean kzPlateno;
+    private Timestamp kzDatum;
+    private Timestamp kzDatumPlateno;
+    private String kzDokument;
+    private Long kondukterKId;
+    private Long kontrolaId;
+    private Korisnik korisnikByKondukterKId;
+    private Kontroli kontroliByKontrolaId;
+    private Kaznazaneregistriran kaznazaneregistriranByKzId;
+    private Kaznazaregistriran kaznazaregistriranByKzId;
+
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Id
+    @Column(name = "kz_id", nullable = false)
+    public Long getKzId() {
+        return kzId;
+    }
+
+    public void setKzId(Long kzId) {
+        this.kzId = kzId;
+    }
+
+    @Basic
+    @Column(name = "kz_iznos", nullable = false, precision = 0)
+    public Double getKzIznos() {
+        return kzIznos;
+    }
+
+    public void setKzIznos(Double kzIznos) {
+        this.kzIznos = kzIznos;
+    }
+
+    @Basic
+    @Column(name = "kz_plateno", nullable = false)
+    public Boolean getKzPlateno() {
+        return kzPlateno;
+    }
+
+    public void setKzPlateno(Boolean kzPlateno) {
+        this.kzPlateno = kzPlateno;
+    }
+
+    @Basic
+    @Column(name = "kz_datum", nullable = false)
+    public Timestamp getKzDatum() {
+        return kzDatum;
+    }
+
+    public void setKzDatum(Timestamp kzDatum) {
+        this.kzDatum = kzDatum;
+    }
+
+    @Basic
+    @Column(name = "kz_datum_plateno", nullable = true)
+    public Timestamp getKzDatumPlateno() {
+        return kzDatumPlateno;
+    }
+
+    public void setKzDatumPlateno(Timestamp kzDatumPlateno) {
+        this.kzDatumPlateno = kzDatumPlateno;
+    }
+
+    @Basic
+    @Column(name = "kz_dokument", nullable = false)
+    public String getKzDokument() {
+        return kzDokument;
+    }
+
+    public void setKzDokument(String kzDokument) {
+        this.kzDokument = kzDokument;
+    }
+
+    @Basic
+    @Column(name = "kondukter_k_id", nullable = true)
+    public Long getKondukterKId() {
+        return kondukterKId;
+    }
+
+    public void setKondukterKId(Long kondukterKId) {
+        this.kondukterKId = kondukterKId;
+    }
+
+    @Basic
+    @Column(name = "kontrola_id", nullable = true)
+    public Long getKontrolaId() {
+        return kontrolaId;
+    }
+
+    public void setKontrolaId(Long kontrolaId) {
+        this.kontrolaId = kontrolaId;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        Kazna kazna = (Kazna) o;
+        return Objects.equals(kzId, kazna.kzId) && Objects.equals(kzIznos, kazna.kzIznos) && Objects.equals(kzPlateno, kazna.kzPlateno) && Objects.equals(kzDatum, kazna.kzDatum) && Objects.equals(kzDatumPlateno, kazna.kzDatumPlateno) && Objects.equals(kzDokument, kazna.kzDokument) && Objects.equals(kondukterKId, kazna.kondukterKId) && Objects.equals(kontrolaId, kazna.kontrolaId);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(kzId, kzIznos, kzPlateno, kzDatum, kzDatumPlateno, kzDokument, kondukterKId, kontrolaId);
+    }
+
+    @ManyToOne
+    @JoinColumn(name = "kondukter_k_id", referencedColumnName = "k_id")
+    public Korisnik getKorisnikByKondukterKId() {
+        return korisnikByKondukterKId;
+    }
+
+    public void setKorisnikByKondukterKId(Korisnik korisnikByKondukterKId) {
+        this.korisnikByKondukterKId = korisnikByKondukterKId;
+    }
+
+    @ManyToOne
+    @JoinColumn(name = "kontrola_id", referencedColumnName = "kontrola_id")
+    public Kontroli getKontroliByKontrolaId() {
+        return kontroliByKontrolaId;
+    }
+
+    public void setKontroliByKontrolaId(Kontroli kontroliByKontrolaId) {
+        this.kontroliByKontrolaId = kontroliByKontrolaId;
+    }
+
+    @OneToOne(mappedBy = "kaznaByKzId")
+    public Kaznazaneregistriran getKaznazaneregistriranByKzId() {
+        return kaznazaneregistriranByKzId;
+    }
+
+    public void setKaznazaneregistriranByKzId(Kaznazaneregistriran kaznazaneregistriranByKzId) {
+        this.kaznazaneregistriranByKzId = kaznazaneregistriranByKzId;
+    }
+
+    @OneToOne(mappedBy = "kaznaByKzId")
+    public Kaznazaregistriran getKaznazaregistriranByKzId() {
+        return kaznazaregistriranByKzId;
+    }
+
+    public void setKaznazaregistriranByKzId(Kaznazaregistriran kaznazaregistriranByKzId) {
+        this.kaznazaregistriranByKzId = kaznazaregistriranByKzId;
+    }
+}
