From 855e9a4bcf1a7adbad60a4ed0a15d8de537a9790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Vrabec?= Date: Sat, 9 Aug 2025 14:06:56 +0200 Subject: [PATCH] Map EF user and user stats --- DrinkRateAPI/Contexts/ApplicationDbContext.cs | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/DrinkRateAPI/Contexts/ApplicationDbContext.cs b/DrinkRateAPI/Contexts/ApplicationDbContext.cs index 2942ec9..a4661f6 100644 --- a/DrinkRateAPI/Contexts/ApplicationDbContext.cs +++ b/DrinkRateAPI/Contexts/ApplicationDbContext.cs @@ -90,5 +90,60 @@ public class ApplicationDbContext : DbContext entity.HasMany(ctv => ctv.Users) .WithMany(u => u.CompanyTableViews); }); + + // User + modelBuilder.Entity(entity => + { + entity.HasKey(u => u.Id); + + entity.HasMany(u => u.CompanyTableViews) + .WithMany(ctv => ctv.Users); + + entity.HasMany(u => u.ProductTableViews) + .WithMany(ptv => ptv.Users); + + entity.HasMany(u => u.CompanyRatings) + .WithOne(cr => cr.User) + .HasForeignKey(cr => cr.UserId); + + entity.HasMany(u => u.ProductRatings) + .WithOne(pr => pr.User) + .HasForeignKey(pr => pr.UserId); + + entity.HasMany(u => u.UserCompanyTableStats) + .WithOne(ucts => ucts.User) + .HasForeignKey(ucts => ucts.UserId); + + entity.HasMany(u => u.UserProductTableStats) + .WithOne(upts => upts.User) + .HasForeignKey(upts => upts.UserId); + + entity.HasIndex(u => u.UserName) + .IsUnique(); + }); + + // User Company Table Stat + modelBuilder.Entity(entity => + { + entity.HasKey(ucts => new { ucts.UserId, ucts.CompanyTableId }); + + entity.HasOne(ucts => ucts.User) + .WithMany(u => u.UserCompanyTableStats); + + entity.HasOne(ucts => ucts.CompanyTable) + .WithMany(); + }); + + // User Product Table Stat + modelBuilder.Entity(entity => + { + entity.HasKey(upts => new { upts.UserId, upts.ProductTableId }); + + entity.HasOne(upts => upts.User) + .WithMany(u => u.UserProductTableStats); + + entity.HasOne(upts => upts.ProductTable) + .WithMany(); + }); } } \ No newline at end of file