aboutsummaryrefslogtreecommitdiffstats
path: root/src/Models
diff options
context:
space:
mode:
Diffstat (limited to 'src/Models')
-rw-r--r--src/Models/Database/RadioEpisode.cs13
-rw-r--r--src/Models/Database/RadioSeason.cs11
-rw-r--r--src/Models/Database/RadioSeries.cs11
-rw-r--r--src/Models/NrkLinks.cs14
-rw-r--r--src/Models/NrkPlaybackManifest.cs19
-rw-r--r--src/Models/NrkRadioCategorySearchResult.cs (renamed from src/Models/RadioCategorySearchResult.cs)19
-rw-r--r--src/Models/NrkRadioSeries.cs79
-rw-r--r--src/Models/RadioSeries.cs18
8 files changed, 151 insertions, 33 deletions
diff --git a/src/Models/Database/RadioEpisode.cs b/src/Models/Database/RadioEpisode.cs
new file mode 100644
index 0000000..508177b
--- /dev/null
+++ b/src/Models/Database/RadioEpisode.cs
@@ -0,0 +1,13 @@
+namespace I2R.LightNews.Models;
+
+public class RadioEpisode
+{
+ public int Id { get; set; }
+ public int SeriesId { get; set; }
+ public int SeasonId { get; set; }
+ public string NrkId { get; set; }
+ public string Title { get; set; }
+ public string Subtitle { get; set; }
+ public string SourceUrl { get; set; }
+ public string CanonicalUrl { get; set; }
+} \ No newline at end of file
diff --git a/src/Models/Database/RadioSeason.cs b/src/Models/Database/RadioSeason.cs
new file mode 100644
index 0000000..5db925d
--- /dev/null
+++ b/src/Models/Database/RadioSeason.cs
@@ -0,0 +1,11 @@
+namespace I2R.LightNews.Models;
+
+public class RadioSeason
+{
+ public int Id { get; set; }
+ public int SeriesId { get; set; }
+ public string Name { get; set; }
+ public string Description { get; set; }
+ public string CanonicalUrl { get; set; }
+ public string NrkId { get; set; }
+} \ No newline at end of file
diff --git a/src/Models/Database/RadioSeries.cs b/src/Models/Database/RadioSeries.cs
new file mode 100644
index 0000000..946b6ce
--- /dev/null
+++ b/src/Models/Database/RadioSeries.cs
@@ -0,0 +1,11 @@
+namespace I2R.LightNews.Models;
+
+public class RadioSeries
+{
+ public int Id { get; set; }
+ public string NrkId { get; set; }
+ public string Name { get; set; }
+ public string Description { get; set; }
+ public string Type { get; set; }
+ public string CanonicalUrl { get; set; }
+} \ No newline at end of file
diff --git a/src/Models/NrkLinks.cs b/src/Models/NrkLinks.cs
new file mode 100644
index 0000000..69f5ae3
--- /dev/null
+++ b/src/Models/NrkLinks.cs
@@ -0,0 +1,14 @@
+namespace I2R.LightNews.Models;
+
+public class NrkLinks
+{
+ public LinkModel NextPage { get; set; }
+ public LinkModel LastPage { get; set; }
+ public LinkModel Share { get; set; }
+ public LinkModel Episodes { get; set; }
+
+ public class LinkModel
+ {
+ public string Href { get; set; }
+ }
+} \ No newline at end of file
diff --git a/src/Models/NrkPlaybackManifest.cs b/src/Models/NrkPlaybackManifest.cs
new file mode 100644
index 0000000..52f9503
--- /dev/null
+++ b/src/Models/NrkPlaybackManifest.cs
@@ -0,0 +1,19 @@
+namespace I2R.LightNews.Models;
+
+public class NrkPlaybackManifest
+{
+ public PlayableModel Playable { get; set; }
+
+ public class PlayableModel
+ {
+ public List<Asset> Assets { get; set; }
+
+ public class Asset
+ {
+ public string Url { get; set; }
+ public string Format { get; set; }
+ public string MimeType { get; set; }
+ public bool Encrypted { get; set; }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Models/RadioCategorySearchResult.cs b/src/Models/NrkRadioCategorySearchResult.cs
index 7fd4c5d..6672105 100644
--- a/src/Models/RadioCategorySearchResult.cs
+++ b/src/Models/NrkRadioCategorySearchResult.cs
@@ -5,7 +5,7 @@ namespace I2R.LightNews.Models;
public class RadioCategorySearchResult
{
[JsonPropertyName("_links")]
- public LinksModel Links { get; set; }
+ public NrkLinks Links { get; set; }
public List<LetterModel> Letters { get; set; }
public string Title { get; set; }
@@ -17,7 +17,7 @@ public class RadioCategorySearchResult
[JsonPropertyName("_links")]
public LinksModel Links { get; set; }
- public Guid Id { get; set; }
+ public string Id { get; set; }
public string SeriesId { get; set; }
public string SeasonId { get; set; }
public string Title { get; set; }
@@ -33,7 +33,8 @@ public class RadioCategorySearchResult
public class LinksModel
{
- public RadioCategorySearchResult.LinksModel.LinkModel CustomSeason { get; set; }
+ public NrkLinks.LinkModel CustomSeason { get; set; }
+ public NrkLinks.LinkModel Series { get; set; }
}
}
@@ -43,16 +44,4 @@ public class RadioCategorySearchResult
public int Count { get; set; }
public string Link { get; set; }
}
-
- public class LinksModel
- {
- public LinkModel NextPage { get; set; }
- public LinkModel LastPage { get; set; }
-
-
- public class LinkModel
- {
- public string Href { get; set; }
- }
- }
} \ No newline at end of file
diff --git a/src/Models/NrkRadioSeries.cs b/src/Models/NrkRadioSeries.cs
new file mode 100644
index 0000000..3496f36
--- /dev/null
+++ b/src/Models/NrkRadioSeries.cs
@@ -0,0 +1,79 @@
+using System.Text.Json.Serialization;
+
+namespace I2R.LightNews.Models;
+
+public class NrkRadioSeries
+{
+ [JsonPropertyName("_links")]
+ public NrkLinks Links { get; set; }
+
+ [JsonPropertyName("_embedded")]
+ public EmbeddedModel Embedded { get; set; }
+
+ public class EmbeddedModel
+ {
+ public List<SeasonModel> Seasons { get; set; }
+
+ public class SeasonModel
+ {
+ public List<TitleModel> Titles { get; set; }
+ public List<EpisodeModel> Episodes { get; set; }
+ public string Id { get; set; }
+ public bool HasAvailableEpisodes { get; set; }
+ public int EpisodeCount { get; set; }
+
+ public class EpisodeModel
+ {
+ [JsonPropertyName("_embedded")]
+ public EmbeddedModel Embedded { get; set; }
+
+ public class EmbeddedModel
+ {
+ public List<EpisodeModel> Episodes { get; set; }
+
+ public class EpisodeModel
+ {
+ [JsonPropertyName("_links")]
+ public LinksModel Links { get; set; }
+
+ public string Id { get; set; }
+ public string EpisodeId { get; set; }
+ public List<TitlesModel> Titles { get; set; }
+ public DateTime Date { get; set; }
+ public int DurationInSeconds { get; set; }
+ public int ProductionYear { get; set; }
+
+ public class TitlesModel
+ {
+ public string Title { get; set; }
+ public string Subtitle { get; set; }
+ }
+
+ public class LinksModel
+ {
+ public NrkLinks.LinkModel Playback { get; set; }
+ public NrkLinks.LinkModel Share { get; set; }
+ }
+ }
+ }
+ }
+
+ public class TitleModel
+ {
+ public string Title { get; set; }
+ }
+ }
+ }
+
+ public class NrkRadioSeriesLinks : NrkLinks
+ {
+ public List<Season> Seasons { get; set; }
+
+ public class Season
+ {
+ public string Name { get; set; }
+ public string Href { get; set; }
+ public string Title { get; set; }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Models/RadioSeries.cs b/src/Models/RadioSeries.cs
deleted file mode 100644
index 6bd4efe..0000000
--- a/src/Models/RadioSeries.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace I2R.LightNews.Models;
-
-public class RadioSeries
-{
- public string Name { get; set; }
- public string Description { get; set; }
- public string Type { get; set; }
- public Uri CanonicalUri { get; set; }
- public List<Episode> Episodes { get; set; }
-
- public class Episode
- {
- public string Title { get; set; }
- public string Subtitle { get; set; }
- public Uri SourceUri { get; set; }
- public Uri CanonicalUri { get; set; }
- }
-} \ No newline at end of file