diff --git a/src/FilterLists.Data/Entities/FilterListRule.cs b/src/FilterLists.Data/Entities/FilterListRule.cs new file mode 100644 index 000000000..808042248 --- /dev/null +++ b/src/FilterLists.Data/Entities/FilterListRule.cs @@ -0,0 +1,11 @@ +namespace FilterLists.Data.Entities +{ + public class FilterListRule : BaseEntity + { + public int FilterListId { get; set; } + public FilterList FilterList { get; set; } + + public int RuleId { get; set; } + public Rule Rule { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/Entities/Rule.cs b/src/FilterLists.Data/Entities/Rule.cs new file mode 100644 index 000000000..4207212f0 --- /dev/null +++ b/src/FilterLists.Data/Entities/Rule.cs @@ -0,0 +1,7 @@ +namespace FilterLists.Data.Entities +{ + public class Rule : BaseEntity + { + public string Raw { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/FilterListRuleTypeConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/FilterListRuleTypeConfiguration.cs new file mode 100644 index 000000000..3b0da3a07 --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/FilterListRuleTypeConfiguration.cs @@ -0,0 +1,17 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class FilterListRuleTypeConfiguration : BaseEntityTypeConfiguration + { + public override void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.ToTable("filterlists_rules"); + entityTypeBuilder.HasKey(x => new {x.FilterListId, x.RuleId}); + entityTypeBuilder.Ignore(x => x.Id); + base.Configure(entityTypeBuilder); + } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/RuleTypeConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/RuleTypeConfiguration.cs new file mode 100644 index 000000000..088fbc3d6 --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/RuleTypeConfiguration.cs @@ -0,0 +1,17 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class RuleTypeConfiguration : BaseEntityTypeConfiguration + { + public override void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.ToTable("rules"); + entityTypeBuilder.Property(b => b.Raw) + .HasMaxLength(2083); + base.Configure(entityTypeBuilder); + } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/FilterListsDbContext.cs b/src/FilterLists.Data/FilterListsDbContext.cs index 55af9b2bc..c19da8322 100644 --- a/src/FilterLists.Data/FilterListsDbContext.cs +++ b/src/FilterLists.Data/FilterListsDbContext.cs @@ -12,18 +12,21 @@ public FilterListsDbContext(DbContextOptions options) } public DbSet FilterLists { get; set; } - public DbSet Maintainers { get; set; } public DbSet Languages { get; set; } + public DbSet Maintainers { get; set; } + public DbSet Rules { get; set; } public DbSet Software { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.ApplyConfiguration(new FilterListTypeConfiguration()); - modelBuilder.ApplyConfiguration(new MaintainerTypeConfiguration()); modelBuilder.ApplyConfiguration(new LanguageTypeConfiguration()); + modelBuilder.ApplyConfiguration(new MaintainerTypeConfiguration()); + modelBuilder.ApplyConfiguration(new RuleTypeConfiguration()); modelBuilder.ApplyConfiguration(new SoftwareTypeConfiguration()); modelBuilder.ApplyConfiguration(new FilterListLanguageTypeConfiguration()); + modelBuilder.ApplyConfiguration(new FilterListRuleTypeConfiguration()); modelBuilder.ApplyConfiguration(new FilterListSoftwareTypeConfiguration()); base.OnModelCreating(modelBuilder);