Files
Operation-Blue-Laminate-v2/BlueLaminate/BlueLaminate.EFCore/Configurations/TradeConfiguration.cs
2026-06-01 10:52:06 -05:00

26 lines
899 B
C#

using BlueLaminate.EFCore.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace BlueLaminate.EFCore.Configurations;
public class TradeConfiguration : IEntityTypeConfiguration<Trade>
{
public void Configure(EntityTypeBuilder<Trade> entity)
{
// Steam's trade id is the natural key for an observed trade. Nullable (some
// trades are reconstructed without one); Postgres keeps multiple NULLs distinct.
entity.HasIndex(e => e.SteamTradeId).IsUnique();
entity.HasOne(e => e.FromUser)
.WithMany(u => u.TradesSent)
.HasForeignKey(e => e.FromUserId)
.OnDelete(DeleteBehavior.Restrict);
entity.HasOne(e => e.ToUser)
.WithMany(u => u.TradesReceived)
.HasForeignKey(e => e.ToUserId)
.OnDelete(DeleteBehavior.Restrict);
}
}