using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using SameBeat.Domain.Encje; namespace SameBeat.Infrastructure.BazaDanych.Konfiguracje; public class HistoriaMikrofonuKonfiguracja : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder budowniczy) { budowniczy.ToTable("HistoriaMikrofonu"); budowniczy.HasKey(h => h.Id); budowniczy.Property(h => h.WydarzenieId).IsRequired(); budowniczy.Property(h => h.UczestnikOczekujacyId).IsRequired(); budowniczy.Property(h => h.StartUtc).IsRequired(); budowniczy.Property(h => h.KoniecPlanowanyUtc).IsRequired(); budowniczy.Property(h => h.KoniecFaktycznyUtc); budowniczy.Property(h => h.CzasSekundy).IsRequired(); budowniczy.Property(h => h.PrzyznalHostNick) .IsRequired() .HasMaxLength(64); // Glowne zapytanie: "czy ten uczestnik ma teraz otwarty wpis" (KoniecFaktycznyUtc == null) -- // patrz IRepozytoriumHistoriiMikrofonu.ZnajdzOtwartyAsync. budowniczy.HasIndex(h => new { h.WydarzenieId, h.UczestnikOczekujacyId }); } }