using Meezi.Admin.API.Controllers;

namespace Meezi.Admin.API.Services;

public interface IAdminWebsiteService
{
    Task<object> ListPostsAsync(int page, int limit, bool? published, CancellationToken ct);
    Task<object?> GetPostAsync(string id, CancellationToken ct);
    Task<object> CreatePostAsync(UpsertPostRequest req, CancellationToken ct);
    Task<object?> UpdatePostAsync(string id, UpsertPostRequest req, CancellationToken ct);
    Task DeletePostAsync(string id, CancellationToken ct);
    Task SetPublishedAsync(string id, bool published, CancellationToken ct);

    Task<object> ListCommentsAsync(bool? approved, int page, int limit, CancellationToken ct);
    Task SetCommentApprovedAsync(string id, bool approved, CancellationToken ct);
    Task DeleteCommentAsync(string id, CancellationToken ct);

    Task<object> ListDemoRequestsAsync(string? status, int page, int limit, CancellationToken ct);
    Task UpdateDemoStatusAsync(string id, string status, string? adminNotes, CancellationToken ct);
}
