using Femto.Common.Domain;
using Femto.Modules.Blog.Application.Queries.GetPosts.Dto;

namespace Femto.Modules.Blog.Application.Queries.GetPosts;

public record GetPostsQuery(Guid? CurrentUserId) : IQuery<GetPostsQueryResult>
{
    public Guid? From { get; init; }
    public int Amount { get; init; } = 20;
    public Guid? AuthorId { get; init; }
    public string? Author { get; init; }

    /// <summary>
    /// Default is to load in reverse chronological order
    /// TODO this is not exposed on the client as it probably wouldn't work that well
    /// </summary>
    public GetPostsDirection Direction { get; init; } = GetPostsDirection.Backward;
}

public enum GetPostsDirection
{
    Forward,
    Backward,
}
