using CMSMicroservice.Domain.Enums;

namespace CMSMicroservice.Application.DayaLoanCQ.Services;

/// <summary>
/// Interface for Daya Loan API Service
/// این سرویس برای ارتباط با API واقعی دایا استفاده می‌شود
/// </summary>
public interface IDayaLoanApiService
{
    /// <summary>
    /// استعلام وضعیت وام دایا برای یک لیست کدملی
    /// </summary>
    /// <param name="nationalCodes">لیست کدملی‌های کاربران</param>
    /// <param name="cancellationToken"></param>
    /// <returns>وضعیت وام به همراه شماره قرارداد (در صورت وجود)</returns>
    Task<List<DayaLoanStatusResult>> CheckLoanStatusAsync(
        List<string> nationalCodes,
        CancellationToken cancellationToken = default);
}

/// <summary>
/// نتیجه استعلام وضعیت وام از سرویس دایا
/// </summary>
public class DayaLoanStatusResult
{
    public string NationalCode { get; set; } = string.Empty;
    public DayaLoanStatus Status { get; set; }
    public string? ContractNumber { get; set; }
}
