asentrafin/backend/Data/Configurations/PlaidAccountConfiguration.cs

31 lines
1.4 KiB
C#

using Asentrafin.Api.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Asentrafin.Api.Data.Configurations;
public class PlaidAccountConfiguration : IEntityTypeConfiguration<PlaidAccount>
{
public void Configure(EntityTypeBuilder<PlaidAccount> builder)
{
builder.ToTable("plaid_accounts");
builder.HasKey(account => account.Id);
builder.Property(account => account.PlaidAccountId).HasMaxLength(128).IsRequired();
builder.Property(account => account.Name).HasMaxLength(256).IsRequired();
builder.Property(account => account.OfficialName).HasMaxLength(512);
builder.Property(account => account.Mask).HasMaxLength(32);
builder.Property(account => account.Type).HasMaxLength(64).IsRequired();
builder.Property(account => account.Subtype).HasMaxLength(64);
builder.Property(account => account.IsoCurrencyCode).HasMaxLength(8);
builder.Property(account => account.UnofficialCurrencyCode).HasMaxLength(32);
builder.Property(account => account.RawJson).HasColumnType("jsonb");
builder.HasIndex(account => account.PlaidAccountId).IsUnique();
builder.HasOne(account => account.PlaidItem)
.WithMany(item => item.Accounts)
.HasForeignKey(account => account.PlaidItemId)
.OnDelete(DeleteBehavior.Cascade);
}
}