using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations.Schema; namespace ASC.Core.Common.EF.Model.Mail { [Table("mail_server_server")] public class ServerServer { public int Id { get; set; } [Column("mx_record")] public string MxRecord { get; set; } [Column("connection_string")] public string ConnectionString { get; set; } [Column("server_type")] public int ServerType { get; set; } [Column("smtp_settings_id")] public int SmtpSettingsId { get; set; } [Column("imap_settings_id")] public int ImapSettingsId { get; set; } } public static class ServerServerExtension { public static ModelBuilderWrapper AddServerServer(this ModelBuilderWrapper modelBuilder) { _ = modelBuilder .Add(MySqlAddServerServer, Provider.MySql) .Add(PgSqlAddServerServer, Provider.Postgre); return modelBuilder; } public static void MySqlAddServerServer(this ModelBuilder modelBuilder) { _ = modelBuilder.Entity(entity => { _ = entity.ToTable("mail_server_server"); _ = entity.HasIndex(e => e.ServerType) .HasName("mail_server_server_type_server_type_fk_id"); _ = entity.Property(e => e.Id).HasColumnName("id"); _ = entity.Property(e => e.ConnectionString) .IsRequired() .HasColumnName("connection_string") .HasColumnType("text") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.ImapSettingsId).HasColumnName("imap_settings_id"); _ = entity.Property(e => e.MxRecord) .IsRequired() .HasColumnName("mx_record") .HasColumnType("varchar(128)") .HasDefaultValueSql("''") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.ServerType).HasColumnName("server_type"); _ = entity.Property(e => e.SmtpSettingsId).HasColumnName("smtp_settings_id"); }); } public static void PgSqlAddServerServer(this ModelBuilder modelBuilder) { _ = modelBuilder.Entity(entity => { _ = entity.ToTable("mail_server_server", "onlyoffice"); _ = entity.HasIndex(e => e.ServerType) .HasName("mail_server_server_type_server_type_fk_id"); _ = entity.Property(e => e.Id).HasColumnName("id"); _ = entity.Property(e => e.ConnectionString) .IsRequired() .HasColumnName("connection_string"); _ = entity.Property(e => e.ImapSettingsId).HasColumnName("imap_settings_id"); _ = entity.Property(e => e.MxRecord) .IsRequired() .HasColumnName("mx_record") .HasMaxLength(128) .HasDefaultValueSql("' '"); _ = entity.Property(e => e.ServerType).HasColumnName("server_type"); _ = entity.Property(e => e.SmtpSettingsId).HasColumnName("smtp_settings_id"); }); } } }