using NpgsqlTypes;
using System.ComponentModel.DataAnnotations;

namespace OpenArchival.DataAccess;

public class BlogPost
{
    [Key]
    public int Id { get; set; }

    /// <summary>
    /// The title of the blog post
    /// </summary>
    public string Title { get; set; } = "";

    /// <summary>
    /// The HTML content of the post
    /// </summary>
    public string Content { get; set; } = "";

    public DateTime CreationTime { get; set; }

    public DateTime ModifiedTime { get; set; }

    public List<BlogPostTag> Tags { get; set; } = [];

    public BlogPostViewCount Views { get; set; } = default!;

    public FilePathListing MainPhoto { get; set; } = default!;

    public List<ArtifactGrouping> ArtifactGroupings { get; set; } = [];

    public NpgsqlTsVector ContentSearchVector { get; set; } = default!;

    public NpgsqlTsVector TitleSearchVector { get; set; } = default!;

    public string TagsSearchString { get; set; } = "";
    public NpgsqlTsVector TagsSearchVector { get; set; } = default!;

    public string AllSearchString { get; set; } = "";
    public NpgsqlTsVector AllSearchVector { get; set; } = default!;

}
