98 lines
3.2 KiB
C#
98 lines
3.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace ASC.Core.Common.EF.Model
|
|
{
|
|
[Table("tenants_partners")]
|
|
public class DbTenantPartner
|
|
{
|
|
[Key]
|
|
[Column("tenant_id")]
|
|
public int TenantId { get; set; }
|
|
|
|
[Column("partner_id")]
|
|
public string PartnerId { get; set; }
|
|
|
|
[Column("affiliate_id")]
|
|
public string AffiliateId { get; set; }
|
|
|
|
[Column("campaign")]
|
|
public string Campaign { get; set; }
|
|
|
|
public DbTenant Tenant { get; set; }
|
|
}
|
|
public static class DbTenantPartnerExtension
|
|
{
|
|
public static ModelBuilderWrapper AddDbTenantPartner(this ModelBuilderWrapper modelBuilder)
|
|
{
|
|
modelBuilder
|
|
.Add(MySqlAddDbTenantPartner, Provider.MySql)
|
|
.Add(PgSqlAddDbTenantPartner, Provider.Postgre);
|
|
return modelBuilder;
|
|
}
|
|
public static void MySqlAddDbTenantPartner(this ModelBuilder modelBuilder)
|
|
{
|
|
modelBuilder.Entity<DbTenantPartner>(entity =>
|
|
{
|
|
entity.HasKey(e => e.TenantId)
|
|
.HasName("PRIMARY");
|
|
|
|
entity.ToTable("tenants_partners");
|
|
|
|
entity.Property(e => e.TenantId).HasColumnName("tenant_id");
|
|
|
|
entity.Property(e => e.AffiliateId)
|
|
.HasColumnName("affiliate_id")
|
|
.HasColumnType("varchar(50)")
|
|
.HasCharSet("utf8")
|
|
.HasCollation("utf8_general_ci");
|
|
|
|
entity.Property(e => e.Campaign)
|
|
.HasColumnName("campaign")
|
|
.HasColumnType("varchar(50)")
|
|
.HasCharSet("utf8")
|
|
.HasCollation("utf8_general_ci");
|
|
|
|
entity.Property(e => e.PartnerId)
|
|
.HasColumnName("partner_id")
|
|
.HasColumnType("varchar(36)")
|
|
.HasCharSet("utf8")
|
|
.HasCollation("utf8_general_ci");
|
|
});
|
|
|
|
}
|
|
public static void PgSqlAddDbTenantPartner(this ModelBuilder modelBuilder)
|
|
{
|
|
modelBuilder.Entity<DbTenantPartner>(entity =>
|
|
{
|
|
entity.HasKey(e => e.TenantId)
|
|
.HasName("tenants_partners_pkey");
|
|
|
|
entity.ToTable("tenants_partners", "onlyoffice");
|
|
|
|
entity.Property(e => e.TenantId)
|
|
.HasColumnName("tenant_id")
|
|
.ValueGeneratedNever();
|
|
|
|
entity.Property(e => e.AffiliateId)
|
|
.HasColumnName("affiliate_id")
|
|
.HasMaxLength(50)
|
|
.HasDefaultValueSql("NULL");
|
|
|
|
entity.Property(e => e.Campaign)
|
|
.HasColumnName("campaign")
|
|
.HasMaxLength(50)
|
|
.HasDefaultValueSql("NULL");
|
|
|
|
entity.Property(e => e.PartnerId)
|
|
.HasColumnName("partner_id")
|
|
.HasMaxLength(36)
|
|
.HasDefaultValueSql("NULL");
|
|
});
|
|
|
|
}
|
|
}
|
|
}
|