mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 22:44:29 +01:00
Isolate OnModelCreating in Data classes (#1702)
This commit is contained in:
@@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -27,6 +28,22 @@ namespace BTCPayServer.Data
|
|||||||
public StoreData StoreData { get; set; }
|
public StoreData StoreData { get; set; }
|
||||||
public ApplicationUser User { get; set; }
|
public ApplicationUser User { get; set; }
|
||||||
public string Label { get; set; }
|
public string Label { get; set; }
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<APIKeyData>()
|
||||||
|
.HasOne(o => o.StoreData)
|
||||||
|
.WithMany(i => i.APIKeys)
|
||||||
|
.HasForeignKey(i => i.StoreId).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
builder.Entity<APIKeyData>()
|
||||||
|
.HasOne(o => o.User)
|
||||||
|
.WithMany(i => i.APIKeys)
|
||||||
|
.HasForeignKey(i => i.UserId).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
|
||||||
|
builder.Entity<APIKeyData>()
|
||||||
|
.HasIndex(o => o.StoreId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class APIKeyBlob
|
public class APIKeyBlob
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -32,5 +33,15 @@ namespace BTCPayServer.Data
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<AddressInvoiceData>()
|
||||||
|
.HasOne(o => o.InvoiceData)
|
||||||
|
.WithMany(i => i.AddressInvoices).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<AddressInvoiceData>()
|
||||||
|
#pragma warning disable CS0618
|
||||||
|
.HasKey(o => o.Address);
|
||||||
|
#pragma warning restore CS0618
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
@@ -37,5 +38,14 @@ namespace BTCPayServer.Data
|
|||||||
{
|
{
|
||||||
Settings = value == null ? null : JsonConvert.SerializeObject(value);
|
Settings = value == null ? null : JsonConvert.SerializeObject(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<AppData>()
|
||||||
|
.HasOne(o => o.StoreData)
|
||||||
|
.WithMany(i => i.Apps).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<AppData>()
|
||||||
|
.HasOne(a => a.StoreData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,135 +74,19 @@ namespace BTCPayServer.Data
|
|||||||
{
|
{
|
||||||
base.OnModelCreating(builder);
|
base.OnModelCreating(builder);
|
||||||
NotificationData.OnModelCreating(builder);
|
NotificationData.OnModelCreating(builder);
|
||||||
|
InvoiceData.OnModelCreating(builder);
|
||||||
|
PaymentData.OnModelCreating(builder);
|
||||||
builder.Entity<InvoiceData>()
|
Data.UserStore.OnModelCreating(builder);
|
||||||
.HasOne(o => o.StoreData)
|
APIKeyData.OnModelCreating(builder);
|
||||||
.WithMany(a => a.Invoices).OnDelete(DeleteBehavior.Cascade);
|
AppData.OnModelCreating(builder);
|
||||||
builder.Entity<InvoiceData>().HasIndex(o => o.StoreDataId);
|
AddressInvoiceData.OnModelCreating(builder);
|
||||||
|
PairingCodeData.OnModelCreating(builder);
|
||||||
|
PendingInvoiceData.OnModelCreating(builder);
|
||||||
builder.Entity<PaymentData>()
|
Data.PairedSINData.OnModelCreating(builder);
|
||||||
.HasOne(o => o.InvoiceData)
|
HistoricalAddressInvoiceData.OnModelCreating(builder);
|
||||||
.WithMany(i => i.Payments).OnDelete(DeleteBehavior.Cascade);
|
InvoiceEventData.OnModelCreating(builder);
|
||||||
builder.Entity<PaymentData>()
|
PaymentRequestData.OnModelCreating(builder);
|
||||||
.HasIndex(o => o.InvoiceDataId);
|
WalletTransactionData.OnModelCreating(builder);
|
||||||
|
|
||||||
builder.Entity<UserStore>()
|
|
||||||
.HasOne(o => o.StoreData)
|
|
||||||
.WithMany(i => i.UserStores).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
builder.Entity<UserStore>()
|
|
||||||
.HasKey(t => new
|
|
||||||
{
|
|
||||||
t.ApplicationUserId,
|
|
||||||
t.StoreDataId
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.Entity<APIKeyData>()
|
|
||||||
.HasOne(o => o.StoreData)
|
|
||||||
.WithMany(i => i.APIKeys)
|
|
||||||
.HasForeignKey(i => i.StoreId).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
builder.Entity<APIKeyData>()
|
|
||||||
.HasOne(o => o.User)
|
|
||||||
.WithMany(i => i.APIKeys)
|
|
||||||
.HasForeignKey(i => i.UserId).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
builder.Entity<APIKeyData>()
|
|
||||||
.HasIndex(o => o.StoreId);
|
|
||||||
|
|
||||||
builder.Entity<AppData>()
|
|
||||||
.HasOne(o => o.StoreData)
|
|
||||||
.WithMany(i => i.Apps).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
builder.Entity<AppData>()
|
|
||||||
.HasOne(a => a.StoreData);
|
|
||||||
|
|
||||||
builder.Entity<UserStore>()
|
|
||||||
.HasOne(pt => pt.ApplicationUser)
|
|
||||||
.WithMany(p => p.UserStores)
|
|
||||||
.HasForeignKey(pt => pt.ApplicationUserId);
|
|
||||||
|
|
||||||
builder.Entity<UserStore>()
|
|
||||||
.HasOne(pt => pt.StoreData)
|
|
||||||
.WithMany(t => t.UserStores)
|
|
||||||
.HasForeignKey(pt => pt.StoreDataId);
|
|
||||||
|
|
||||||
|
|
||||||
builder.Entity<AddressInvoiceData>()
|
|
||||||
.HasOne(o => o.InvoiceData)
|
|
||||||
.WithMany(i => i.AddressInvoices).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
builder.Entity<AddressInvoiceData>()
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
.HasKey(o => o.Address);
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
|
|
||||||
builder.Entity<PairingCodeData>()
|
|
||||||
.HasKey(o => o.Id);
|
|
||||||
|
|
||||||
builder.Entity<PendingInvoiceData>()
|
|
||||||
.HasOne(o => o.InvoiceData)
|
|
||||||
.WithMany(o => o.PendingInvoices)
|
|
||||||
.HasForeignKey(o => o.Id).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
|
|
||||||
builder.Entity<PairedSINData>()
|
|
||||||
.HasOne(o => o.StoreData)
|
|
||||||
.WithMany(i => i.PairedSINs).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
builder.Entity<PairedSINData>(b =>
|
|
||||||
{
|
|
||||||
b.HasIndex(o => o.SIN);
|
|
||||||
b.HasIndex(o => o.StoreDataId);
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.Entity<HistoricalAddressInvoiceData>()
|
|
||||||
.HasOne(o => o.InvoiceData)
|
|
||||||
.WithMany(i => i.HistoricalAddressInvoices).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
builder.Entity<HistoricalAddressInvoiceData>()
|
|
||||||
.HasKey(o => new
|
|
||||||
{
|
|
||||||
o.InvoiceDataId,
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
o.Address
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
builder.Entity<InvoiceEventData>()
|
|
||||||
.HasOne(o => o.InvoiceData)
|
|
||||||
.WithMany(i => i.Events).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
builder.Entity<InvoiceEventData>()
|
|
||||||
.HasKey(o => new
|
|
||||||
{
|
|
||||||
o.InvoiceDataId,
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
o.UniqueId
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
builder.Entity<PaymentRequestData>()
|
|
||||||
.HasOne(o => o.StoreData)
|
|
||||||
.WithMany(i => i.PaymentRequests)
|
|
||||||
.OnDelete(DeleteBehavior.Cascade);
|
|
||||||
builder.Entity<PaymentRequestData>()
|
|
||||||
.Property(e => e.Created)
|
|
||||||
.HasDefaultValue(new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero));
|
|
||||||
|
|
||||||
builder.Entity<PaymentRequestData>()
|
|
||||||
.HasIndex(o => o.Status);
|
|
||||||
|
|
||||||
builder.Entity<WalletTransactionData>()
|
|
||||||
.HasKey(o => new
|
|
||||||
{
|
|
||||||
o.WalletDataId,
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
o.TransactionId
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
});
|
|
||||||
builder.Entity<WalletTransactionData>()
|
|
||||||
.HasOne(o => o.WalletData)
|
|
||||||
.WithMany(w => w.WalletTransactions).OnDelete(DeleteBehavior.Cascade);
|
|
||||||
|
|
||||||
PullPaymentData.OnModelCreating(builder);
|
PullPaymentData.OnModelCreating(builder);
|
||||||
PayoutData.OnModelCreating(builder);
|
PayoutData.OnModelCreating(builder);
|
||||||
RefundData.OnModelCreating(builder);
|
RefundData.OnModelCreating(builder);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -40,5 +41,20 @@ namespace BTCPayServer.Data
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<HistoricalAddressInvoiceData>()
|
||||||
|
.HasOne(o => o.InvoiceData)
|
||||||
|
.WithMany(i => i.HistoricalAddressInvoices).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<HistoricalAddressInvoiceData>()
|
||||||
|
.HasKey(o => new
|
||||||
|
{
|
||||||
|
o.InvoiceDataId,
|
||||||
|
#pragma warning disable CS0618
|
||||||
|
o.Address
|
||||||
|
#pragma warning restore CS0618
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,6 +83,10 @@ namespace BTCPayServer.Data
|
|||||||
public RefundData CurrentRefund { get; set; }
|
public RefundData CurrentRefund { get; set; }
|
||||||
internal static void OnModelCreating(ModelBuilder builder)
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
{
|
{
|
||||||
|
builder.Entity<InvoiceData>()
|
||||||
|
.HasOne(o => o.StoreData)
|
||||||
|
.WithMany(a => a.Invoices).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<InvoiceData>().HasIndex(o => o.StoreDataId);
|
||||||
builder.Entity<InvoiceData>()
|
builder.Entity<InvoiceData>()
|
||||||
.HasOne(o => o.CurrentRefund);
|
.HasOne(o => o.CurrentRefund);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -22,5 +23,20 @@ namespace BTCPayServer.Data
|
|||||||
}
|
}
|
||||||
|
|
||||||
public string Message { get; set; }
|
public string Message { get; set; }
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<InvoiceEventData>()
|
||||||
|
.HasOne(o => o.InvoiceData)
|
||||||
|
.WithMany(i => i.Events).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<InvoiceEventData>()
|
||||||
|
.HasKey(o => new
|
||||||
|
{
|
||||||
|
o.InvoiceDataId,
|
||||||
|
#pragma warning disable CS0618
|
||||||
|
o.UniqueId
|
||||||
|
#pragma warning restore CS0618
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -33,5 +34,17 @@ namespace BTCPayServer.Data
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<PairedSINData>()
|
||||||
|
.HasOne(o => o.StoreData)
|
||||||
|
.WithMany(i => i.PairedSINs).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<PairedSINData>(b =>
|
||||||
|
{
|
||||||
|
b.HasIndex(o => o.SIN);
|
||||||
|
b.HasIndex(o => o.StoreDataId);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -46,5 +47,11 @@ namespace BTCPayServer.Data
|
|||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<PairingCodeData>()
|
||||||
|
.HasKey(o => o.Id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -29,5 +30,14 @@ namespace BTCPayServer.Data
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<PaymentData>()
|
||||||
|
.HasOne(o => o.InvoiceData)
|
||||||
|
.WithMany(i => i.Payments).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<PaymentData>()
|
||||||
|
.HasIndex(o => o.InvoiceDataId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using BTCPayServer.Client.Models;
|
using BTCPayServer.Client.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -21,5 +22,17 @@ namespace BTCPayServer.Data
|
|||||||
|
|
||||||
public byte[] Blob { get; set; }
|
public byte[] Blob { get; set; }
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<PaymentRequestData>()
|
||||||
|
.HasOne(o => o.StoreData)
|
||||||
|
.WithMany(i => i.PaymentRequests)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<PaymentRequestData>()
|
||||||
|
.Property(e => e.Created)
|
||||||
|
.HasDefaultValue(new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero));
|
||||||
|
builder.Entity<PaymentRequestData>()
|
||||||
|
.HasIndex(o => o.Status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -12,5 +13,13 @@ namespace BTCPayServer.Data
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
public InvoiceData InvoiceData { get; set; }
|
public InvoiceData InvoiceData { get; set; }
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<PendingInvoiceData>()
|
||||||
|
.HasOne(o => o.InvoiceData)
|
||||||
|
.WithMany(o => o.PendingInvoices)
|
||||||
|
.HasForeignKey(o => o.Id).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
{
|
{
|
||||||
@@ -29,5 +30,27 @@ namespace BTCPayServer.Data
|
|||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<UserStore>()
|
||||||
|
.HasOne(o => o.StoreData)
|
||||||
|
.WithMany(i => i.UserStores).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
builder.Entity<UserStore>()
|
||||||
|
.HasKey(t => new
|
||||||
|
{
|
||||||
|
t.ApplicationUserId,
|
||||||
|
t.StoreDataId
|
||||||
|
});
|
||||||
|
builder.Entity<UserStore>()
|
||||||
|
.HasOne(pt => pt.ApplicationUser)
|
||||||
|
.WithMany(p => p.UserStores)
|
||||||
|
.HasForeignKey(pt => pt.ApplicationUserId);
|
||||||
|
|
||||||
|
builder.Entity<UserStore>()
|
||||||
|
.HasOne(pt => pt.StoreData)
|
||||||
|
.WithMany(t => t.UserStores)
|
||||||
|
.HasForeignKey(pt => pt.StoreDataId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace BTCPayServer.Data
|
namespace BTCPayServer.Data
|
||||||
@@ -13,6 +14,20 @@ namespace BTCPayServer.Data
|
|||||||
public string TransactionId { get; set; }
|
public string TransactionId { get; set; }
|
||||||
public string Labels { get; set; }
|
public string Labels { get; set; }
|
||||||
public byte[] Blob { get; set; }
|
public byte[] Blob { get; set; }
|
||||||
|
internal static void OnModelCreating(ModelBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Entity<WalletTransactionData>()
|
||||||
|
.HasKey(o => new
|
||||||
|
{
|
||||||
|
o.WalletDataId,
|
||||||
|
#pragma warning disable CS0618
|
||||||
|
o.TransactionId
|
||||||
|
#pragma warning restore CS0618
|
||||||
|
});
|
||||||
|
builder.Entity<WalletTransactionData>()
|
||||||
|
.HasOne(o => o.WalletData)
|
||||||
|
.WithMany(w => w.WalletTransactions).OnDelete(DeleteBehavior.Cascade);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WalletTransactionInfo
|
public class WalletTransactionInfo
|
||||||
|
|||||||
Reference in New Issue
Block a user