using Microsoft.EntityFrameworkCore; using System; using System.ComponentModel.DataAnnotations.Schema; namespace ASC.Core.Common.EF.Model.Resource { [Table("res_data")] public class ResData { public int Id { get; set; } public int FileId { get; set; } public string Title { get; set; } public string CultureTitle { get; set; } public string TextValue { get; set; } public string Description { get; set; } public DateTime TimeChanges { get; set; } public string ResourceType { get; set; } public int Flag { get; set; } public string Link { get; set; } public string AuthorLogin { get; set; } } public static class ResDataExtension { public static ModelBuilderWrapper AddResData(this ModelBuilderWrapper modelBuilder) { _ = modelBuilder .Add(MySqlAddResData, Provider.MySql) .Add(PgSqlAddResData, Provider.Postgre); return modelBuilder; } public static void MySqlAddResData(this ModelBuilder modelBuilder) { _ = modelBuilder.Entity(entity => { _ = entity.HasKey(e => new { e.FileId, e.CultureTitle, e.Title }) .HasName("PRIMARY"); _ = entity.ToTable("res_data"); _ = entity.HasIndex(e => e.CultureTitle) .HasName("resources_FK2"); _ = entity.HasIndex(e => e.Id) .HasName("id") .IsUnique(); _ = entity.HasIndex(e => e.TimeChanges) .HasName("dateIndex"); _ = entity.Property(e => e.FileId).HasColumnName("fileid"); _ = entity.Property(e => e.CultureTitle) .HasColumnName("cultureTitle") .HasColumnType("varchar(20)") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.Title) .HasColumnName("title") .HasColumnType("varchar(120)") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.AuthorLogin) .IsRequired() .HasColumnName("authorLogin") .HasColumnType("varchar(50)") .HasDefaultValueSql("'Console'") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.Description) .HasColumnName("description") .HasColumnType("text") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.Flag).HasColumnName("flag"); _ = entity.Property(e => e.Id) .HasColumnName("id") .ValueGeneratedOnAdd(); _ = entity.Property(e => e.Link) .HasColumnName("link") .HasColumnType("varchar(120)") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.ResourceType) .HasColumnName("resourceType") .HasColumnType("varchar(20)") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.TextValue) .HasColumnName("textValue") .HasColumnType("text") .HasCharSet("utf8") .HasCollation("utf8_general_ci"); _ = entity.Property(e => e.TimeChanges) .HasColumnName("timeChanges") .HasColumnType("timestamp") .HasDefaultValueSql("CURRENT_TIMESTAMP") .ValueGeneratedOnAddOrUpdate(); }); } public static void PgSqlAddResData(this ModelBuilder modelBuilder) { _ = modelBuilder.Entity(entity => { _ = entity.HasKey(e => new { e.FileId, e.CultureTitle, e.Title }) .HasName("res_data_pkey"); _ = entity.ToTable("res_data", "onlyoffice"); _ = entity.HasIndex(e => e.CultureTitle) .HasName("resources_FK2"); _ = entity.HasIndex(e => e.Id) .HasName("id_res_data") .IsUnique(); _ = entity.HasIndex(e => e.TimeChanges) .HasName("dateIndex"); _ = entity.Property(e => e.FileId).HasColumnName("fileid"); _ = entity.Property(e => e.CultureTitle) .HasColumnName("cultureTitle") .HasMaxLength(20); _ = entity.Property(e => e.Title) .HasColumnName("title") .HasMaxLength(120); _ = entity.Property(e => e.AuthorLogin) .IsRequired() .HasColumnName("authorLogin") .HasMaxLength(50) .HasDefaultValueSql("'Console'"); _ = entity.Property(e => e.Description).HasColumnName("description"); _ = entity.Property(e => e.Flag).HasColumnName("flag"); _ = entity.Property(e => e.Id) .HasColumnName("id") .ValueGeneratedOnAdd(); _ = entity.Property(e => e.Link) .HasColumnName("link") .HasMaxLength(120) .HasDefaultValueSql("NULL"); _ = entity.Property(e => e.ResourceType) .HasColumnName("resourceType") .HasMaxLength(20) .HasDefaultValueSql("NULL"); _ = entity.Property(e => e.TextValue).HasColumnName("textValue"); _ = entity.Property(e => e.TimeChanges) .HasColumnName("timeChanges") .HasDefaultValueSql("CURRENT_TIMESTAMP"); }); } } }