//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using MoonlightServers.ApiServer.Database;
#nullable disable
namespace MoonlightServers.ApiServer.Database.Migrations
{
[DbContext(typeof(ServersContext))]
partial class ServersContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Servers")
.HasAnnotation("ProductVersion", "8.0.7")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Allocation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("IpAddress")
.IsRequired()
.HasColumnType("longtext");
b.Property("NodeId")
.HasColumnType("int");
b.Property("Port")
.HasColumnType("int");
b.Property("ServerId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("NodeId");
b.HasIndex("ServerId");
b.ToTable("Allocations", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Backup", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("FinishedAt")
.HasColumnType("datetime(6)");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("ServerId")
.HasColumnType("int");
b.Property("Size")
.HasColumnType("bigint");
b.Property("State")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ServerId");
b.ToTable("Backups", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Network", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("NodeId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("NodeId");
b.ToTable("Networks", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Node", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("ApiPort")
.HasColumnType("int");
b.Property("Fqdn")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("SslEnabled")
.HasColumnType("tinyint(1)");
b.Property("Token")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("Nodes", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Server", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Cpu")
.HasColumnType("int");
b.Property("Disk")
.HasColumnType("int");
b.Property("DockerImageIndex")
.HasColumnType("int");
b.Property("Memory")
.HasColumnType("int");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("NetworkId")
.HasColumnType("int");
b.Property("NodeId")
.HasColumnType("int");
b.Property("OverrideDockerImage")
.HasColumnType("longtext");
b.Property("OverrideStartupCommand")
.HasColumnType("longtext");
b.Property("StarId")
.HasColumnType("int");
b.Property("VirtualDiskEnabled")
.HasColumnType("tinyint(1)");
b.HasKey("Id");
b.HasIndex("NetworkId");
b.HasIndex("NodeId");
b.HasIndex("StarId");
b.ToTable("Servers", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.ServerVariable", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Key")
.IsRequired()
.HasColumnType("longtext");
b.Property("ServerId")
.HasColumnType("int");
b.Property("Value")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.HasIndex("ServerId");
b.ToTable("ServerVariables", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Star", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("AllowDockerImageChanging")
.HasColumnType("tinyint(1)");
b.Property("Author")
.IsRequired()
.HasColumnType("longtext");
b.Property("DefaultDockerImageIndex")
.HasColumnType("int");
b.Property("DonationUrl")
.HasColumnType("longtext");
b.Property("FolderId")
.HasColumnType("int");
b.Property("InstallDockerImage")
.IsRequired()
.HasColumnType("longtext");
b.Property("InstallScript")
.IsRequired()
.HasColumnType("longtext");
b.Property("InstallShell")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("OnlineDetection")
.IsRequired()
.HasColumnType("longtext");
b.Property("ParseConfiguration")
.IsRequired()
.HasColumnType("longtext");
b.Property("RequiredAllocations")
.HasColumnType("int");
b.Property("StartupCommand")
.IsRequired()
.HasColumnType("longtext");
b.Property("StopCommand")
.IsRequired()
.HasColumnType("longtext");
b.Property("UpdateUrl")
.HasColumnType("longtext");
b.HasKey("Id");
b.HasIndex("FolderId");
b.ToTable("Stars", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.StarDockerImage", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("AutoPulling")
.HasColumnType("tinyint(1)");
b.Property("DisplayName")
.IsRequired()
.HasColumnType("longtext");
b.Property("Identifier")
.IsRequired()
.HasColumnType("longtext");
b.Property("StarId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("StarId");
b.ToTable("StarDockerImages", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.StarFolder", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("StarFolders", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.StarVariable", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("AllowEditing")
.HasColumnType("tinyint(1)");
b.Property("AllowViewing")
.HasColumnType("tinyint(1)");
b.Property("DefaultValue")
.IsRequired()
.HasColumnType("longtext");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("DisplayName")
.IsRequired()
.HasColumnType("longtext");
b.Property("Filter")
.HasColumnType("longtext");
b.Property("Key")
.IsRequired()
.HasColumnType("longtext");
b.Property("StarId")
.HasColumnType("int");
b.Property("Type")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("StarId");
b.ToTable("StarVariables", "Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Allocation", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Node", "Node")
.WithMany("Allocations")
.HasForeignKey("NodeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Server", "Server")
.WithMany("Allocations")
.HasForeignKey("ServerId");
b.Navigation("Node");
b.Navigation("Server");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Backup", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Server", "Server")
.WithMany("Backups")
.HasForeignKey("ServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Server");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Network", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Node", "Node")
.WithMany()
.HasForeignKey("NodeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Node");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Server", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Network", "Network")
.WithMany("Servers")
.HasForeignKey("NetworkId");
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Node", "Node")
.WithMany("Servers")
.HasForeignKey("NodeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Star", "Star")
.WithMany()
.HasForeignKey("StarId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Network");
b.Navigation("Node");
b.Navigation("Star");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.ServerVariable", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Server", "Server")
.WithMany("Variables")
.HasForeignKey("ServerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Server");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Star", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.StarFolder", "Folder")
.WithMany("Stars")
.HasForeignKey("FolderId");
b.Navigation("Folder");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.StarDockerImage", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Star", null)
.WithMany("DockerImages")
.HasForeignKey("StarId");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.StarVariable", b =>
{
b.HasOne("MoonlightServers.ApiServer.Database.Entities.Star", null)
.WithMany("Variables")
.HasForeignKey("StarId");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Network", b =>
{
b.Navigation("Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Node", b =>
{
b.Navigation("Allocations");
b.Navigation("Servers");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Server", b =>
{
b.Navigation("Allocations");
b.Navigation("Backups");
b.Navigation("Variables");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.Star", b =>
{
b.Navigation("DockerImages");
b.Navigation("Variables");
});
modelBuilder.Entity("MoonlightServers.ApiServer.Database.Entities.StarFolder", b =>
{
b.Navigation("Stars");
});
#pragma warning restore 612, 618
}
}
}