using PowderCoating.Application.DTOs.Health;

namespace PowderCoating.Application.Interfaces;

/// <summary>
/// Checks whether a tenant company's operational configuration is complete.
/// Separate from churn-risk health (login/engagement signals) — this catches
/// setup gaps that break features before the customer files a support ticket.
/// </summary>
public interface ICompanyConfigHealthService
{
    /// <summary>Checks one company and returns its config issues.</summary>
    Task<CompanyConfigHealth> CheckAsync(int companyId);

    /// <summary>
    /// Batch-checks multiple companies in a fixed number of DB round-trips
    /// (one query per check type, not one query per company).
    /// </summary>
    Task<Dictionary<int, CompanyConfigHealth>> CheckBatchAsync(IEnumerable<int> companyIds);
}
