namespace Application.Features.Admin.Forum.Post.Get;

public sealed record Response(
    int ID,
    int BoardID,
    string BoardName,
    int? BoardPrefixID,
    string? BoardPrefixName,
    string? BoardPrefixColor,
    string Subject,
    string Content,
    string? Thumbnail,
    string? Name,
    string? SID,
    bool IsNotice,
    bool IsSecret,
    bool IsAnonymous,
    bool IsSpeaker,
    bool IsDeleted,
    int Views,
    int Likes,
    int Dislikes,
    int Comments,
    byte ImageCount,
    byte MediaCount,
    byte FileCount,
    byte TagCount,
    List<Response.FileItem> Files,
    List<Response.ImageItem> Images,
    List<Response.TagItem> Tags,
    bool IsQnA,
    DateTime? UpdatedAt,
    DateTime CreatedAt
)
{
    public sealed record FileItem(int ID, string FileName, string Url, string? Extension, long? Size, int Downloads, bool IsDisabled, DateTime CreatedAt);
    public sealed record ImageItem(int ID, string FileName, string Url, string? Extension, long? Size, bool IsDisabled);
    public sealed record TagItem(int TagID, string Name, string Slug);
}
