mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-31 04:04:21 -04:00
Add creation date on the db
This commit is contained in:
parent
7962d3a16f
commit
5f6e96333c
@ -45,7 +45,7 @@ namespace Kyoo.Abstractions.Models
|
|||||||
Collection
|
Collection
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LibraryItem : IResource, IThumbnails, IMetadata
|
public class LibraryItem : IResource, IThumbnails, IMetadata, IAddedDate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
@ -110,6 +110,9 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? AirDate { get; set; }
|
public DateTime? AirDate { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public Image? Poster { get; set; }
|
public Image? Poster { get; set; }
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
// along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using Kyoo.Abstractions.Models.Attributes;
|
using Kyoo.Abstractions.Models.Attributes;
|
||||||
@ -27,7 +28,7 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A class representing collections of <see cref="Show"/>.
|
/// A class representing collections of <see cref="Show"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Collection : IResource, IMetadata, IThumbnails
|
public class Collection : IResource, IMetadata, IThumbnails, IAddedDate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
@ -45,6 +46,9 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Overview { get; set; }
|
public string? Overview { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public Image? Poster { get; set; }
|
public Image? Poster { get; set; }
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A class to represent a single show's episode.
|
/// A class to represent a single show's episode.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Episode : IResource, IMetadata, IThumbnails
|
public class Episode : IResource, IMetadata, IThumbnails, IAddedDate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
@ -138,6 +138,9 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? ReleaseDate { get; set; }
|
public DateTime? ReleaseDate { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public Image? Poster { get; set; }
|
public Image? Poster { get; set; }
|
||||||
|
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
// Kyoo - A portable and vast media library solution.
|
||||||
|
// Copyright (c) Kyoo.
|
||||||
|
//
|
||||||
|
// See AUTHORS.md and LICENSE file in the project root for full license information.
|
||||||
|
//
|
||||||
|
// Kyoo is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// any later version.
|
||||||
|
//
|
||||||
|
// Kyoo is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Kyoo.Abstractions.Models
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// An interface applied to resources.
|
||||||
|
/// </summary>
|
||||||
|
public interface IAddedDate
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The date at which this resource was added to kyoo.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -29,7 +29,7 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A series or a movie.
|
/// A series or a movie.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Movie : IResource, IMetadata, IOnMerge, IThumbnails
|
public class Movie : IResource, IMetadata, IOnMerge, IThumbnails, IAddedDate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
@ -83,6 +83,9 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? AirDate { get; set; }
|
public DateTime? AirDate { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public Image? Poster { get; set; }
|
public Image? Poster { get; set; }
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A season of a <see cref="Show"/>.
|
/// A season of a <see cref="Show"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Season : IResource, IMetadata, IThumbnails
|
public class Season : IResource, IMetadata, IThumbnails, IAddedDate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
@ -95,6 +95,9 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? StartDate { get; set; }
|
public DateTime? StartDate { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The ending date of this season.
|
/// The ending date of this season.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -29,7 +29,7 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A series or a movie.
|
/// A series or a movie.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Show : IResource, IMetadata, IOnMerge, IThumbnails
|
public class Show : IResource, IMetadata, IOnMerge, IThumbnails, IAddedDate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
@ -84,6 +84,9 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? EndAir { get; set; }
|
public DateTime? EndAir { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public Image? Poster { get; set; }
|
public Image? Poster { get; set; }
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A single user of the app.
|
/// A single user of the app.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class User : IResource
|
public class User : IResource, IAddedDate
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
@ -58,6 +58,9 @@ namespace Kyoo.Abstractions.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string[] Permissions { get; set; } = Array.Empty<string>();
|
public string[] Permissions { get; set; } = Array.Empty<string>();
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A logo is a small image representing the resource.
|
/// A logo is a small image representing the resource.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -190,6 +190,14 @@ namespace Kyoo.Postgresql
|
|||||||
.OwnsOne(x => x.Logo);
|
.OwnsOne(x => x.Logo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void _HasAddedDate<T>(ModelBuilder modelBuilder)
|
||||||
|
where T : class, IAddedDate
|
||||||
|
{
|
||||||
|
modelBuilder.Entity<T>()
|
||||||
|
.Property(x => x.AddedDate)
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Create a many to many relationship between the two entities.
|
/// Create a many to many relationship between the two entities.
|
||||||
/// The resulting relationship will have an available <see cref="AddLinks{T1,T2}"/> method.
|
/// The resulting relationship will have an available <see cref="AddLinks{T1,T2}"/> method.
|
||||||
@ -285,6 +293,14 @@ namespace Kyoo.Postgresql
|
|||||||
_HasImages<Episode>(modelBuilder);
|
_HasImages<Episode>(modelBuilder);
|
||||||
_HasImages<People>(modelBuilder);
|
_HasImages<People>(modelBuilder);
|
||||||
|
|
||||||
|
_HasAddedDate<LibraryItem>(modelBuilder);
|
||||||
|
_HasAddedDate<Collection>(modelBuilder);
|
||||||
|
_HasAddedDate<Movie>(modelBuilder);
|
||||||
|
_HasAddedDate<Show>(modelBuilder);
|
||||||
|
_HasAddedDate<Season>(modelBuilder);
|
||||||
|
_HasAddedDate<Episode>(modelBuilder);
|
||||||
|
_HasAddedDate<User>(modelBuilder);
|
||||||
|
|
||||||
modelBuilder.Entity<User>().OwnsOne(x => x.Logo);
|
modelBuilder.Entity<User>().OwnsOne(x => x.Logo);
|
||||||
|
|
||||||
modelBuilder.Entity<WatchedEpisode>()
|
modelBuilder.Entity<WatchedEpisode>()
|
||||||
|
1548
back/src/Kyoo.Postgresql/Migrations/20230907201814_added_date.Designer.cs
generated
Normal file
1548
back/src/Kyoo.Postgresql/Migrations/20230907201814_added_date.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
139
back/src/Kyoo.Postgresql/Migrations/20230907201814_added_date.cs
Normal file
139
back/src/Kyoo.Postgresql/Migrations/20230907201814_added_date.cs
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
// Kyoo - A portable and vast media library solution.
|
||||||
|
// Copyright (c) Kyoo.
|
||||||
|
//
|
||||||
|
// See AUTHORS.md and LICENSE file in the project root for full license information.
|
||||||
|
//
|
||||||
|
// Kyoo is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// any later version.
|
||||||
|
//
|
||||||
|
// Kyoo is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace Kyoo.Postgresql.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class AddedDate : Items
|
||||||
|
{
|
||||||
|
public static void CreateItemView(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql(@"
|
||||||
|
CREATE VIEW library_items AS
|
||||||
|
SELECT
|
||||||
|
s.id, s.slug, s.name, s.tagline, s.aliases, s.overview, s.tags, s.genres, s.status,
|
||||||
|
s.start_air, s.end_air, s.poster_source, s.poster_blurhash, s.thumbnail_source, s.thumbnail_blurhash,
|
||||||
|
s.logo_source, s.logo_blurhash, s.trailer, s.external_id, s.start_air AS air_date, NULL as path,
|
||||||
|
'show'::item_kind AS kind, added_date
|
||||||
|
FROM shows AS s
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
-m.id, m.slug, m.name, m.tagline, m.aliases, m.overview, m.tags, m.genres, m.status,
|
||||||
|
m.air_date as start_air, m.air_date as end_air, m.poster_source, m.poster_blurhash, m.thumbnail_source,
|
||||||
|
m.thumbnail_blurhash, m.logo_source, m.logo_blurhash, m.trailer, m.external_id, m.air_date, m.path,
|
||||||
|
'movie'::item_kind AS kind, added_date
|
||||||
|
FROM movies AS m
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
c.id + 10000 AS id, c.slug, c.name, NULL as tagline, NULL as alises, c.overview, NULL AS tags, NULL AS genres, 'unknown'::status AS status,
|
||||||
|
NULL AS start_air, NULL AS end_air, c.poster_source, c.poster_blurhash, c.thumbnail_source,
|
||||||
|
c.thumbnail_blurhash, c.logo_source, c.logo_blurhash, NULL as trailer, c.external_id, NULL AS air_date, NULL as path,
|
||||||
|
'collection'::item_kind AS kind, added_date
|
||||||
|
FROM collections AS c
|
||||||
|
");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
base.Down(migrationBuilder);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "added_date",
|
||||||
|
table: "users",
|
||||||
|
type: "timestamp with time zone",
|
||||||
|
nullable: false,
|
||||||
|
defaultValueSql: "now() at time zone 'utc'");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "added_date",
|
||||||
|
table: "shows",
|
||||||
|
type: "timestamp with time zone",
|
||||||
|
nullable: false,
|
||||||
|
defaultValueSql: "now() at time zone 'utc'");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "added_date",
|
||||||
|
table: "seasons",
|
||||||
|
type: "timestamp with time zone",
|
||||||
|
nullable: false,
|
||||||
|
defaultValueSql: "now() at time zone 'utc'");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "added_date",
|
||||||
|
table: "movies",
|
||||||
|
type: "timestamp with time zone",
|
||||||
|
nullable: false,
|
||||||
|
defaultValueSql: "now() at time zone 'utc'");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "added_date",
|
||||||
|
table: "episodes",
|
||||||
|
type: "timestamp with time zone",
|
||||||
|
nullable: false,
|
||||||
|
defaultValueSql: "now() at time zone 'utc'");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "added_date",
|
||||||
|
table: "collections",
|
||||||
|
type: "timestamp with time zone",
|
||||||
|
nullable: false,
|
||||||
|
defaultValueSql: "now() at time zone 'utc'");
|
||||||
|
|
||||||
|
CreateItemView(migrationBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
base.Down(migrationBuilder);
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "added_date",
|
||||||
|
table: "users");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "added_date",
|
||||||
|
table: "shows");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "added_date",
|
||||||
|
table: "seasons");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "added_date",
|
||||||
|
table: "movies");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "added_date",
|
||||||
|
table: "episodes");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "added_date",
|
||||||
|
table: "collections");
|
||||||
|
|
||||||
|
base.Up(migrationBuilder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
// <auto-generated />
|
// <auto-generated />
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using Kyoo.Abstractions.Models;
|
using Kyoo.Abstractions.Models;
|
||||||
using Kyoo.Postgresql;
|
using Kyoo.Postgresql;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@ -35,6 +36,12 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasColumnName("added_date")
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
|
||||||
b.Property<string>("ExternalId")
|
b.Property<string>("ExternalId")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("json")
|
.HasColumnType("json")
|
||||||
@ -78,6 +85,12 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("absolute_number");
|
.HasColumnName("absolute_number");
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasColumnName("added_date")
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
|
||||||
b.Property<int?>("EpisodeNumber")
|
b.Property<int?>("EpisodeNumber")
|
||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("episode_number");
|
.HasColumnName("episode_number");
|
||||||
@ -104,7 +117,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("timestamp with time zone")
|
.HasColumnType("timestamp with time zone")
|
||||||
.HasColumnName("release_date");
|
.HasColumnName("release_date");
|
||||||
|
|
||||||
b.Property<int?>("SeasonID")
|
b.Property<int?>("SeasonId")
|
||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("season_id");
|
.HasColumnName("season_id");
|
||||||
|
|
||||||
@ -112,7 +125,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("season_number");
|
.HasColumnName("season_number");
|
||||||
|
|
||||||
b.Property<int>("ShowID")
|
b.Property<int>("ShowId")
|
||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("show_id");
|
.HasColumnName("show_id");
|
||||||
|
|
||||||
@ -125,14 +138,14 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
b.HasKey("Id")
|
b.HasKey("Id")
|
||||||
.HasName("pk_episodes");
|
.HasName("pk_episodes");
|
||||||
|
|
||||||
b.HasIndex("SeasonID")
|
b.HasIndex("SeasonId")
|
||||||
.HasDatabaseName("ix_episodes_season_id");
|
.HasDatabaseName("ix_episodes_season_id");
|
||||||
|
|
||||||
b.HasIndex("Slug")
|
b.HasIndex("Slug")
|
||||||
.IsUnique()
|
.IsUnique()
|
||||||
.HasDatabaseName("ix_episodes_slug");
|
.HasDatabaseName("ix_episodes_slug");
|
||||||
|
|
||||||
b.HasIndex("ShowID", "SeasonNumber", "EpisodeNumber", "AbsoluteNumber")
|
b.HasIndex("ShowId", "SeasonNumber", "EpisodeNumber", "AbsoluteNumber")
|
||||||
.IsUnique()
|
.IsUnique()
|
||||||
.HasDatabaseName("ix_episodes_show_id_season_number_episode_number_absolute_numb");
|
.HasDatabaseName("ix_episodes_show_id_season_number_episode_number_absolute_numb");
|
||||||
|
|
||||||
@ -148,6 +161,12 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasColumnName("added_date")
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
|
||||||
b.Property<DateTime?>("AirDate")
|
b.Property<DateTime?>("AirDate")
|
||||||
.HasColumnType("timestamp with time zone")
|
.HasColumnType("timestamp with time zone")
|
||||||
.HasColumnName("air_date");
|
.HasColumnName("air_date");
|
||||||
@ -171,6 +190,10 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("genre[]")
|
.HasColumnType("genre[]")
|
||||||
.HasColumnName("genres");
|
.HasColumnName("genres");
|
||||||
|
|
||||||
|
b.Property<ItemKind>("Kind")
|
||||||
|
.HasColumnType("item_kind")
|
||||||
|
.HasColumnName("kind");
|
||||||
|
|
||||||
b.Property<string>("Name")
|
b.Property<string>("Name")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text")
|
.HasColumnType("text")
|
||||||
@ -181,7 +204,6 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnName("overview");
|
.HasColumnName("overview");
|
||||||
|
|
||||||
b.Property<string>("Path")
|
b.Property<string>("Path")
|
||||||
.IsRequired()
|
|
||||||
.HasColumnType("text")
|
.HasColumnType("text")
|
||||||
.HasColumnName("path");
|
.HasColumnName("path");
|
||||||
|
|
||||||
@ -227,6 +249,12 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasColumnName("added_date")
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
|
||||||
b.Property<DateTime?>("AirDate")
|
b.Property<DateTime?>("AirDate")
|
||||||
.HasColumnType("timestamp with time zone")
|
.HasColumnType("timestamp with time zone")
|
||||||
.HasColumnName("air_date");
|
.HasColumnName("air_date");
|
||||||
@ -390,6 +418,12 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasColumnName("added_date")
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
|
||||||
b.Property<DateTime?>("EndDate")
|
b.Property<DateTime?>("EndDate")
|
||||||
.HasColumnType("timestamp with time zone")
|
.HasColumnType("timestamp with time zone")
|
||||||
.HasColumnName("end_date");
|
.HasColumnName("end_date");
|
||||||
@ -411,7 +445,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("season_number");
|
.HasColumnName("season_number");
|
||||||
|
|
||||||
b.Property<int>("ShowID")
|
b.Property<int>("ShowId")
|
||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("show_id");
|
.HasColumnName("show_id");
|
||||||
|
|
||||||
@ -432,7 +466,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.IsUnique()
|
.IsUnique()
|
||||||
.HasDatabaseName("ix_seasons_slug");
|
.HasDatabaseName("ix_seasons_slug");
|
||||||
|
|
||||||
b.HasIndex("ShowID", "SeasonNumber")
|
b.HasIndex("ShowId", "SeasonNumber")
|
||||||
.IsUnique()
|
.IsUnique()
|
||||||
.HasDatabaseName("ix_seasons_show_id_season_number");
|
.HasDatabaseName("ix_seasons_show_id_season_number");
|
||||||
|
|
||||||
@ -448,7 +482,13 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
b.Property<string[]>("Aliases")
|
b.Property<DateTime>("AddedDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasColumnName("added_date")
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
|
||||||
|
b.Property<List<string>>("Aliases")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text[]")
|
.HasColumnType("text[]")
|
||||||
.HasColumnName("aliases");
|
.HasColumnName("aliases");
|
||||||
@ -462,7 +502,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("json")
|
.HasColumnType("json")
|
||||||
.HasColumnName("external_id");
|
.HasColumnName("external_id");
|
||||||
|
|
||||||
b.Property<Genre[]>("Genres")
|
b.Property<List<Genre>>("Genres")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("genre[]")
|
.HasColumnType("genre[]")
|
||||||
.HasColumnName("genres");
|
.HasColumnName("genres");
|
||||||
@ -490,7 +530,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("status")
|
.HasColumnType("status")
|
||||||
.HasColumnName("status");
|
.HasColumnName("status");
|
||||||
|
|
||||||
b.Property<int?>("StudioID")
|
b.Property<int?>("StudioId")
|
||||||
.HasColumnType("integer")
|
.HasColumnType("integer")
|
||||||
.HasColumnName("studio_id");
|
.HasColumnName("studio_id");
|
||||||
|
|
||||||
@ -498,7 +538,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.HasColumnType("text")
|
.HasColumnType("text")
|
||||||
.HasColumnName("tagline");
|
.HasColumnName("tagline");
|
||||||
|
|
||||||
b.Property<string[]>("Tags")
|
b.Property<List<string>>("Tags")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text[]")
|
.HasColumnType("text[]")
|
||||||
.HasColumnName("tags");
|
.HasColumnName("tags");
|
||||||
@ -514,7 +554,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
.IsUnique()
|
.IsUnique()
|
||||||
.HasDatabaseName("ix_shows_slug");
|
.HasDatabaseName("ix_shows_slug");
|
||||||
|
|
||||||
b.HasIndex("StudioID")
|
b.HasIndex("StudioId")
|
||||||
.HasDatabaseName("ix_shows_studio_id");
|
.HasDatabaseName("ix_shows_studio_id");
|
||||||
|
|
||||||
b.ToTable("shows", (string)null);
|
b.ToTable("shows", (string)null);
|
||||||
@ -564,6 +604,12 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
|
|
||||||
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<DateTime>("AddedDate")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasColumnName("added_date")
|
||||||
|
.HasDefaultValueSql("now() at time zone 'utc'");
|
||||||
|
|
||||||
b.Property<string>("Email")
|
b.Property<string>("Email")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("text")
|
.HasColumnType("text")
|
||||||
@ -771,13 +817,13 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
{
|
{
|
||||||
b.HasOne("Kyoo.Abstractions.Models.Season", "Season")
|
b.HasOne("Kyoo.Abstractions.Models.Season", "Season")
|
||||||
.WithMany("Episodes")
|
.WithMany("Episodes")
|
||||||
.HasForeignKey("SeasonID")
|
.HasForeignKey("SeasonId")
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
.HasConstraintName("fk_episodes_seasons_season_id");
|
.HasConstraintName("fk_episodes_seasons_season_id");
|
||||||
|
|
||||||
b.HasOne("Kyoo.Abstractions.Models.Show", "Show")
|
b.HasOne("Kyoo.Abstractions.Models.Show", "Show")
|
||||||
.WithMany("Episodes")
|
.WithMany("Episodes")
|
||||||
.HasForeignKey("ShowID")
|
.HasForeignKey("ShowId")
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasConstraintName("fk_episodes_shows_show_id");
|
.HasConstraintName("fk_episodes_shows_show_id");
|
||||||
@ -1170,7 +1216,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
{
|
{
|
||||||
b.HasOne("Kyoo.Abstractions.Models.Show", "Show")
|
b.HasOne("Kyoo.Abstractions.Models.Show", "Show")
|
||||||
.WithMany("Seasons")
|
.WithMany("Seasons")
|
||||||
.HasForeignKey("ShowID")
|
.HasForeignKey("ShowId")
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasConstraintName("fk_seasons_shows_show_id");
|
.HasConstraintName("fk_seasons_shows_show_id");
|
||||||
@ -1266,7 +1312,7 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
{
|
{
|
||||||
b.HasOne("Kyoo.Abstractions.Models.Studio", "Studio")
|
b.HasOne("Kyoo.Abstractions.Models.Studio", "Studio")
|
||||||
.WithMany("Shows")
|
.WithMany("Shows")
|
||||||
.HasForeignKey("StudioID")
|
.HasForeignKey("StudioId")
|
||||||
.OnDelete(DeleteBehavior.SetNull)
|
.OnDelete(DeleteBehavior.SetNull)
|
||||||
.HasConstraintName("fk_shows_studios_studio_id");
|
.HasConstraintName("fk_shows_studios_studio_id");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user