package models import ( "database/sql" "time" ) type News struct { ID int Title string Content string PostedBy int CreatedAt time.Time } func GetAllNews(db *sql.DB) ([]News, error) { query := "SELECT id, title, content, posted_by, created_at FROM news ORDER BY created_at DESC" rows, err := db.Query(query) if err != nil { return nil, err } defer rows.Close() var newsItems []News for rows.Next() { news := News{} var createdAtStr string err := rows.Scan(&news.ID, &news.Title, &news.Content, &news.PostedBy, &createdAtStr) if err != nil { return nil, err } // Parse the timestamp string into time.Time news.CreatedAt, err = time.Parse("2006-01-02 15:04:05", createdAtStr) if err != nil { // Fallback to a default time if parsing fails news.CreatedAt = time.Time{} } newsItems = append(newsItems, news) } return newsItems, nil } func CreateNews(db *sql.DB, news News) error { query := "INSERT INTO news (title, content, posted_by, created_at) VALUES (?, ?, ?, NOW())" _, err := db.Exec(query, news.Title, news.Content, news.PostedBy) return err } func DeleteNews(db *sql.DB, id int) error { query := "DELETE FROM news WHERE id = ?" _, err := db.Exec(query, id) return err }