//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using SPMS.Infrastructure;
#nullable disable
namespace SPMS.Infrastructure.Migrations
{
[DbContext(typeof(AppDbContext))]
partial class AppDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("SPMS.Domain.Entities.Admin", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("AdminCode")
.IsRequired()
.HasMaxLength(8)
.HasColumnType("varchar(8)");
b.Property("AgreePrivacy")
.HasColumnType("tinyint(1)");
b.Property("AgreeTerms")
.HasColumnType("tinyint(1)");
b.Property("AgreedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("DeletedAt")
.HasColumnType("datetime(6)");
b.Property("Email")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("EmailVerified")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("EmailVerifiedAt")
.HasColumnType("datetime(6)");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("LastLoginAt")
.HasColumnType("datetime(6)");
b.Property("MustChangePassword")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property("Password")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property("Phone")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("varchar(20)");
b.Property("RefreshToken")
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property("RefreshTokenExpiresAt")
.HasColumnType("datetime(6)");
b.Property("Role")
.HasColumnType("tinyint");
b.Property("TempPasswordIssuedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("AdminCode")
.IsUnique();
b.HasIndex("Email")
.IsUnique();
b.ToTable("Admin", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.AppConfig", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("ConfigKey")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("ConfigValue")
.HasColumnType("text");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("ServiceId", "ConfigKey")
.IsUnique();
b.ToTable("AppConfig", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Banner", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("ImageUrl")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(true);
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("LinkType")
.HasMaxLength(20)
.HasColumnType("varchar(20)");
b.Property("LinkUrl")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("Position")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("Title")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("ServiceId");
b.ToTable("Banner", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.DailyStat", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("FailCnt")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property("OpenCnt")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property("SentCnt")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("StatDate")
.HasColumnType("date");
b.Property("SuccessCnt")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.HasKey("Id");
b.HasIndex("ServiceId", "StatDate")
.IsUnique();
b.ToTable("DailyStat", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Device", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("AgreeUpdatedAt")
.HasColumnType("datetime(6)");
b.Property("AppVersion")
.HasMaxLength(20)
.HasColumnType("varchar(20)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("DeviceModel")
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property("DeviceToken")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(true);
b.Property("MarketingAgreed")
.HasColumnType("tinyint(1)");
b.Property("MktAgreeUpdatedAt")
.HasColumnType("datetime(6)");
b.Property("OsVersion")
.HasMaxLength(20)
.HasColumnType("varchar(20)");
b.Property("Platform")
.HasColumnType("tinyint");
b.Property("PushAgreed")
.HasColumnType("tinyint(1)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("Tags")
.HasColumnType("json");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("ServiceId", "DeviceToken");
b.ToTable("Device", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Faq", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Answer")
.IsRequired()
.HasColumnType("text");
b.Property("Category")
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(true);
b.Property("Question")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("ServiceId");
b.ToTable("Faq", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.FileEntity", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedBy")
.HasColumnType("bigint");
b.Property("DeletedAt")
.HasColumnType("datetime(6)");
b.Property("FileName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property("FilePath")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("FileSize")
.HasColumnType("bigint");
b.Property("FileType")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("varchar(20)");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("MimeType")
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("CreatedBy");
b.HasIndex("ServiceId");
b.ToTable("File", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Message", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Body")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedBy")
.HasColumnType("bigint");
b.Property("CustomData")
.HasColumnType("json");
b.Property("DeletedAt")
.HasColumnType("datetime(6)");
b.Property("ImageUrl")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("LinkType")
.HasMaxLength(20)
.HasColumnType("varchar(20)");
b.Property("LinkUrl")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("MessageCode")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("Title")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.HasKey("Id");
b.HasIndex("CreatedBy");
b.HasIndex("MessageCode")
.IsUnique();
b.HasIndex("ServiceId");
b.ToTable("Message", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Notice", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Content")
.IsRequired()
.HasColumnType("text");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedBy")
.HasColumnType("bigint");
b.Property("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(true);
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("IsPinned")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("Title")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("CreatedBy");
b.HasIndex("ServiceId");
b.ToTable("Notice", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Notification", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Category")
.HasColumnType("tinyint unsigned");
b.Property("Content")
.IsRequired()
.HasMaxLength(1000)
.HasColumnType("varchar(1000)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsRead")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("LinkUrl")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReadAt")
.HasColumnType("datetime(6)");
b.Property("TargetAdminId")
.HasColumnType("bigint");
b.Property("Title")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.HasKey("Id");
b.HasIndex("TargetAdminId", "CreatedAt");
b.HasIndex("TargetAdminId", "IsRead");
b.ToTable("Notification", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Payment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("AdminId")
.HasColumnType("bigint");
b.Property("Amount")
.HasColumnType("int");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Currency")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property("PaidAt")
.HasColumnType("datetime(6)");
b.Property("PaymentKey")
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("PaymentMethod")
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("Status")
.HasColumnType("tinyint");
b.Property("TierAfter")
.HasColumnType("tinyint");
b.Property("TierBefore")
.HasColumnType("tinyint");
b.HasKey("Id");
b.HasIndex("AdminId");
b.HasIndex("ServiceId");
b.ToTable("Payment", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.PushOpenLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("DeviceId")
.HasColumnType("bigint");
b.Property("MessageId")
.HasColumnType("bigint");
b.Property("OpenedAt")
.HasColumnType("datetime(6)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("DeviceId");
b.HasIndex("MessageId");
b.HasIndex("ServiceId", "OpenedAt");
b.ToTable("PushOpenLog", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.PushSendLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("DeviceId")
.HasColumnType("bigint");
b.Property("FailReason")
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property("MessageId")
.HasColumnType("bigint");
b.Property("SentAt")
.HasColumnType("datetime(6)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("Status")
.HasColumnType("tinyint");
b.HasKey("Id");
b.HasIndex("DeviceId");
b.HasIndex("MessageId");
b.HasIndex("ServiceId", "SentAt");
b.ToTable("PushSendLog", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Service", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("ApiKey")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property("ApiKeyCreatedAt")
.HasColumnType("datetime(6)");
b.Property("ApnsAuthType")
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property("ApnsBundleId")
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("ApnsCertExpiresAt")
.HasColumnType("datetime(6)");
b.Property("ApnsCertPassword")
.HasColumnType("text");
b.Property("ApnsCertificate")
.HasColumnType("text");
b.Property("ApnsKeyId")
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property("ApnsPrivateKey")
.HasColumnType("text");
b.Property("ApnsTeamId")
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedBy")
.HasColumnType("bigint");
b.Property("DeletedAt")
.HasColumnType("datetime(6)");
b.Property("Description")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("FcmCredentials")
.HasColumnType("text");
b.Property("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue(false);
b.Property("ServiceCode")
.IsRequired()
.HasMaxLength(8)
.HasColumnType("varchar(8)");
b.Property("ServiceName")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("Status")
.HasColumnType("tinyint");
b.Property("SubStartedAt")
.HasColumnType("datetime(6)");
b.Property("SubTier")
.HasColumnType("tinyint");
b.Property("Tags")
.HasColumnType("json");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.Property("WebhookEvents")
.HasColumnType("longtext");
b.Property("WebhookUrl")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.HasKey("Id");
b.HasIndex("CreatedBy");
b.HasIndex("ServiceCode")
.IsUnique();
b.ToTable("Service", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.ServiceIp", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("IpAddress")
.IsRequired()
.HasMaxLength(45)
.HasColumnType("varchar(45)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("ServiceId");
b.ToTable("ServiceIp", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.SystemLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("Action")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("AdminId")
.HasColumnType("bigint");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Details")
.HasColumnType("json");
b.Property("IpAddress")
.HasMaxLength(45)
.HasColumnType("varchar(45)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("TargetId")
.HasColumnType("bigint");
b.Property("TargetType")
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.HasKey("Id");
b.HasIndex("AdminId");
b.HasIndex("CreatedAt");
b.HasIndex("ServiceId");
b.ToTable("SystemLog", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.Tag", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedBy")
.HasColumnType("bigint");
b.Property("Description")
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("CreatedBy");
b.HasIndex("ServiceId", "Name")
.IsUnique();
b.ToTable("Tag", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.WebhookLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
b.Property("EventType")
.HasColumnType("tinyint");
b.Property("Payload")
.IsRequired()
.HasColumnType("json");
b.Property("ResponseBody")
.HasColumnType("text");
b.Property("ResponseCode")
.HasColumnType("int");
b.Property("SentAt")
.HasColumnType("datetime(6)");
b.Property("ServiceId")
.HasColumnType("bigint");
b.Property("Status")
.HasColumnType("tinyint");
b.Property("WebhookUrl")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.HasKey("Id");
b.HasIndex("ServiceId", "SentAt");
b.ToTable("WebhookLog", (string)null);
});
modelBuilder.Entity("SPMS.Domain.Entities.AppConfig", b =>
{
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Banner", b =>
{
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.DailyStat", b =>
{
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Device", b =>
{
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany("Devices")
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Faq", b =>
{
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.FileEntity", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "CreatedByAdmin")
.WithMany()
.HasForeignKey("CreatedBy")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("CreatedByAdmin");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Message", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "CreatedByAdmin")
.WithMany()
.HasForeignKey("CreatedBy")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany("Messages")
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("CreatedByAdmin");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Notice", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "CreatedByAdmin")
.WithMany()
.HasForeignKey("CreatedBy")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("CreatedByAdmin");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Notification", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "TargetAdmin")
.WithMany()
.HasForeignKey("TargetAdminId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("TargetAdmin");
});
modelBuilder.Entity("SPMS.Domain.Entities.Payment", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "Admin")
.WithMany()
.HasForeignKey("AdminId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Admin");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.PushOpenLog", b =>
{
b.HasOne("SPMS.Domain.Entities.Device", "Device")
.WithMany()
.HasForeignKey("DeviceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Message", "Message")
.WithMany()
.HasForeignKey("MessageId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Device");
b.Navigation("Message");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.PushSendLog", b =>
{
b.HasOne("SPMS.Domain.Entities.Device", "Device")
.WithMany()
.HasForeignKey("DeviceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Message", "Message")
.WithMany()
.HasForeignKey("MessageId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Device");
b.Navigation("Message");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Service", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "CreatedByAdmin")
.WithMany()
.HasForeignKey("CreatedBy")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("CreatedByAdmin");
});
modelBuilder.Entity("SPMS.Domain.Entities.ServiceIp", b =>
{
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany("ServiceIps")
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.SystemLog", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "Admin")
.WithMany()
.HasForeignKey("AdminId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("Admin");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Tag", b =>
{
b.HasOne("SPMS.Domain.Entities.Admin", "CreatedByAdmin")
.WithMany()
.HasForeignKey("CreatedBy")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany("TagList")
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("CreatedByAdmin");
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.WebhookLog", b =>
{
b.HasOne("SPMS.Domain.Entities.Service", "Service")
.WithMany()
.HasForeignKey("ServiceId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Service");
});
modelBuilder.Entity("SPMS.Domain.Entities.Service", b =>
{
b.Navigation("Devices");
b.Navigation("Messages");
b.Navigation("ServiceIps");
b.Navigation("TagList");
});
#pragma warning restore 612, 618
}
}
}