Commit e26e22c9 authored by Eric Dieckman's avatar Eric Dieckman
Browse files

move models to more specific naming

parent dfcd75e9
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
using Cals.Visor.Models;
using Cals.Visor.Models.Identity;
using Microsoft.EntityFrameworkCore;

@@ -13,6 +14,15 @@ public class ApplicationDbContext : DbContext
    }

    public DbSet<AppUser> Users => Set<AppUser>();
    public DbSet<Person> People => Set<Person>();
    public DbSet<PaloAltoFirewall> Firewalls => Set<PaloAltoFirewall>();
    public DbSet<Subnet> Subnets => Set<Subnet>();
    public DbSet<WiscNicArea> Areas => Set<WiscNicArea>();
    public DbSet<PaloAltoAccessDomain> AccessDomains => Set<PaloAltoAccessDomain>();
    public DbSet<Vlan> Vlans => Set<Vlan>();
    public DbSet<PaloAltoVsys> Vsyses => Set<PaloAltoVsys>();
    public DbSet<WiscNicGroup> WiscNicGroups => Set<WiscNicGroup>();
    public DbSet<WiscNicGroupMembershipType> WiscNicGroupMembershipTypes => Set<WiscNicGroupMembershipType>();

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
+13 −0
Original line number Diff line number Diff line
@@ -6,6 +6,19 @@ internal sealed class TableNames
    internal const string Users = "appuser";
    internal const string OutboxMessages = "outbox";
    internal const string InternalCommands = "internal_command";
    internal const string PaloAltoAccessDomains = "pa_access_domains";
    internal const string WiscNicAreas = "wn_areas";
    internal const string PaloAltoFirewalls = "pa_firewalls";
    internal const string PaloAltoFirewallVlans = "pa_firewalls_vlans";
    internal const string Locations = "locations";
    internal const string LocationVlans = "locations_vlans";
    internal const string People = "people";
    internal const string Subnets = "subnets";
    internal const string Vlans = "vlans";
    internal const string PaloAltoVsyses = "pa_vsyses";
    internal const string WiscNicGroupMembers = "wn_group_members";
    internal const string WiscNicGroupMembershipTypes = "wn_group_membership_types";
    internal const string WiscNicGroups = "wn_groups";

#pragma warning restore IDE1006 // Naming Styles
}
+57 −0
Original line number Diff line number Diff line
using Cals.Visor.Infrastructure.Database;
using Cals.Visor.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Cals.Visor.Infrastructure.Models;

public class LocationEntityTypeConfiguration : IEntityTypeConfiguration<Location>
{
    public void Configure(EntityTypeBuilder<Location> builder)
    {
        builder.ToTable(TableNames.Locations);

        builder.HasKey(e => e.LocationId);

        builder
            .Property(e => e.Name)
            .HasMaxLength(100);

        builder
            .Property(e => e.Description)
            .HasColumnName("descr")
            .HasMaxLength(255);

        // Configure many-to-many: Location ↔ Vlan
        builder
            .HasMany(l => l.Vlans)
            .WithMany() // You can add .WithMany(v => v.Locations) if you add a Locations collection to Vlan
            .UsingEntity<Dictionary<string, object>>(
                "locations_vlans",
                j => j
                    .HasOne<Vlan>()
                    .WithMany()
                    .HasForeignKey("vlan_id"),
                j => j
                    .HasOne<Location>()
                    .WithMany()
                    .HasForeignKey("location_id"),
                j =>
                {
                    j.ToTable(TableNames.LocationVlans);

                    j.HasKey("location_vlan_id");

                    j.Property<long>("location_vlan_id")
                        .HasColumnName("location_vlan_id");

                    j.Property<long>("location_id")
                        .HasColumnName("location_id");

                    j.Property<long>("vlan_id")
                        .HasColumnName("vlan_id");
                }
            );
    }
}
+26 −0
Original line number Diff line number Diff line
using Cals.Visor.Infrastructure.Database;
using Cals.Visor.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Cals.Visor.Infrastructure.Models;

public class PaloAltoAccessDomainEntityTypeConfiguration : IEntityTypeConfiguration<PaloAltoAccessDomain>
{
    public void Configure(EntityTypeBuilder<PaloAltoAccessDomain> builder)
    {
        builder.ToTable(TableNames.PaloAltoAccessDomains);

        builder.HasKey(e => e.AccessDomainId);

        builder.Property(e => e.Name)
            .HasMaxLength(100);

        builder.Property(e => e.ManifestUuid)
            .HasMaxLength(100);

        builder.Property(e => e.ManifestPath)
            .HasMaxLength(500);
    }
}
+21 −0
Original line number Diff line number Diff line
using Cals.Visor.Infrastructure.Database;
using Cals.Visor.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Cals.Visor.Infrastructure.Models;

public class PaloAltoFirewallEntityTypeConfiguration : IEntityTypeConfiguration<PaloAltoFirewall>
{
    public void Configure(EntityTypeBuilder<PaloAltoFirewall> builder)
    {
        builder.ToTable(TableNames.PaloAltoFirewalls);

        builder.HasKey(e => e.FirewallId);

        builder.Property(e => e.Name)
            .HasMaxLength(100);

    }
}
Loading