package model

import (
    "time"
    "crypto/sha256"
    "encoding/hex"
)

// TODO docstring
type Article struct {
    SourceUrl   string
    PublishDate time.Time
    FetchDate   time.Time
    Title       string
    Content     string
    Author      string
}


// Generates a hash based on the source url of the article. Can be used to
// identify the article.
func (article *Article) Hash() string {
    hash := sha256.Sum256([]byte(article.SourceUrl))
    return hex.EncodeToString(hash[:])
}


// --- implement IIdentifiable interface ---

// Using the Identifier attribute as the Id.
func (article *Article) Id() string {
    return article.Hash()
}
