Servis: servisni_log tabela — praćenje datuma događaja za eskalacioni list

This commit is contained in:
2026-06-30 22:57:01 +02:00
parent c971b5d075
commit 18f242d73f
7 changed files with 117 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
package sqlite
import (
"context"
"database/sql"
"ntech/internal/model"
)
// ServisniLogRepo je SQLite implementacija db.ServisniLogRepository
type ServisniLogRepo struct {
db *sql.DB
}
// NoviServisniLogRepo kreira repozitorijum log-a servisnih naloga
func NoviServisniLogRepo(baza *sql.DB) *ServisniLogRepo {
return &ServisniLogRepo{db: baza}
}
// Kreiraj upisuje novi događaj u log servisnog naloga.
func (r *ServisniLogRepo) Kreiraj(ctx context.Context, nalogID int64, dogadjaj string, korisnikID *int64) error {
_, err := r.db.ExecContext(ctx,
`INSERT INTO servisni_log (nalog_id, dogadjaj, korisnik_id) VALUES (?, ?, ?)`,
nalogID, dogadjaj, korisnikID,
)
return err
}
// DohvatiZaNalog vraća sve log zapise za dati nalog, od najstarijeg ka najnovijem.
func (r *ServisniLogRepo) DohvatiZaNalog(ctx context.Context, nalogID int64) ([]model.ServisniLog, error) {
rows, err := r.db.QueryContext(ctx,
`SELECT id, nalog_id, dogadjaj, COALESCE(napomena,''), korisnik_id, datum
FROM servisni_log WHERE nalog_id = ? ORDER BY datum ASC`,
nalogID,
)
if err != nil {
return nil, err
}
defer rows.Close()
var lista []model.ServisniLog
for rows.Next() {
var l model.ServisniLog
if err := rows.Scan(&l.ID, &l.NalogID, &l.Dogadjaj, &l.Napomena, &l.KorisnikID, &l.Datum); err != nil {
return nil, err
}
lista = append(lista, l)
}
return lista, rows.Err()
}