package Database import "time" func GetPostById(id string) (Post, error) { var ( post Post e error ) e = DB.Model(&Post{}). Where("id = ?", id). First(&post). Error return post, e } func GetPostsList(limit int, offset int) ([]Post, error) { var ( posts []Post e error ) e = DB.Model(&Post{}). Order("updated_at desc"). Limit(limit). Offset(offset). Find(&posts). Error return posts, e } func GetPostsListBySubject(limit int, offset int, subject string) ([]Post, error) { var ( posts []Post e error ) e = DB.Model(&Post{}). Where("subject = ?", subject). Order("updated_at desc"). Limit(limit). Offset(offset). Find(&posts). Error return posts, e } func GetPostCountBySubject(subject string) (int64, error) { var ( count int64 e error ) e = DB.Model(&Post{}). Where("subject = ?", subject). Count(&count). Error return count, e } func CreatePost(post Post) error { return DB.Model(&Post{}). Create(&post). Error } func UpdatePost(post Post) error { return DB.Save(&post).Error } func GetLastUpdatedAt() (time.Time, error) { var ( post Post e error ) e = DB.Model(&Post{}). Select("updated_at"). Order("updated_at desc"). Limit(1). Offset(0). First(&post). Error return post.UpdatedAt, e }