diff --git a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs index 41dc04c92..4cb574e30 100644 --- a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs +++ b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs @@ -14,13 +14,16 @@ public FilterListsDbContext(DbContextOptions options) public DbSet FilterLists { get; set; } public DbSet Maintainers { get; set; } public DbSet Languages { get; set; } + public DbSet Software { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.ApplyConfiguration(new FilterListTypeConfiguration()); + modelBuilder.ApplyConfiguration(new FilterListLanguageTypeConfiguration()); + modelBuilder.ApplyConfiguration(new FilterListSoftwareTypeConfiguration()); modelBuilder.ApplyConfiguration(new MaintainerTypeConfiguration()); modelBuilder.ApplyConfiguration(new LanguageTypeConfiguration()); - modelBuilder.ApplyConfiguration(new FilterListLanguageTypeConfiguration()); + modelBuilder.ApplyConfiguration(new SoftwareTypeConfiguration()); base.OnModelCreating(modelBuilder); } } diff --git a/src/FilterLists.Data/Entities/FilterList.cs b/src/FilterLists.Data/Entities/FilterList.cs index a878e7b68..d58124110 100644 --- a/src/FilterLists.Data/Entities/FilterList.cs +++ b/src/FilterLists.Data/Entities/FilterList.cs @@ -12,6 +12,7 @@ public class FilterList : BaseEntity public string HomeUrl { get; set; } public string IssuesUrl { get; set; } public ICollection FilterListLanguages { get; set; } + public ICollection FilterListSoftware { get; set; } public int MaintainerId { get; set; } public string Name { get; set; } public string ViewUrl { get; set; } diff --git a/src/FilterLists.Data/Entities/FilterListSoftware.cs b/src/FilterLists.Data/Entities/FilterListSoftware.cs new file mode 100644 index 000000000..88b524c70 --- /dev/null +++ b/src/FilterLists.Data/Entities/FilterListSoftware.cs @@ -0,0 +1,11 @@ +namespace FilterLists.Data.Entities +{ + public class FilterListSoftware : BaseEntity + { + public int FilterListId { get; set; } + public FilterList FilterList { get; set; } + + public int SoftwareId { get; set; } + public Software Software { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/Entities/Software.cs b/src/FilterLists.Data/Entities/Software.cs new file mode 100644 index 000000000..48b36f6c7 --- /dev/null +++ b/src/FilterLists.Data/Entities/Software.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace FilterLists.Data.Entities +{ + public class Software : BaseEntity + { + public string DownloadUrl { get; set; } + public string HomeUrl { get; set; } + public ICollection FilterListSoftware { get; set; } + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/FilterListSoftwareTypeConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/FilterListSoftwareTypeConfiguration.cs new file mode 100644 index 000000000..062d1213b --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/FilterListSoftwareTypeConfiguration.cs @@ -0,0 +1,17 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class FilterListSoftwareTypeConfiguration : BaseEntityTypeConfiguration + { + public override void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.ToTable("filterlists_software"); + entityTypeBuilder.HasKey(x => new {x.FilterListId, x.SoftwareId}); + entityTypeBuilder.Ignore(x => x.Id); + base.Configure(entityTypeBuilder); + } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/SoftwareTypeConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/SoftwareTypeConfiguration.cs new file mode 100644 index 000000000..d6aadb41e --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/SoftwareTypeConfiguration.cs @@ -0,0 +1,21 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class SoftwareTypeConfiguration : BaseEntityTypeConfiguration + { + public override void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.ToTable("software"); + entityTypeBuilder.Property(b => b.DownloadUrl) + .HasMaxLength(2083); + entityTypeBuilder.Property(b => b.HomeUrl) + .HasMaxLength(2083); + entityTypeBuilder.Property(b => b.Name) + .HasMaxLength(126); + base.Configure(entityTypeBuilder); + } + } +} \ No newline at end of file