Add aggregate voter registration management

This commit is contained in:
biss committed 2026-09-08 08:36:05 +08:00
1 parent 6d765ac8f3
commit e96a56314f
13 files changed
+1334 -7

No files matched your search

@@ -19,6 +19,7 @@ public sealed class ElectionDbContext(DbContextOptions<ElectionDbContext> option
public DbSet<CountingStation> CountingStations => Set<CountingStation>();
public DbSet<UserCountingStationAssignment> UserCountingStationAssignments => Set<UserCountingStationAssignment>();
public DbSet<VoterProfile> Voters => Set<VoterProfile>();
public DbSet<VoterRegistrationAggregate> VoterRegistrationAggregates => Set<VoterRegistrationAggregate>();
public DbSet<CandidateProfile> Candidates => Set<CandidateProfile>();
public DbSet<ElectionActivity> ElectionActivities => Set<ElectionActivity>();
public DbSet<ElectionContest> ElectionContests => Set<ElectionContest>();
@@ -93,6 +94,14 @@ public sealed class ElectionDbContext(DbContextOptions<ElectionDbContext> option
entity.HasOne<AdministrativeRegion>().WithMany().HasForeignKey(x => x.RegionId).OnDelete(DeleteBehavior.Restrict);
entity.HasOne<ApplicationUser>().WithMany().HasForeignKey(x => x.UserId).OnDelete(DeleteBehavior.Restrict);
});
modelBuilder.Entity<VoterRegistrationAggregate>(entity =>
{
entity.ToTable("voter_registration_aggregates");
entity.Property(x => x.Reason).HasMaxLength(500).IsRequired();
entity.HasIndex(x => x.RegionId).IsUnique();
entity.HasOne<AdministrativeRegion>().WithMany().HasForeignKey(x => x.RegionId).OnDelete(DeleteBehavior.Restrict);
entity.HasOne<ApplicationUser>().WithMany().HasForeignKey(x => x.SetByUserId).OnDelete(DeleteBehavior.Restrict);
});
modelBuilder.Entity<CandidateProfile>(entity =>
{
entity.ToTable("candidate_profiles");