//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Moonlight.App.Database;
#nullable disable
namespace Moonlight.App.Database.Migrations
{
[DbContext(typeof(DataContext))]
[Migration("20230611152138_AddLastVisitedTimestamp")]
partial class AddLastVisitedTimestamp
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.3")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("Moonlight.App.Database.Entities.CloudPanel", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("ApiKey")
.IsRequired()
.HasColumnType("longtext");
b.Property("ApiUrl")
.IsRequired()
.HasColumnType("longtext");
b.Property("Host")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("CloudPanels");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.DdosAttack", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Data")
.HasColumnType("bigint");
b.Property("Ip")
.IsRequired()
.HasColumnType("longtext");
b.Property("NodeId")
.HasColumnType("int");
b.Property("Ongoing")
.HasColumnType("tinyint(1)");
b.HasKey("Id");
b.HasIndex("NodeId");
b.ToTable("DdosAttacks");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.DockerImage", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Default")
.HasColumnType("tinyint(1)");
b.Property("ImageId")
.HasColumnType("int");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.HasIndex("ImageId");
b.ToTable("DockerImages");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Domain", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("OwnerId")
.HasColumnType("int");
b.Property("SharedDomainId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("OwnerId");
b.HasIndex("SharedDomainId");
b.ToTable("Domains");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Image", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Allocations")
.HasColumnType("int");
b.Property("BackgroundImageUrl")
.IsRequired()
.HasColumnType("longtext");
b.Property("ConfigFiles")
.IsRequired()
.HasColumnType("longtext");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("InstallDockerImage")
.IsRequired()
.HasColumnType("longtext");
b.Property("InstallEntrypoint")
.IsRequired()
.HasColumnType("longtext");
b.Property("InstallScript")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("Startup")
.IsRequired()
.HasColumnType("longtext");
b.Property("StartupDetection")
.IsRequired()
.HasColumnType("longtext");
b.Property("StopCommand")
.IsRequired()
.HasColumnType("longtext");
b.Property("TagsJson")
.IsRequired()
.HasColumnType("longtext");
b.Property("Uuid")
.HasColumnType("char(36)");
b.HasKey("Id");
b.ToTable("Images");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.ImageVariable", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("DefaultValue")
.IsRequired()
.HasColumnType("longtext");
b.Property("ImageId")
.HasColumnType("int");
b.Property("Key")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.HasIndex("ImageId");
b.ToTable("ImageVariables");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.IpBan", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Ip")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("IpBans");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.LoadingMessage", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Message")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("LoadingMessages");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.LogsEntries.AuditLogEntry", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Ip")
.IsRequired()
.HasColumnType("longtext");
b.Property("JsonData")
.IsRequired()
.HasColumnType("longtext");
b.Property("System")
.HasColumnType("tinyint(1)");
b.Property("Type")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("AuditLog");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.LogsEntries.ErrorLogEntry", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Class")
.IsRequired()
.HasColumnType("longtext");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Ip")
.IsRequired()
.HasColumnType("longtext");
b.Property("JsonData")
.IsRequired()
.HasColumnType("longtext");
b.Property("Stacktrace")
.IsRequired()
.HasColumnType("longtext");
b.Property("System")
.HasColumnType("tinyint(1)");
b.HasKey("Id");
b.ToTable("ErrorLog");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.LogsEntries.SecurityLogEntry", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Ip")
.IsRequired()
.HasColumnType("longtext");
b.Property("JsonData")
.IsRequired()
.HasColumnType("longtext");
b.Property("System")
.HasColumnType("tinyint(1)");
b.Property("Type")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("SecurityLog");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.MySqlDatabase", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Password")
.IsRequired()
.HasColumnType("longtext");
b.Property("UserName")
.IsRequired()
.HasColumnType("longtext");
b.Property("WebSpaceId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("WebSpaceId");
b.ToTable("Databases");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.NewsEntry", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Date")
.HasColumnType("datetime(6)");
b.Property("Markdown")
.IsRequired()
.HasColumnType("longtext");
b.Property("Title")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("NewsEntries");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Node", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Fqdn")
.IsRequired()
.HasColumnType("longtext");
b.Property("HttpPort")
.HasColumnType("int");
b.Property("MoonlightDaemonPort")
.HasColumnType("int");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("SftpPort")
.HasColumnType("int");
b.Property("Ssl")
.HasColumnType("tinyint(1)");
b.Property("Token")
.IsRequired()
.HasColumnType("longtext");
b.Property("TokenId")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("Nodes");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.NodeAllocation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
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("NodeAllocations");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Notification.NotificationAction", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Action")
.IsRequired()
.HasColumnType("longtext");
b.Property("NotificationClientId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("NotificationClientId");
b.ToTable("NotificationActions");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Notification.NotificationClient", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("NotificationClients");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Revoke", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Identifier")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("Revokes");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Server", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Cpu")
.HasColumnType("int");
b.Property("Disk")
.HasColumnType("bigint");
b.Property("DockerImageIndex")
.HasColumnType("int");
b.Property("ImageId")
.HasColumnType("int");
b.Property("Installing")
.HasColumnType("tinyint(1)");
b.Property("IsCleanupException")
.HasColumnType("tinyint(1)");
b.Property("MainAllocationId")
.HasColumnType("int");
b.Property("Memory")
.HasColumnType("bigint");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("NodeId")
.HasColumnType("int");
b.Property("OverrideStartup")
.IsRequired()
.HasColumnType("longtext");
b.Property("OwnerId")
.HasColumnType("int");
b.Property("Suspended")
.HasColumnType("tinyint(1)");
b.Property("Uuid")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ImageId");
b.HasIndex("MainAllocationId");
b.HasIndex("NodeId");
b.HasIndex("OwnerId");
b.ToTable("Servers");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.ServerBackup", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Bytes")
.HasColumnType("bigint");
b.Property("Created")
.HasColumnType("tinyint(1)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property("ServerId")
.HasColumnType("int");
b.Property("Uuid")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ServerId");
b.ToTable("ServerBackups");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.ServerVariable", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
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");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.SharedDomain", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("CloudflareId")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("SharedDomains");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.StatisticsData", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Chart")
.IsRequired()
.HasColumnType("longtext");
b.Property("Date")
.HasColumnType("datetime(6)");
b.Property("Value")
.HasColumnType("double");
b.HasKey("Id");
b.ToTable("Statistics");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Subscription", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Description")
.IsRequired()
.HasColumnType("longtext");
b.Property("LimitsJson")
.IsRequired()
.HasColumnType("longtext");
b.Property("Name")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("Subscriptions");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.SupportChatMessage", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Answer")
.IsRequired()
.HasColumnType("longtext");
b.Property("Attachment")
.IsRequired()
.HasColumnType("longtext");
b.Property("Content")
.IsRequired()
.HasColumnType("longtext");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsQuestion")
.HasColumnType("tinyint(1)");
b.Property("QuestionType")
.HasColumnType("int");
b.Property("RecipientId")
.HasColumnType("int");
b.Property("SenderId")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("RecipientId");
b.HasIndex("SenderId");
b.ToTable("SupportChatMessages");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.User", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("Address")
.IsRequired()
.HasColumnType("longtext");
b.Property("Admin")
.HasColumnType("tinyint(1)");
b.Property("City")
.IsRequired()
.HasColumnType("longtext");
b.Property("Country")
.IsRequired()
.HasColumnType("longtext");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CurrentSubscriptionId")
.HasColumnType("int");
b.Property("DiscordId")
.HasColumnType("bigint unsigned");
b.Property("Email")
.IsRequired()
.HasColumnType("longtext");
b.Property("FirstName")
.IsRequired()
.HasColumnType("longtext");
b.Property("HasRated")
.HasColumnType("tinyint(1)");
b.Property("LastName")
.IsRequired()
.HasColumnType("longtext");
b.Property("LastVisitedAt")
.HasColumnType("datetime(6)");
b.Property("Password")
.IsRequired()
.HasColumnType("longtext");
b.Property("Rating")
.HasColumnType("int");
b.Property("State")
.IsRequired()
.HasColumnType("longtext");
b.Property("Status")
.HasColumnType("int");
b.Property("SubscriptionDuration")
.HasColumnType("int");
b.Property("SubscriptionSince")
.HasColumnType("datetime(6)");
b.Property("SupportPending")
.HasColumnType("tinyint(1)");
b.Property("TokenValidTime")
.HasColumnType("datetime(6)");
b.Property("TotpEnabled")
.HasColumnType("tinyint(1)");
b.Property("TotpSecret")
.IsRequired()
.HasColumnType("longtext");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("CurrentSubscriptionId");
b.ToTable("Users");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.WebSpace", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property("CloudPanelId")
.HasColumnType("int");
b.Property("Domain")
.IsRequired()
.HasColumnType("longtext");
b.Property("OwnerId")
.HasColumnType("int");
b.Property("Password")
.IsRequired()
.HasColumnType("longtext");
b.Property("UserName")
.IsRequired()
.HasColumnType("longtext");
b.Property("VHostTemplate")
.IsRequired()
.HasColumnType("longtext");
b.HasKey("Id");
b.HasIndex("CloudPanelId");
b.HasIndex("OwnerId");
b.ToTable("WebSpaces");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.DdosAttack", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Node", "Node")
.WithMany()
.HasForeignKey("NodeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Node");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.DockerImage", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Image", null)
.WithMany("DockerImages")
.HasForeignKey("ImageId");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Domain", b =>
{
b.HasOne("Moonlight.App.Database.Entities.User", "Owner")
.WithMany()
.HasForeignKey("OwnerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Moonlight.App.Database.Entities.SharedDomain", "SharedDomain")
.WithMany()
.HasForeignKey("SharedDomainId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Owner");
b.Navigation("SharedDomain");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.ImageVariable", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Image", null)
.WithMany("Variables")
.HasForeignKey("ImageId");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.MySqlDatabase", b =>
{
b.HasOne("Moonlight.App.Database.Entities.WebSpace", "WebSpace")
.WithMany("Databases")
.HasForeignKey("WebSpaceId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("WebSpace");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.NodeAllocation", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Node", null)
.WithMany("Allocations")
.HasForeignKey("NodeId");
b.HasOne("Moonlight.App.Database.Entities.Server", null)
.WithMany("Allocations")
.HasForeignKey("ServerId");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Notification.NotificationAction", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Notification.NotificationClient", "NotificationClient")
.WithMany()
.HasForeignKey("NotificationClientId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("NotificationClient");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Notification.NotificationClient", b =>
{
b.HasOne("Moonlight.App.Database.Entities.User", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Server", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Image", "Image")
.WithMany()
.HasForeignKey("ImageId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Moonlight.App.Database.Entities.NodeAllocation", "MainAllocation")
.WithMany()
.HasForeignKey("MainAllocationId");
b.HasOne("Moonlight.App.Database.Entities.Node", "Node")
.WithMany()
.HasForeignKey("NodeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Moonlight.App.Database.Entities.User", "Owner")
.WithMany()
.HasForeignKey("OwnerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Image");
b.Navigation("MainAllocation");
b.Navigation("Node");
b.Navigation("Owner");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.ServerBackup", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Server", null)
.WithMany("Backups")
.HasForeignKey("ServerId");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.ServerVariable", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Server", null)
.WithMany("Variables")
.HasForeignKey("ServerId");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.SupportChatMessage", b =>
{
b.HasOne("Moonlight.App.Database.Entities.User", "Recipient")
.WithMany()
.HasForeignKey("RecipientId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Moonlight.App.Database.Entities.User", "Sender")
.WithMany()
.HasForeignKey("SenderId");
b.Navigation("Recipient");
b.Navigation("Sender");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.User", b =>
{
b.HasOne("Moonlight.App.Database.Entities.Subscription", "CurrentSubscription")
.WithMany()
.HasForeignKey("CurrentSubscriptionId");
b.Navigation("CurrentSubscription");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.WebSpace", b =>
{
b.HasOne("Moonlight.App.Database.Entities.CloudPanel", "CloudPanel")
.WithMany()
.HasForeignKey("CloudPanelId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Moonlight.App.Database.Entities.User", "Owner")
.WithMany()
.HasForeignKey("OwnerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CloudPanel");
b.Navigation("Owner");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Image", b =>
{
b.Navigation("DockerImages");
b.Navigation("Variables");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Node", b =>
{
b.Navigation("Allocations");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.Server", b =>
{
b.Navigation("Allocations");
b.Navigation("Backups");
b.Navigation("Variables");
});
modelBuilder.Entity("Moonlight.App.Database.Entities.WebSpace", b =>
{
b.Navigation("Databases");
});
#pragma warning restore 612, 618
}
}
}