package model import ( "fmt" "time" ) func (m *Model) GetItemById(id int64) (*Item, error) { row := m.db.QueryRowx("SELECT * FROM items WHERE id = ?", id) if row.Err() != nil { return nil, fmt.Errorf("failed to query db: %v", row.Err()) } item := new(Item) if err := row.StructScan(item); err != nil { return nil, fmt.Errorf("failed to struct scan item: %v", err) } return item, nil } func (m *Model) GetItems() ([]*Item, error) { rows, err := m.db.Queryx("SELECT * FROM items") if err != nil { return nil, fmt.Errorf("couldn't query db: %v", err) } items := []*Item{} for rows.Next() { item := &Item{} if err := rows.StructScan(&item); err != nil { continue } items = append(items, item) } return items, nil } func (m *Model) UpdateRefreshedAt(itemId int64, refreshedAt time.Time) error { if _, err := m.db.NamedExec("UPDATE items SET refreshed_at = :refreshed_at WHERE id = :item_id", map[string]any{ "refreshed_at": refreshedAt, "item_id": itemId, }); err != nil { return fmt.Errorf("failed to update refreshed_at field: %v", err) } return nil }