using TaxBaik.Application.Services;
using TaxBaik.Domain.Entities;
using InquiryEntity = TaxBaik.Domain.Entities.Inquiry;

namespace TaxBaik.Web.Endpoints.AdminDashboard;

public class AdminDashboardSummaryResponse
{
    public int ThisMonthInquiries { get; set; }
    public int NewInquiries { get; set; }
    public int TotalPosts { get; set; }
    public int PublishedPosts { get; set; }
    public List<InquiryEntity> RecentInquiries { get; set; } = [];
}

public class UpcomingFilingsResponse
{
    public List<object> Data { get; set; } = [];
    public int Days { get; set; }
}

public class UpcomingFilingsQuery
{
    public int Days { get; set; } = 30;
}

public class RecentInquiriesResponse
{
    public List<InquiryEntity> Data { get; set; } = [];
    public int Limit { get; set; }
}

public class RecentInquiriesQuery
{
    public int Limit { get; set; } = 10;
}

public class MonthlyStatsQuery
{
    public string? Month { get; set; }
}

public class MonthlyStatsResponse
{
    public string Month { get; set; } = string.Empty;
    public int TotalInquiries { get; set; }
    public int ConsultingCount { get; set; }
    public int CompletedCount { get; set; }
    public int NewCount { get; set; }
    public double CompletionRate { get; set; }
}
