using Infrastructure.Application.Entites.Settings; using 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.IoTApis).HasForeignKey(o => o.IoTProductId); modelBuilder.Entity().HasIndex(o => new { o.IoTProductId, o.Name }).IsUnique(); modelBuilder.Entity().HasOne(o => o.IoTApi).WithMany(o => o.IoTParameters).HasForeignKey(o => o.IoTApiId); // modelBuilder.Entity().HasOne(o => o.IoTProduct).WithMany(o => o.IoTDevices).HasForeignKey(o => o.IoTProductId); modelBuilder.Entity().HasOne(o => o.IoTGateway).WithMany(o => o.Devices).HasForeignKey(o => o.IoTGatewayId); modelBuilder.Entity().HasIndex(o => o.Number).IsUnique(); modelBuilder.Entity().HasOne(o => o.IoTDevice).WithMany(o => o.Data).HasForeignKey(o => o.IoTDeviceId); } } }