@@ -32,6 +32,9 @@ public class AppDbContext : IdentityDbContext<AppUser, AppRole, string>
|
||||
public DbSet<MessagingGroup> MessagingGroups => Set<MessagingGroup>();
|
||||
public DbSet<NotificationLog> NotificationLogs => Set<NotificationLog>();
|
||||
|
||||
public DbSet<SiteSetting> SiteSettings => Set<SiteSetting>();
|
||||
public DbSet<NotificationSetting> NotificationSettings => Set<NotificationSetting>();
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder builder)
|
||||
{
|
||||
base.OnModelCreating(builder);
|
||||
@@ -245,12 +248,43 @@ public class AppDbContext : IdentityDbContext<AppUser, AppRole, string>
|
||||
entity.Property(e => e.BankName).HasMaxLength(200);
|
||||
entity.Property(e => e.BankAccountNumber).HasMaxLength(50);
|
||||
entity.Property(e => e.BankRoutingNumber).HasMaxLength(50);
|
||||
entity.Property(e => e.NameZh).HasMaxLength(200);
|
||||
entity.Property(e => e.Phone).HasMaxLength(50);
|
||||
entity.Property(e => e.Email).HasMaxLength(200);
|
||||
entity.Property(e => e.Website).HasMaxLength(300);
|
||||
entity.Property(e => e.CreatedBy).HasMaxLength(450);
|
||||
entity.Property(e => e.UpdatedBy).HasMaxLength(450);
|
||||
// Optimistic-concurrency token for safe check-number allocation.
|
||||
entity.Property(e => e.xmin).IsRowVersion();
|
||||
});
|
||||
|
||||
// ── SiteSetting (singleton presentation/locale settings) ─────────────
|
||||
builder.Entity<SiteSetting>(entity =>
|
||||
{
|
||||
entity.Property(e => e.SiteTitle).HasMaxLength(200).IsRequired();
|
||||
entity.Property(e => e.SiteTitleZh).HasMaxLength(200);
|
||||
entity.Property(e => e.DefaultLanguage).HasMaxLength(10).IsRequired();
|
||||
entity.Property(e => e.TimeZone).HasMaxLength(100).IsRequired();
|
||||
entity.Property(e => e.DateFormat).HasMaxLength(50).IsRequired();
|
||||
entity.Property(e => e.Currency).HasMaxLength(10).IsRequired();
|
||||
entity.Property(e => e.CreatedBy).HasMaxLength(450);
|
||||
entity.Property(e => e.UpdatedBy).HasMaxLength(450);
|
||||
});
|
||||
|
||||
// ── NotificationSetting (singleton SMTP + Line settings) ─────────────
|
||||
builder.Entity<NotificationSetting>(entity =>
|
||||
{
|
||||
entity.Property(e => e.SmtpHost).HasMaxLength(200);
|
||||
entity.Property(e => e.SmtpUser).HasMaxLength(200);
|
||||
entity.Property(e => e.SmtpPassword).HasMaxLength(500);
|
||||
entity.Property(e => e.FromAddress).HasMaxLength(200);
|
||||
entity.Property(e => e.FromName).HasMaxLength(200);
|
||||
entity.Property(e => e.LineChannelAccessToken).HasMaxLength(500);
|
||||
entity.Property(e => e.LineChannelSecret).HasMaxLength(200);
|
||||
entity.Property(e => e.CreatedBy).HasMaxLength(450);
|
||||
entity.Property(e => e.UpdatedBy).HasMaxLength(450);
|
||||
});
|
||||
|
||||
// ── Check (disbursement) ─────────────────────────────────────────────
|
||||
builder.Entity<Check>(entity =>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user