Add news repository and api

This commit is contained in:
Zoe Roux
2023-10-30 00:30:25 +01:00
parent 43a4a0e6ee
commit 44521d0d5f
10 changed files with 299 additions and 22 deletions
@@ -100,6 +100,14 @@ namespace Kyoo.Postgresql
/// </remarks>
public DbSet<LibraryItem> LibraryItems { get; set; }
/// <summary>
/// The list of new items (episodes and movies).
/// </summary>
/// <remarks>
/// This set is ready only, on most database this will be a view.
/// </remarks>
public DbSet<News> News { get; set; }
/// <summary>
/// Add a many to many link between two resources.
/// </summary>
@@ -283,6 +291,7 @@ namespace Kyoo.Postgresql
.UsingEntity(x => x.ToTable(LinkName<User, Show>()));
_HasMetadata<LibraryItem>(modelBuilder);
_HasMetadata<News>(modelBuilder);
_HasMetadata<Collection>(modelBuilder);
_HasMetadata<Movie>(modelBuilder);
_HasMetadata<Show>(modelBuilder);
@@ -292,6 +301,7 @@ namespace Kyoo.Postgresql
_HasMetadata<Studio>(modelBuilder);
_HasImages<LibraryItem>(modelBuilder);
_HasImages<News>(modelBuilder);
_HasImages<Collection>(modelBuilder);
_HasImages<Movie>(modelBuilder);
_HasImages<Show>(modelBuilder);
@@ -300,6 +310,7 @@ namespace Kyoo.Postgresql
_HasImages<People>(modelBuilder);
_HasAddedDate<LibraryItem>(modelBuilder);
_HasAddedDate<News>(modelBuilder);
_HasAddedDate<Collection>(modelBuilder);
_HasAddedDate<Movie>(modelBuilder);
_HasAddedDate<Show>(modelBuilder);
@@ -347,6 +358,8 @@ namespace Kyoo.Postgresql
.Ignore(x => x.Links);
modelBuilder.Entity<LibraryItem>()
.Ignore(x => x.Links);
modelBuilder.Entity<News>()
.Ignore(x => x.Links);
}
/// <summary>
@@ -51,6 +51,7 @@ namespace Kyoo.Postgresql
NpgsqlConnection.GlobalTypeMapper.MapEnum<Status>();
NpgsqlConnection.GlobalTypeMapper.MapEnum<Genre>();
NpgsqlConnection.GlobalTypeMapper.MapEnum<ItemKind>();
NpgsqlConnection.GlobalTypeMapper.MapEnum<NewsKind>();
}
/// <summary>
@@ -104,6 +105,7 @@ namespace Kyoo.Postgresql
modelBuilder.HasPostgresEnum<Status>();
modelBuilder.HasPostgresEnum<Genre>();
modelBuilder.HasPostgresEnum<ItemKind>();
modelBuilder.HasPostgresEnum<NewsKind>();
modelBuilder.HasDbFunction(typeof(DatabaseContext).GetMethod(nameof(MD5))!)
.HasTranslation(args =>