DocSpace-client/common/ASC.Core.Common/EF/Model/CRM/DbVoipCall.cs

213 lines
7.4 KiB
C#
Raw Normal View History

2020-08-21 02:34:37 +00:00
using Microsoft.EntityFrameworkCore;
2020-10-12 16:23:15 +00:00
2020-08-21 02:34:37 +00:00
using System;
2019-12-11 14:30:28 +00:00
using System.ComponentModel.DataAnnotations.Schema;
namespace ASC.Core.Common.EF.Model
{
[Table("crm_voip_calls")]
public class DbVoipCall
{
public string Id { get; set; }
[Column("parent_call_id")]
public string ParentCallId { get; set; }
[Column("number_from")]
public string NumberFrom { get; set; }
[Column("number_to")]
public string NumberTo { get; set; }
public int Status { get; set; }
[Column("answered_by")]
public Guid AnsweredBy { get; set; }
[Column("dial_date")]
public DateTime DialDate { get; set; }
[Column("dial_duration")]
public int DialDuration { get; set; }
[Column("record_sid")]
public string RecordSid { get; set; }
[Column("record_url")]
public string RecordUrl { get; set; }
[Column("record_duration")]
public int RecordDuration { get; set; }
[Column("record_price")]
public decimal RecordPrice { get; set; }
[Column("contact_id")]
public int ContactId { get; set; }
public decimal Price { get; set; }
[Column("tenant_id")]
public int TenantId { get; set; }
public CrmContact CrmContact { get; set; }
}
2020-08-21 02:34:37 +00:00
public static class DbVoipCallExtension
{
2020-09-06 22:49:03 +00:00
public static ModelBuilderWrapper AddDbVoipCall(this ModelBuilderWrapper modelBuilder)
{
2020-10-12 19:39:23 +00:00
modelBuilder
2020-09-06 22:49:03 +00:00
.Add(MySqlAddDbVoipCall, Provider.MySql)
2020-10-08 09:07:05 +00:00
.Add(PgSqlAddDbVoipCall, Provider.Postgre);
2020-09-06 22:49:03 +00:00
return modelBuilder;
}
public static void MySqlAddDbVoipCall(this ModelBuilder modelBuilder)
2020-08-21 02:34:37 +00:00
{
2020-10-12 19:39:23 +00:00
modelBuilder.Entity<DbVoipCall>(entity =>
2020-08-21 02:34:37 +00:00
{
2020-10-12 19:39:23 +00:00
entity.ToTable("crm_voip_calls");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.HasIndex(e => e.TenantId)
2020-08-21 02:34:37 +00:00
.HasName("tenant_id");
2020-10-12 19:39:23 +00:00
entity.HasIndex(e => new { e.ParentCallId, e.TenantId })
2020-08-21 02:34:37 +00:00
.HasName("parent_call_id");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.Id)
2020-08-21 02:34:37 +00:00
.HasColumnName("id")
.HasColumnType("varchar(50)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.AnsweredBy)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("answered_by")
.HasColumnType("varchar(50)")
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.ContactId).HasColumnName("contact_id");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.DialDate)
2020-08-21 02:34:37 +00:00
.HasColumnName("dial_date")
.HasColumnType("datetime");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.DialDuration).HasColumnName("dial_duration");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.NumberFrom)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("number_from")
.HasColumnType("varchar(50)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.NumberTo)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("number_to")
.HasColumnType("varchar(50)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.ParentCallId)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("parent_call_id")
.HasColumnType("varchar(50)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.Price)
2020-08-21 02:34:37 +00:00
.HasColumnName("price")
.HasColumnType("decimal(10,4)");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordDuration).HasColumnName("record_duration");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordPrice)
2020-08-21 02:34:37 +00:00
.HasColumnName("record_price")
.HasColumnType("decimal(10,4)");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordSid)
2020-08-21 02:34:37 +00:00
.HasColumnName("record_sid")
.HasColumnType("varchar(50)")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordUrl)
2020-08-21 02:34:37 +00:00
.HasColumnName("record_url")
.HasColumnType("text")
.HasCharSet("utf8")
.HasCollation("utf8_general_ci");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.Status).HasColumnName("status");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.TenantId).HasColumnName("tenant_id");
2020-08-21 02:34:37 +00:00
});
}
2020-09-06 22:49:03 +00:00
public static void PgSqlAddDbVoipCall(this ModelBuilder modelBuilder)
2020-08-21 02:34:37 +00:00
{
2020-10-12 19:39:23 +00:00
modelBuilder.Entity<DbVoipCall>(entity =>
2020-08-21 02:34:37 +00:00
{
2020-10-12 19:39:23 +00:00
entity.ToTable("crm_voip_calls", "onlyoffice");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.HasIndex(e => e.TenantId)
2020-08-21 02:34:37 +00:00
.HasName("tenant_id_crm_voip_calls");
2020-10-12 19:39:23 +00:00
entity.HasIndex(e => new { e.ParentCallId, e.TenantId })
2020-08-21 02:34:37 +00:00
.HasName("parent_call_id");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.Id)
2020-08-21 02:34:37 +00:00
.HasColumnName("id")
.HasMaxLength(50);
2020-10-12 19:39:23 +00:00
entity.Property(e => e.AnsweredBy)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("answered_by")
.HasMaxLength(50)
2020-09-06 22:49:03 +00:00
.HasDefaultValueSql("'00000000-0000-0000-0000-000000000000'");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.ContactId).HasColumnName("contact_id");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.DialDate).HasColumnName("dial_date");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.DialDuration).HasColumnName("dial_duration");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.NumberFrom)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("number_from")
.HasMaxLength(50);
2020-10-12 19:39:23 +00:00
entity.Property(e => e.NumberTo)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("number_to")
.HasMaxLength(50);
2020-10-12 19:39:23 +00:00
entity.Property(e => e.ParentCallId)
2020-08-21 02:34:37 +00:00
.IsRequired()
.HasColumnName("parent_call_id")
.HasMaxLength(50);
2020-10-12 19:39:23 +00:00
entity.Property(e => e.Price)
2020-08-21 02:34:37 +00:00
.HasColumnName("price")
.HasColumnType("numeric(10,4)")
2020-09-29 17:09:39 +00:00
.HasDefaultValueSql("NULL");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordDuration).HasColumnName("record_duration");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordPrice)
2020-08-21 02:34:37 +00:00
.HasColumnName("record_price")
.HasColumnType("numeric(10,4)");
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordSid)
2020-08-21 02:34:37 +00:00
.HasColumnName("record_sid")
.HasMaxLength(50)
2020-09-29 17:09:39 +00:00
.HasDefaultValueSql("NULL");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.RecordUrl).HasColumnName("record_url");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.Status).HasColumnName("status");
2020-08-21 02:34:37 +00:00
2020-10-12 19:39:23 +00:00
entity.Property(e => e.TenantId).HasColumnName("tenant_id");
2020-08-21 02:34:37 +00:00
});
}
}
2019-12-11 14:30:28 +00:00
}