using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; using vendorApproverBackend.Enums; namespace vendorApproverBackend.Entities { public class PaymentDetail { [Key] [Column("id")] public long Id { get; set; } [Column("amount")] public double Amount { get; set; } [Column("payment_methode")] public PaymentMethode PaymentMethode { get; set; } [Column("payment_date")] public DateTime PaymentDate { get; set; } [Column("reference")] public string Reference { get; set; } [Column("attachement_id")] public long? AttachementId { get; set; } [Column("status")] public PaymentStatus Status { get; set; } = PaymentStatus.PENDING; [Column("description", TypeName = "TEXT")] public string Description { get; set; } [Column("timestmp")] public DateTime Timestamp { get; set; } = DateTime.UtcNow; [Column("product_id")] public long? ProductId { get; set; } [Column("request_letter_id")] public long? RequestLetterId { get; set; } [JsonIgnore] public PrequalificationRequest? PrequalificationRequest { get; set; } [NotMapped] public long? RequestId { get => PrequalificationRequest?.Id; set { } } [NotMapped] public User? VendorUser { get => PrequalificationRequest?.Vendor?.User; set { } } } }