DocSpace-buildtools/common/ASC.Core.Common/EF/Model/Mail/Mailbox.cs

316 lines
12 KiB
C#
Raw Normal View History

2022-02-15 11:52:43 +00:00
namespace ASC.Core.Common.EF.Model.Mail;
public class Mailbox
2019-12-13 11:37:58 +00:00
{
2022-02-15 11:52:43 +00:00
public int Id { get; set; }
public int Tenant { get; set; }
public string IdUser { get; set; }
public string Address { get; set; }
public string Name { get; set; }
public bool Enabled { get; set; }
public bool IsRemoved { get; set; }
public bool IsProcessed { get; set; }
public bool IsServerMailbox { get; set; }
public bool IsTeamlabMailbox { get; set; }
public bool Imap { get; set; }
public bool UserOnline { get; set; }
public bool IsDefault { get; set; }
public int MsgCountLast { get; set; }
public int SizeLast { get; set; }
public int LoginDelay { get; set; }
public bool QuotaError { get; set; }
public string ImapIntervals { get; set; }
public DateTime BeginDate { get; set; }
public string EmailInFolder { get; set; }
public string Pop3Password { get; set; }
public string SmtpPassword { get; set; }
public int TokenType { get; set; }
public string Token { get; set; }
public int IdSmtpServer { get; set; }
public int IdInServer { get; set; }
public DateTime DateChecked { get; set; }
public DateTime DateUserChecked { get; set; }
public DateTime DateLoginDelayExpires { get; set; }
public DateTime? DateAuthError { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateModified { get; set; }
}
2022-02-15 11:52:43 +00:00
public static class MailboxExtension
{
public static ModelBuilderWrapper AddMailbox(this ModelBuilderWrapper modelBuilder)
2020-08-21 02:34:37 +00:00
{
2022-02-15 11:52:43 +00:00
modelBuilder
.Add(MySqlAddMailbox, Provider.MySql)
.Add(PgSqlAddMailbox, Provider.PostgreSql);
2022-02-15 11:52:43 +00:00
return modelBuilder;
}
public static void MySqlAddMailbox(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<Mailbox>(entity =>
2020-08-21 02:34:37 +00:00
{
2022-02-15 11:52:43 +00:00
entity.ToTable("mail_mailbox");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => e.Address)
.HasDatabaseName("address_index");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => e.IdInServer)
.HasDatabaseName("main_mailbox_id_in_server_mail_mailbox_server_id");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => e.IdSmtpServer)
.HasDatabaseName("main_mailbox_id_smtp_server_mail_mailbox_server_id");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => new { e.DateChecked, e.DateLoginDelayExpires })
.HasDatabaseName("date_login_delay_expires");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => new { e.Tenant, e.IdUser })
.HasDatabaseName("user_id_index");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Id).HasColumnName("id");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Address)
.IsRequired()
.HasColumnName("address")
.HasColumnType("varchar(255)")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.BeginDate)
.HasColumnName("begin_date")
.HasColumnType("timestamp")
.HasDefaultValueSql("'1975-01-01 00:00:00'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateAuthError)
.HasColumnName("date_auth_error")
.HasColumnType("datetime");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateChecked)
.HasColumnName("date_checked")
.HasColumnType("datetime");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateCreated)
.HasColumnName("date_created")
.HasColumnType("datetime");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateLoginDelayExpires)
.HasColumnName("date_login_delay_expires")
.HasColumnType("datetime")
.HasDefaultValueSql("'1975-01-01 00:00:00'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateModified)
.HasColumnName("date_modified")
.HasColumnType("timestamp")
.HasDefaultValueSql("CURRENT_TIMESTAMP")
.ValueGeneratedOnAddOrUpdate();
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateUserChecked)
.HasColumnName("date_user_checked")
.HasColumnType("datetime");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.EmailInFolder)
.HasColumnName("email_in_folder")
.HasColumnType("text")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Enabled)
.HasColumnName("enabled")
.HasDefaultValueSql("'1'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IdInServer).HasColumnName("id_in_server");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IdSmtpServer).HasColumnName("id_smtp_server");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IdUser)
.IsRequired()
.HasColumnName("id_user")
.HasColumnType("varchar(38)")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Imap).HasColumnName("imap");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.ImapIntervals)
.HasColumnName("imap_intervals")
.HasColumnType("mediumtext")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsDefault).HasColumnName("is_default");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsProcessed).HasColumnName("is_processed");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsRemoved).HasColumnName("is_removed");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsServerMailbox).HasColumnName("is_server_mailbox");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.LoginDelay)
.HasColumnName("login_delay")
.HasDefaultValueSql("'30'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.MsgCountLast).HasColumnName("msg_count_last");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Name)
.HasColumnName("name")
.HasColumnType("varchar(255)")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Pop3Password)
.HasColumnName("pop3_password")
.HasColumnType("varchar(255)")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.QuotaError).HasColumnName("quota_error");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.SizeLast).HasColumnName("size_last");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.SmtpPassword)
.HasColumnName("smtp_password")
.HasColumnType("varchar(255)")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Tenant).HasColumnName("tenant");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Token)
.HasColumnName("token")
.HasColumnType("text")
.HasCharSet("utf8")
.UseCollation("utf8_general_ci");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.TokenType).HasColumnName("token_type");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.UserOnline).HasColumnName("user_online");
});
}
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
public static void PgSqlAddMailbox(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<Mailbox>(entity =>
2020-08-21 02:34:37 +00:00
{
2022-02-15 11:52:43 +00:00
entity.ToTable("mail_mailbox", "onlyoffice");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => e.Address)
.HasDatabaseName("address_index");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => e.IdInServer)
.HasDatabaseName("main_mailbox_id_in_server_mail_mailbox_server_id");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => e.IdSmtpServer)
.HasDatabaseName("main_mailbox_id_smtp_server_mail_mailbox_server_id");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => new { e.DateChecked, e.DateLoginDelayExpires })
.HasDatabaseName("date_login_delay_expires");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.HasIndex(e => new { e.Tenant, e.IdUser })
.HasDatabaseName("user_id_index");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Id).HasColumnName("id");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Address)
.IsRequired()
.HasColumnName("address")
.HasMaxLength(255);
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.BeginDate)
.HasColumnName("begin_date")
.HasDefaultValueSql("'1975-01-01 00:00:00'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateAuthError).HasColumnName("date_auth_error");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateChecked).HasColumnName("date_checked");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateCreated).HasColumnName("date_created");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateLoginDelayExpires)
.HasColumnName("date_login_delay_expires")
.HasDefaultValueSql("'1975-01-01 00:00:00'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateModified)
.HasColumnName("date_modified")
.HasDefaultValueSql("CURRENT_TIMESTAMP");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.DateUserChecked).HasColumnName("date_user_checked");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.EmailInFolder).HasColumnName("email_in_folder");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Enabled)
.HasColumnName("enabled")
.HasDefaultValueSql("'1'::smallint");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IdInServer).HasColumnName("id_in_server");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IdSmtpServer).HasColumnName("id_smtp_server");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IdUser)
.IsRequired()
.HasColumnName("id_user")
.HasMaxLength(38);
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Imap)
.HasColumnName("imap")
.HasDefaultValueSql("'0'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.ImapIntervals).HasColumnName("imap_intervals");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsDefault)
.HasColumnName("is_default")
.HasDefaultValueSql("'0'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsProcessed)
.HasColumnName("is_processed")
.HasDefaultValueSql("'0'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsRemoved)
.HasColumnName("is_removed")
.HasDefaultValueSql("'0'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.IsServerMailbox)
.HasColumnName("is_server_mailbox")
.HasDefaultValueSql("'0'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.LoginDelay)
.HasColumnName("login_delay")
.HasDefaultValueSql("'30'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.MsgCountLast).HasColumnName("msg_count_last");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Name)
.HasColumnName("name")
.HasMaxLength(255)
.HasDefaultValueSql("NULL");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Pop3Password)
.HasColumnName("pop3_password")
.HasMaxLength(255)
.HasDefaultValueSql("NULL");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.QuotaError)
.HasColumnName("quota_error")
.HasDefaultValueSql("'0'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.SizeLast).HasColumnName("size_last");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.SmtpPassword)
.HasColumnName("smtp_password")
.HasMaxLength(255)
.HasDefaultValueSql("NULL");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Tenant).HasColumnName("tenant");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.Token).HasColumnName("token");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.TokenType)
.HasColumnName("token_type")
.HasDefaultValueSql("'0'");
2020-08-21 02:34:37 +00:00
2022-02-15 11:52:43 +00:00
entity.Property(e => e.UserOnline)
.HasColumnName("user_online")
.HasDefaultValueSql("'0'");
});
2020-08-21 02:34:37 +00:00
}
2019-12-13 11:37:58 +00:00
}