//
using System;
using System.Collections.Generic;
using Kyoo.Abstractions.Models;
using Kyoo.Postgresql;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Kyoo.Postgresql.Migrations
{
partial class Timestamp
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.9")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "item_type", new[] { "show", "movie", "collection" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "status", new[] { "unknown", "finished", "airing", "planned" });
NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "stream_type", new[] { "unknown", "video", "audio", "subtitle" });
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("Kyoo.Abstractions.Models.Collection", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property>("Images")
.HasColumnType("jsonb")
.HasColumnName("images");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("Overview")
.HasColumnType("text")
.HasColumnName("overview");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.HasKey("ID")
.HasName("pk_collections");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_collections_slug");
b.ToTable("collections", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Episode", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("AbsoluteNumber")
.HasColumnType("integer")
.HasColumnName("absolute_number");
b.Property("EpisodeNumber")
.HasColumnType("integer")
.HasColumnName("episode_number");
b.Property>("Images")
.HasColumnType("jsonb")
.HasColumnName("images");
b.Property("Overview")
.HasColumnType("text")
.HasColumnName("overview");
b.Property("Path")
.HasColumnType("text")
.HasColumnName("path");
b.Property("ReleaseDate")
.HasColumnType("timestamp with time zone")
.HasColumnName("release_date");
b.Property("SeasonID")
.HasColumnType("integer")
.HasColumnName("season_id");
b.Property("SeasonNumber")
.HasColumnType("integer")
.HasColumnName("season_number");
b.Property("ShowID")
.HasColumnType("integer")
.HasColumnName("show_id");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.Property("Title")
.HasColumnType("text")
.HasColumnName("title");
b.HasKey("ID")
.HasName("pk_episodes");
b.HasIndex("SeasonID")
.HasDatabaseName("ix_episodes_season_id");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_episodes_slug");
b.HasIndex("ShowID", "SeasonNumber", "EpisodeNumber", "AbsoluteNumber")
.IsUnique()
.HasDatabaseName("ix_episodes_show_id_season_number_episode_number_absolute_numb");
b.ToTable("episodes", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Genre", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.HasKey("ID")
.HasName("pk_genres");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_genres_slug");
b.ToTable("genres", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Library", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("Paths")
.HasColumnType("text[]")
.HasColumnName("paths");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.HasKey("ID")
.HasName("pk_libraries");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_libraries_slug");
b.ToTable("libraries", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.LibraryItem", b =>
{
b.Property("ID")
.HasColumnType("integer")
.HasColumnName("id");
b.Property("EndAir")
.HasColumnType("timestamp with time zone")
.HasColumnName("end_air");
b.Property>("Images")
.HasColumnType("jsonb")
.HasColumnName("images");
b.Property("Overview")
.HasColumnType("text")
.HasColumnName("overview");
b.Property("Slug")
.HasColumnType("text")
.HasColumnName("slug");
b.Property("StartAir")
.HasColumnType("timestamp with time zone")
.HasColumnName("start_air");
b.Property("Status")
.HasColumnType("status")
.HasColumnName("status");
b.Property("Title")
.HasColumnType("text")
.HasColumnName("title");
b.Property("Type")
.HasColumnType("item_type")
.HasColumnName("type");
b.HasKey("ID")
.HasName("pk_library_items");
b.ToTable((string)null);
b.ToView("library_items", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.People", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property>("Images")
.HasColumnType("jsonb")
.HasColumnName("images");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.HasKey("ID")
.HasName("pk_people");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_people_slug");
b.ToTable("people", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.PeopleRole", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("PeopleID")
.HasColumnType("integer")
.HasColumnName("people_id");
b.Property("Role")
.HasColumnType("text")
.HasColumnName("role");
b.Property("ShowID")
.HasColumnType("integer")
.HasColumnName("show_id");
b.Property("Type")
.HasColumnType("text")
.HasColumnName("type");
b.HasKey("ID")
.HasName("pk_people_roles");
b.HasIndex("PeopleID")
.HasDatabaseName("ix_people_roles_people_id");
b.HasIndex("ShowID")
.HasDatabaseName("ix_people_roles_show_id");
b.ToTable("people_roles", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Provider", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property>("Images")
.HasColumnType("jsonb")
.HasColumnName("images");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.HasKey("ID")
.HasName("pk_providers");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_providers_slug");
b.ToTable("providers", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Season", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("EndDate")
.HasColumnType("timestamp with time zone")
.HasColumnName("end_date");
b.Property>("Images")
.HasColumnType("jsonb")
.HasColumnName("images");
b.Property("Overview")
.HasColumnType("text")
.HasColumnName("overview");
b.Property("SeasonNumber")
.HasColumnType("integer")
.HasColumnName("season_number");
b.Property("ShowID")
.HasColumnType("integer")
.HasColumnName("show_id");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.Property("StartDate")
.HasColumnType("timestamp with time zone")
.HasColumnName("start_date");
b.Property("Title")
.HasColumnType("text")
.HasColumnName("title");
b.HasKey("ID")
.HasName("pk_seasons");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_seasons_slug");
b.HasIndex("ShowID", "SeasonNumber")
.IsUnique()
.HasDatabaseName("ix_seasons_show_id_season_number");
b.ToTable("seasons", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Show", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("Aliases")
.HasColumnType("text[]")
.HasColumnName("aliases");
b.Property("EndAir")
.HasColumnType("timestamp with time zone")
.HasColumnName("end_air");
b.Property>("Images")
.HasColumnType("jsonb")
.HasColumnName("images");
b.Property("IsMovie")
.HasColumnType("boolean")
.HasColumnName("is_movie");
b.Property("Overview")
.HasColumnType("text")
.HasColumnName("overview");
b.Property("Path")
.HasColumnType("text")
.HasColumnName("path");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.Property("StartAir")
.HasColumnType("timestamp with time zone")
.HasColumnName("start_air");
b.Property("Status")
.HasColumnType("status")
.HasColumnName("status");
b.Property("StudioID")
.HasColumnType("integer")
.HasColumnName("studio_id");
b.Property("Title")
.HasColumnType("text")
.HasColumnName("title");
b.HasKey("ID")
.HasName("pk_shows");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_shows_slug");
b.HasIndex("StudioID")
.HasDatabaseName("ix_shows_studio_id");
b.ToTable("shows", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Studio", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.HasKey("ID")
.HasName("pk_studios");
b.HasIndex("Slug")
.IsUnique()
.HasDatabaseName("ix_studios_slug");
b.ToTable("studios", (string)null);
});
modelBuilder.Entity("Kyoo.Abstractions.Models.Track", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID"));
b.Property("Codec")
.HasColumnType("text")
.HasColumnName("codec");
b.Property("EpisodeID")
.HasColumnType("integer")
.HasColumnName("episode_id");
b.Property("IsDefault")
.HasColumnType("boolean")
.HasColumnName("is_default");
b.Property("IsExternal")
.HasColumnType("boolean")
.HasColumnName("is_external");
b.Property("IsForced")
.HasColumnType("boolean")
.HasColumnName("is_forced");
b.Property("Language")
.HasColumnType("text")
.HasColumnName("language");
b.Property("Path")
.HasColumnType("text")
.HasColumnName("path");
b.Property("Slug")
.IsRequired()
.HasColumnType("text")
.HasColumnName("slug");
b.Property("Title")
.HasColumnType("text")
.HasColumnName("title");
b.Property("TrackIndex")
.HasColumnType("integer")
.HasColumnName("track_index");
b.Property