using CMSMicroservice.Domain.Enums;

namespace CMSMicroservice.Domain.Entities;

/// <summary>
/// قرارداد وام دایا
/// </summary>
public class DayaLoanContract : BaseAuditableEntity
{
    /// <summary>
    /// شناسه کاربر
    /// </summary>
    public long UserId { get; set; }
    
    /// <summary>
    /// User Navigation Property
    /// </summary>
    public virtual User User { get; set; }
    
    /// <summary>
    /// کد ملی
    /// </summary>
    public string NationalCode { get; set; }
    
    /// <summary>
    /// شماره قرارداد دایا
    /// </summary>
    public string? ContractNumber { get; set; }
    
    /// <summary>
    /// وضعیت وام
    /// </summary>
    public DayaLoanStatus Status { get; set; }
    
    /// <summary>
    /// آیا پردازش شده است؟ (شارژ کیف پول انجام شده)
    /// </summary>
    public bool IsProcessed { get; set; }
    
    /// <summary>
    /// تاریخ آخرین استعلام
    /// </summary>
    public DateTime? LastCheckDate { get; set; }
    
    /// <summary>
    /// تاریخ پردازش
    /// </summary>
    public DateTime? ProcessedDate { get; set; }
    
    /// <summary>
    /// شناسه تراکنش (بعد از پردازش)
    /// </summary>
    public long? TransactionId { get; set; }
    
    /// <summary>
    /// Transaction Navigation Property
    /// </summary>
    public virtual Transaction? Transaction { get; set; }
}
