feat: refactor week number handling to use WeekDefinitionId across multiple entities and queries

This commit is contained in:
masoodafar-web
2025-12-19 10:41:22 +03:30
parent 3cb95dc349
commit 8b784101be
83 changed files with 17592 additions and 566 deletions
@@ -17,7 +17,7 @@ public class NetworkWeeklyBalanceConfiguration : IEntityTypeConfiguration<Networ
builder.Property(entity => entity.Id).UseIdentityColumn();
builder.Property(entity => entity.UserId).IsRequired();
builder.Property(entity => entity.WeekNumber).IsRequired().HasMaxLength(20);
builder.Property(entity => entity.WeekDefinitionId).IsRequired();
builder.Property(entity => entity.LeftLegBalances).IsRequired();
builder.Property(entity => entity.RightLegBalances).IsRequired();
builder.Property(entity => entity.TotalBalances).IsRequired();
@@ -31,14 +31,20 @@ public class NetworkWeeklyBalanceConfiguration : IEntityTypeConfiguration<Networ
.HasForeignKey(entity => entity.UserId)
.OnDelete(DeleteBehavior.Restrict);
// Composite Index برای UserId و WeekNumber
builder.HasIndex(e => new { e.UserId, e.WeekNumber })
.IsUnique()
.HasDatabaseName("IX_NetworkWeeklyBalance_UserId_WeekNumber");
// رابطه با WeekDefinition
builder.HasOne(entity => entity.WeekDefinition)
.WithMany(wd => wd.NetworkWeeklyBalances)
.HasForeignKey(entity => entity.WeekDefinitionId)
.OnDelete(DeleteBehavior.Restrict);
// Index برای WeekNumber
builder.HasIndex(e => e.WeekNumber)
.HasDatabaseName("IX_NetworkWeeklyBalance_WeekNumber");
// Composite Index برای UserId و WeekDefinitionId
builder.HasIndex(e => new { e.UserId, e.WeekDefinitionId })
.IsUnique()
.HasDatabaseName("IX_NetworkWeeklyBalance_UserId_WeekDefinitionId");
// Index برای WeekDefinitionId
builder.HasIndex(e => e.WeekDefinitionId)
.HasDatabaseName("IX_NetworkWeeklyBalance_WeekDefinitionId");
// Index برای IsExpired
builder.HasIndex(e => e.IsExpired)