using Infrastructure.Application.Entites.Settings; using IoT.Shared.Application.Domain.Entities; using Microsoft.EntityFrameworkCore; namespace IoT.Shared { public class IoTSharedDbConfig { public static void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Property(o=>o.Name).IsRequired(); modelBuilder.Entity().HasIndex(o => o.Name).IsUnique(); // modelBuilder.Entity().HasIndex(o => o.Number).IsUnique(); // modelBuilder.Entity().HasIndex(o => o.Number).IsUnique(); modelBuilder.Entity().HasOne(o => o.Product).WithMany(o => o.Apis).HasForeignKey(o => o.ProductId); modelBuilder.Entity().HasIndex(o => new { o.ProductId, o.Name }).IsUnique(); modelBuilder.Entity().HasOne(o => o.Api).WithMany(o => o.Parameters).HasForeignKey(o => o.ApiId); // modelBuilder.Entity().HasOne(o => o.Product).WithMany(o => o.Devices).HasForeignKey(o => o.ProductId); modelBuilder.Entity().HasOne(o => o.Node).WithMany(o => o.Devices).HasForeignKey(o => o.NodeId); modelBuilder.Entity().HasIndex(o => o.Number).IsUnique(); modelBuilder.Entity().HasOne(o => o.Device).WithMany(o => o.Data).HasForeignKey(o => o.DeviceId); } } }