package database

import (
	log "github.com/cihub/seelog"

	"time"

	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)

const (
	news_coll = "news"
)

type News struct {
	Date time.Time
	Text string
}

func indexNews(coll *mgo.Collection) {
	idx := mgo.Index{
		Key:        []string{"-date"},
		Background: true,
	}
	err := coll.EnsureIndex(idx)
	if err != nil {
		log.Error("Error indexing news: ", err)
	}
}

func addNews(coll *mgo.Collection, text string) error {
	var news News
	news.Text = text
	news.Date = time.Now()
	return coll.Insert(news)
}

func getNews(coll *mgo.Collection, num int, days int) (news []News, err error) {
	query := bson.M{}
	if days != 0 {
		duration := time.Duration(-24*days) * time.Hour
		date := time.Now().Add(duration)
		query = bson.M{"date": bson.M{"$gt": date}}
	}
	q := coll.Find(query).Sort("-date").Limit(num)
	err = q.All(&news)
	return
}