DocSpace-buildtools/common/ASC.Core.Common/EF/Model/CRM/VoipNumber.cs
2020-10-12 22:39:23 +03:00

94 lines
3.2 KiB
C#

using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations.Schema;
namespace ASC.Core.Common.EF.Model
{
[Table("crm_voip_number")]
public class VoipNumber
{
public string Id { get; set; }
public string Number { get; set; }
public string Alias { get; set; }
public string Settings { get; set; }
[Column("tenant_id")]
public int TenantId { get; set; }
}
public static class VoipNumberExtension
{
public static ModelBuilderWrapper AddVoipNumber(this ModelBuilderWrapper modelBuilder)
{
modelBuilder
.Add(MySqlAddVoipNumber, Provider.MySql)
.Add(PgSqlAddVoipNumber, Provider.Postgre);
return modelBuilder;
}
public static void MySqlAddVoipNumber(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<VoipNumber>(entity =>
{
entity.ToTable("crm_voip_number");
entity.HasIndex(e => e.TenantId)
.HasName("tenant_id");
entity.Property(e => e.Id)
.HasColumnName("id")
.HasColumnType("varchar(50)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
entity.Property(e => e.Alias)
.HasColumnName("alias")
.HasColumnType("varchar(255)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
entity.Property(e => e.Number)
.IsRequired()
.HasColumnName("number")
.HasColumnType("varchar(50)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
entity.Property(e => e.Settings)
.HasColumnName("settings")
.HasColumnType("text")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
entity.Property(e => e.TenantId).HasColumnName("tenant_id");
});
}
public static void PgSqlAddVoipNumber(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<VoipNumber>(entity =>
{
entity.ToTable("crm_voip_number", "onlyoffice");
entity.HasIndex(e => e.TenantId)
.HasName("tenant_id_crm_voip_number");
entity.Property(e => e.Id)
.HasColumnName("id")
.HasMaxLength(50);
entity.Property(e => e.Alias)
.HasColumnName("alias")
.HasMaxLength(255)
.HasDefaultValueSql("NULL");
entity.Property(e => e.Number)
.IsRequired()
.HasColumnName("number")
.HasMaxLength(50);
entity.Property(e => e.Settings).HasColumnName("settings");
entity.Property(e => e.TenantId).HasColumnName("tenant_id");
});
}
}
}