using Yavsc.Abstract.Identity.Security;
namespace Yavsc.Blogspot;
public class BlogPostDto : IBlogPost
{
public string AuthorId { get; set; }
public BlogPostAuthorDto? Author { get; set; }
public string Article { get; set ; }
public string Photo { get; set ; }
public long Id { get; set; }
public DateTime DateCreated { get; set; }
public string UserCreated { get; set; }
public DateTime DateModified { get; set; }
public string UserModified { get; set; }
public string Title { get; set; }
///
/// Whether this post is published. Derived server-side from
/// the existence of a row in BlogSpotPublication
/// (a row means published, no row means draft). Not stored
/// on BlogPost — it's a computed projection of the
/// publication table, surfaced through the wire DTO so
/// clients can render the current state without a
/// follow-up request. Toggled via
/// PUT /api/BlogApi/{id}/publish.
///
public bool IsPublished { get; set; }
public virtual bool AuthorizeCircle(long circleId)
{
ACL.Add(new CircleAuthorization { CircleId = circleId });
return true;
}
private List ACL { get; set; } = new List();
public string[] Tags { get; set; }
public string[] GetTags() => Tags;
public ICircleAuthorization[] GetACL() => ACL.ToArray();
}