using KoogleApp.Entities; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; namespace KoogleApp.Data { public class AppDbContext(DbContextOptions options) : IdentityDbContext(options) { public DbSet Players { get; set; } = null!; public DbSet PlayerExpenses { get; set; } public DbSet Days { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); entity.Property(e => e.Name).IsRequired().HasMaxLength(200); //entity.Property(e => e.Description).HasMaxLength(1000); entity.Property(e => e.ModifiedBy).HasMaxLength(100); // 1:n Beziehung zu Positionen entity.HasMany(e => e.Expenses) .WithOne(p => p.Player) .HasForeignKey(p => p.PlayerId) .OnDelete(DeleteBehavior.Cascade); // Cascade Delete }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); entity.Property(e => e.Name).IsRequired().HasMaxLength(200); //entity.Property(e => e.Quantity).HasPrecision(18, 2); //entity.Property(e => e.UnitPrice).HasPrecision(18, 2); //entity.Property(e => e.Unit).HasMaxLength(50); // Index für bessere Performance entity.HasIndex(e => e.PlayerId); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); // Index für bessere Performance entity.HasIndex(e => e.PostDate); }); base.OnModelCreating(modelBuilder); } } }