using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; namespace BTCPayServer.Data { public class InvoiceData { public string Id { get; set; } public string StoreDataId { get; set; } public StoreData StoreData { get; set; } public DateTimeOffset Created { get; set; } public List Payments { get; set; } public List Events { get; set; } public List HistoricalAddressInvoices { get; set; } public byte[] Blob { get; set; } public string ItemCode { get; set; } public string OrderId { get; set; } public string Status { get; set; } public string ExceptionStatus { get; set; } public string CustomerEmail { get; set; } public List AddressInvoices { get; set; } public bool Archived { get; set; } public List PendingInvoices { get; set; } public List InvoiceSearchData { get; set; } public List Refunds { get; set; } public string CurrentRefundId { get; set; } [ForeignKey("Id,CurrentRefundId")] public RefundData CurrentRefund { get; set; } internal static void OnModelCreating(ModelBuilder builder) { builder.Entity() .HasOne(o => o.StoreData) .WithMany(a => a.Invoices).OnDelete(DeleteBehavior.Cascade); builder.Entity().HasIndex(o => o.StoreDataId); builder.Entity().HasIndex(o => o.OrderId); builder.Entity() .HasOne(o => o.CurrentRefund); } } }