using CMSMicroservice.Domain.Enums; namespace CMSMicroservice.Domain.Entities.Payment; /// /// پرداخت دستی توسط Admin/SuperAdmin /// برای موارد خاص: واریز نقدی، تسویه حساب، اصلاح خطا /// public class ManualPayment : BaseAuditableEntity { /// /// شناسه کاربری که پرداخت برای او ثبت می‌شود /// public long UserId { get; set; } /// /// User Navigation Property /// public virtual User User { get; set; } = null!; /// /// مبلغ تراکنش (ریال) /// public long Amount { get; set; } /// /// نوع تراکنش دستی /// public ManualPaymentType Type { get; set; } /// /// توضیحات (اجباری) /// public string Description { get; set; } = string.Empty; /// /// شماره مرجع یا شماره فیش (اختیاری) /// public string? ReferenceNumber { get; set; } /// /// وضعیت تایید /// public ManualPaymentStatus Status { get; set; } = ManualPaymentStatus.Pending; /// /// شناسه Admin که درخواست را ثبت کرده /// public long RequestedBy { get; set; } /// /// شناسه SuperAdmin که تایید/رد کرده (nullable) /// public long? ApprovedBy { get; set; } /// /// تاریخ تایید/رد /// public DateTime? ApprovedAt { get; set; } /// /// دلیل رد (در صورت رد شدن) /// public string? RejectionReason { get; set; } /// /// شناسه تراکنش ایجاد شده (بعد از تایید) /// public long? TransactionId { get; set; } /// /// Transaction Navigation Property /// public virtual Transaction? Transaction { get; set; } }