namespace CashLineERP.Contracts.IslamicFinance;

public sealed class IslamicFinanceMurabahaDisbursementResponse
{
    public long Id { get; set; }
    public string DisbursementNumber { get; set; } = string.Empty;
    public long MurabahaCaseId { get; set; }
    public long CustomerPartyId { get; set; }
    public long PartnerLenderId { get; set; }
    public long? SupplierPartyId { get; set; }
    public string FundingSourceMode { get; set; } = string.Empty;
    public string TargetType { get; set; } = string.Empty;
    public string TransactionCurrencyCode { get; set; } = string.Empty;
    public decimal InstructedAmount { get; set; }
    public decimal ExecutedAmount { get; set; }
    public decimal OutstandingAmount { get; set; }
    public DateOnly PlannedExecutionDate { get; set; }
    public string StatusCode { get; set; } = string.Empty;
    public long? WorkflowInstanceId { get; set; }
    public DateTime CreatedAtUtc { get; set; }
    public long? CreatedByUserId { get; set; }
    public DateTime? SubmittedAtUtc { get; set; }
    public long? SubmittedByUserId { get; set; }
    public DateTime? ApprovedAtUtc { get; set; }
    public long? ApprovedByUserId { get; set; }
    public DateTime? ExecutedAtUtc { get; set; }
    public long? ExecutedByUserId { get; set; }
    public string? ExecutionReferenceNumber { get; set; }
    public string? ExecutionNotes { get; set; }
    public DateTime? SuspendedAtUtc { get; set; }
    public long? SuspendedByUserId { get; set; }
    public string? SuspensionReasonCode { get; set; }
    public DateTime? UpdatedAtUtc { get; set; }
    public long? UpdatedByUserId { get; set; }
}
