mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-11-03 19:17:16 -05:00 
			
		
		
		
	Implemening login
This commit is contained in:
		
							parent
							
								
									520aca1278
								
							
						
					
					
						commit
						bd12c35073
					
				@ -90,6 +90,7 @@
 | 
				
			|||||||
	</ItemGroup>
 | 
						</ItemGroup>
 | 
				
			||||||
	<ItemGroup>
 | 
						<ItemGroup>
 | 
				
			||||||
	  <Folder Include="Models\DatabaseMigrations\IdentityPeristant" />
 | 
						  <Folder Include="Models\DatabaseMigrations\IdentityPeristant" />
 | 
				
			||||||
 | 
						  <Folder Include="Models\DatabaseMigrations\Internal" />
 | 
				
			||||||
	</ItemGroup>
 | 
						</ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<Target Name="CreatePluginFolder" AfterTargets="Build">
 | 
						<Target Name="CreatePluginFolder" AfterTargets="Build">
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,15 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Linq;
 | 
					using System.Linq;
 | 
				
			||||||
using Kyoo.Models;
 | 
					using Kyoo.Models;
 | 
				
			||||||
 | 
					using Microsoft.AspNetCore.Identity;
 | 
				
			||||||
 | 
					using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore;
 | 
					using Microsoft.EntityFrameworkCore;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
 | 
					using Microsoft.EntityFrameworkCore.ChangeTracking;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
					using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Kyoo
 | 
					namespace Kyoo
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	public class DatabaseContext : DbContext
 | 
						public class DatabaseContext : IdentityDbContext<Account>
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options) { }
 | 
							public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options) { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -64,8 +66,13 @@ namespace Kyoo
 | 
				
			|||||||
			modelBuilder.Entity<Show>()
 | 
								modelBuilder.Entity<Show>()
 | 
				
			||||||
				.Ignore(x => x.Genres);
 | 
									.Ignore(x => x.Genres);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// modelBuilder.Entity<Genre>()
 | 
								modelBuilder.Entity<Account>().ToTable("Account");
 | 
				
			||||||
			   //  .Ignore(x => x.Shows);
 | 
								modelBuilder.Entity<IdentityUserRole<string>>().ToTable("UserRole");
 | 
				
			||||||
 | 
								modelBuilder.Entity<IdentityUserLogin<string>>().ToTable("UserLogin");
 | 
				
			||||||
 | 
								modelBuilder.Entity<IdentityUserClaim<string>>().ToTable("UserClaim");
 | 
				
			||||||
 | 
								modelBuilder.Entity<IdentityRole>().ToTable("UserRoles");
 | 
				
			||||||
 | 
								modelBuilder.Entity<IdentityRoleClaim<string>>().ToTable("UserRoleClaim");
 | 
				
			||||||
 | 
								modelBuilder.Entity<IdentityUserToken<string>>().ToTable("UserToken");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,496 +0,0 @@
 | 
				
			|||||||
// <auto-generated />
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
using Kyoo;
 | 
					 | 
				
			||||||
using Microsoft.EntityFrameworkCore;
 | 
					 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
					 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
					 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Kyoo.Models.DatabaseMigrations
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    [DbContext(typeof(DatabaseContext))]
 | 
					 | 
				
			||||||
    [Migration("20200303213358_Initial")]
 | 
					 | 
				
			||||||
    partial class Initial
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
#pragma warning disable 612, 618
 | 
					 | 
				
			||||||
            modelBuilder
 | 
					 | 
				
			||||||
                .HasAnnotation("ProductVersion", "3.1.2");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Collection", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgPrimary")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Overview")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Poster")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Slug")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Collections");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.CollectionLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("CollectionID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("ShowID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("CollectionID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("ShowID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("CollectionLinks");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Episode", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("AbsoluteNumber")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("EpisodeNumber")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ExternalIDs")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgPrimary")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Overview")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Path")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<DateTime?>("ReleaseDate")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("Runtime")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("SeasonID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("SeasonNumber")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("ShowID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Title")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("SeasonID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("ShowID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Episodes");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Genre", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Slug")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Genres");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.GenreLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ShowID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("GenreID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ShowID", "GenreID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("GenreID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("GenreLinks");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Library", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Paths")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Providers")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Slug")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Libraries");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.LibraryLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("CollectionID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("LibraryID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("ShowID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("CollectionID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("LibraryID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("ShowID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("LibraryLinks");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.People", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<string>("Slug")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ExternalIDs")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgPrimary")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("Slug");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Peoples");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.PeopleLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("PeopleID")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Role")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("ShowID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Type")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("PeopleID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("ShowID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("PeopleLinks");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Season", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ExternalIDs")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgPrimary")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Overview")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("SeasonNumber")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("ShowID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Title")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("Year")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("ShowID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Seasons");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Show", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Aliases")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("EndYear")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ExternalIDs")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgBackdrop")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgLogo")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgPrimary")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ImgThumb")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("IsMovie")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Overview")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Path")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Slug")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("StartYear")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<int?>("Status")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long?>("StudioID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Title")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("TrailerUrl")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("StudioID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Shows");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Studio", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Slug")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Studios");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Track", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<long>("ID")
 | 
					 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Codec")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<long>("EpisodeID")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("IsDefault")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("IsExternal")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("IsForced")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Language")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Path")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Title")
 | 
					 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<int>("Type")
 | 
					 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("ID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("EpisodeID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("Tracks");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.CollectionLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Collection", "Collection")
 | 
					 | 
				
			||||||
                        .WithMany()
 | 
					 | 
				
			||||||
                        .HasForeignKey("CollectionID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Show", "Show")
 | 
					 | 
				
			||||||
                        .WithMany()
 | 
					 | 
				
			||||||
                        .HasForeignKey("ShowID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Episode", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Season", "Season")
 | 
					 | 
				
			||||||
                        .WithMany("Episodes")
 | 
					 | 
				
			||||||
                        .HasForeignKey("SeasonID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Show", "Show")
 | 
					 | 
				
			||||||
                        .WithMany("Episodes")
 | 
					 | 
				
			||||||
                        .HasForeignKey("ShowID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.GenreLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Genre", "Genre")
 | 
					 | 
				
			||||||
                        .WithMany()
 | 
					 | 
				
			||||||
                        .HasForeignKey("GenreID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Show", "Show")
 | 
					 | 
				
			||||||
                        .WithMany("GenreLinks")
 | 
					 | 
				
			||||||
                        .HasForeignKey("ShowID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.LibraryLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Collection", "Collection")
 | 
					 | 
				
			||||||
                        .WithMany()
 | 
					 | 
				
			||||||
                        .HasForeignKey("CollectionID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Library", "Library")
 | 
					 | 
				
			||||||
                        .WithMany()
 | 
					 | 
				
			||||||
                        .HasForeignKey("LibraryID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Show", "Show")
 | 
					 | 
				
			||||||
                        .WithMany()
 | 
					 | 
				
			||||||
                        .HasForeignKey("ShowID");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.PeopleLink", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.People", "People")
 | 
					 | 
				
			||||||
                        .WithMany("Roles")
 | 
					 | 
				
			||||||
                        .HasForeignKey("PeopleID");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Show", "Show")
 | 
					 | 
				
			||||||
                        .WithMany("People")
 | 
					 | 
				
			||||||
                        .HasForeignKey("ShowID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Season", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Show", "Show")
 | 
					 | 
				
			||||||
                        .WithMany("Seasons")
 | 
					 | 
				
			||||||
                        .HasForeignKey("ShowID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Show", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Studio", "Studio")
 | 
					 | 
				
			||||||
                        .WithMany()
 | 
					 | 
				
			||||||
                        .HasForeignKey("StudioID");
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Track", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Episode", "Episode")
 | 
					 | 
				
			||||||
                        .WithMany("Tracks")
 | 
					 | 
				
			||||||
                        .HasForeignKey("EpisodeID")
 | 
					 | 
				
			||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					 | 
				
			||||||
                        .IsRequired();
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
#pragma warning restore 612, 618
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,44 +0,0 @@
 | 
				
			|||||||
using System;
 | 
					 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public partial class Addingaccounts : Migration
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        protected override void Up(MigrationBuilder migrationBuilder)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "Accounts",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Id = table.Column<string>(nullable: false),
 | 
					 | 
				
			||||||
                    UserName = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    NormalizedUserName = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    Email = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    NormalizedEmail = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    EmailConfirmed = table.Column<bool>(nullable: false),
 | 
					 | 
				
			||||||
                    PasswordHash = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    SecurityStamp = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    ConcurrencyStamp = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    PhoneNumber = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    PhoneNumberConfirmed = table.Column<bool>(nullable: false),
 | 
					 | 
				
			||||||
                    TwoFactorEnabled = table.Column<bool>(nullable: false),
 | 
					 | 
				
			||||||
                    LockoutEnd = table.Column<DateTimeOffset>(nullable: true),
 | 
					 | 
				
			||||||
                    LockoutEnabled = table.Column<bool>(nullable: false),
 | 
					 | 
				
			||||||
                    AccessFailedCount = table.Column<int>(nullable: false),
 | 
					 | 
				
			||||||
                    OTAC = table.Column<string>(nullable: true),
 | 
					 | 
				
			||||||
                    OTACExpires = table.Column<DateTime>(nullable: true)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_Accounts", x => x.Id);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        protected override void Down(MigrationBuilder migrationBuilder)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "Accounts");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -9,8 +9,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
				
			|||||||
namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
					namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    [DbContext(typeof(DatabaseContext))]
 | 
					    [DbContext(typeof(DatabaseContext))]
 | 
				
			||||||
    [Migration("20200306000057_Adding accounts")]
 | 
					    [Migration("20200307014347_Initial")]
 | 
				
			||||||
    partial class Addingaccounts
 | 
					    partial class Initial
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
					        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@ -27,10 +27,12 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			|||||||
                        .HasColumnType("INTEGER");
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ConcurrencyStamp")
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Email")
 | 
					                    b.Property<string>("Email")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<bool>("EmailConfirmed")
 | 
					                    b.Property<bool>("EmailConfirmed")
 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
@ -42,10 +44,12 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			|||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("NormalizedEmail")
 | 
					                    b.Property<string>("NormalizedEmail")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("NormalizedUserName")
 | 
					                    b.Property<string>("NormalizedUserName")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("OTAC")
 | 
					                    b.Property<string>("OTAC")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
@ -69,11 +73,19 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			|||||||
                        .HasColumnType("INTEGER");
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("UserName")
 | 
					                    b.Property<string>("UserName")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.ToTable("Accounts");
 | 
					                    b.HasIndex("NormalizedEmail")
 | 
				
			||||||
 | 
					                        .HasName("EmailIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedUserName")
 | 
				
			||||||
 | 
					                        .IsUnique()
 | 
				
			||||||
 | 
					                        .HasName("UserNameIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Account");
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Collection", b =>
 | 
					            modelBuilder.Entity("Kyoo.Models.Collection", b =>
 | 
				
			||||||
@ -453,6 +465,134 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			|||||||
                    b.ToTable("Tracks");
 | 
					                    b.ToTable("Tracks");
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("Id")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("NormalizedName")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedName")
 | 
				
			||||||
 | 
					                        .IsUnique()
 | 
				
			||||||
 | 
					                        .HasName("RoleNameIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserRoles");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
 | 
					                        .IsRequired()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserRoleClaim");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .IsRequired()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserClaim");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ProviderKey")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ProviderDisplayName")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .IsRequired()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("LoginProvider", "ProviderKey");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserLogin");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("UserId", "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserRole");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Value")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("UserId", "LoginProvider", "Name");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserToken");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.CollectionLink", b =>
 | 
					            modelBuilder.Entity("Kyoo.Models.CollectionLink", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Collection", "Collection")
 | 
					                    b.HasOne("Kyoo.Models.Collection", "Collection")
 | 
				
			||||||
@ -548,6 +688,57 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			|||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
                        .IsRequired();
 | 
					                        .IsRequired();
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("RoleId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("RoleId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
#pragma warning restore 612, 618
 | 
					#pragma warning restore 612, 618
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -1,12 +1,39 @@
 | 
				
			|||||||
using System;
 | 
					using System;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
					using Microsoft.EntityFrameworkCore.Migrations;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Kyoo.Models.DatabaseMigrations
 | 
					namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public partial class Initial : Migration
 | 
					    public partial class Initial : Migration
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        protected override void Up(MigrationBuilder migrationBuilder)
 | 
					        protected override void Up(MigrationBuilder migrationBuilder)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "Account",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    UserName = table.Column<string>(maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                    NormalizedUserName = table.Column<string>(maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                    Email = table.Column<string>(maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                    NormalizedEmail = table.Column<string>(maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                    EmailConfirmed = table.Column<bool>(nullable: false),
 | 
				
			||||||
 | 
					                    PasswordHash = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    SecurityStamp = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    ConcurrencyStamp = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    PhoneNumber = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    PhoneNumberConfirmed = table.Column<bool>(nullable: false),
 | 
				
			||||||
 | 
					                    TwoFactorEnabled = table.Column<bool>(nullable: false),
 | 
				
			||||||
 | 
					                    LockoutEnd = table.Column<DateTimeOffset>(nullable: true),
 | 
				
			||||||
 | 
					                    LockoutEnabled = table.Column<bool>(nullable: false),
 | 
				
			||||||
 | 
					                    AccessFailedCount = table.Column<int>(nullable: false),
 | 
				
			||||||
 | 
					                    OTAC = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    OTACExpires = table.Column<DateTime>(nullable: true)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_Account", x => x.Id);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
                name: "Collections",
 | 
					                name: "Collections",
 | 
				
			||||||
                columns: table => new
 | 
					                columns: table => new
 | 
				
			||||||
@ -82,6 +109,81 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                    table.PrimaryKey("PK_Studios", x => x.ID);
 | 
					                    table.PrimaryKey("PK_Studios", x => x.ID);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "UserRoles",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    Name = table.Column<string>(maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                    NormalizedName = table.Column<string>(maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                    ConcurrencyStamp = table.Column<string>(nullable: true)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_UserRoles", x => x.Id);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "UserClaim",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = table.Column<int>(nullable: false)
 | 
				
			||||||
 | 
					                        .Annotation("Sqlite:Autoincrement", true),
 | 
				
			||||||
 | 
					                    UserId = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    ClaimType = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    ClaimValue = table.Column<string>(nullable: true)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_UserClaim", x => x.Id);
 | 
				
			||||||
 | 
					                    table.ForeignKey(
 | 
				
			||||||
 | 
					                        name: "FK_UserClaim_Account_UserId",
 | 
				
			||||||
 | 
					                        column: x => x.UserId,
 | 
				
			||||||
 | 
					                        principalTable: "Account",
 | 
				
			||||||
 | 
					                        principalColumn: "Id",
 | 
				
			||||||
 | 
					                        onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "UserLogin",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    LoginProvider = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    ProviderKey = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    ProviderDisplayName = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    UserId = table.Column<string>(nullable: false)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_UserLogin", x => new { x.LoginProvider, x.ProviderKey });
 | 
				
			||||||
 | 
					                    table.ForeignKey(
 | 
				
			||||||
 | 
					                        name: "FK_UserLogin_Account_UserId",
 | 
				
			||||||
 | 
					                        column: x => x.UserId,
 | 
				
			||||||
 | 
					                        principalTable: "Account",
 | 
				
			||||||
 | 
					                        principalColumn: "Id",
 | 
				
			||||||
 | 
					                        onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "UserToken",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    UserId = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    LoginProvider = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    Name = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    Value = table.Column<string>(nullable: true)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_UserToken", x => new { x.UserId, x.LoginProvider, x.Name });
 | 
				
			||||||
 | 
					                    table.ForeignKey(
 | 
				
			||||||
 | 
					                        name: "FK_UserToken_Account_UserId",
 | 
				
			||||||
 | 
					                        column: x => x.UserId,
 | 
				
			||||||
 | 
					                        principalTable: "Account",
 | 
				
			||||||
 | 
					                        principalColumn: "Id",
 | 
				
			||||||
 | 
					                        onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
                name: "Shows",
 | 
					                name: "Shows",
 | 
				
			||||||
                columns: table => new
 | 
					                columns: table => new
 | 
				
			||||||
@ -116,6 +218,51 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                        onDelete: ReferentialAction.Restrict);
 | 
					                        onDelete: ReferentialAction.Restrict);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "UserRole",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    UserId = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    RoleId = table.Column<string>(nullable: false)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_UserRole", x => new { x.UserId, x.RoleId });
 | 
				
			||||||
 | 
					                    table.ForeignKey(
 | 
				
			||||||
 | 
					                        name: "FK_UserRole_UserRoles_RoleId",
 | 
				
			||||||
 | 
					                        column: x => x.RoleId,
 | 
				
			||||||
 | 
					                        principalTable: "UserRoles",
 | 
				
			||||||
 | 
					                        principalColumn: "Id",
 | 
				
			||||||
 | 
					                        onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					                    table.ForeignKey(
 | 
				
			||||||
 | 
					                        name: "FK_UserRole_Account_UserId",
 | 
				
			||||||
 | 
					                        column: x => x.UserId,
 | 
				
			||||||
 | 
					                        principalTable: "Account",
 | 
				
			||||||
 | 
					                        principalColumn: "Id",
 | 
				
			||||||
 | 
					                        onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					                name: "UserRoleClaim",
 | 
				
			||||||
 | 
					                columns: table => new
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = table.Column<int>(nullable: false)
 | 
				
			||||||
 | 
					                        .Annotation("Sqlite:Autoincrement", true),
 | 
				
			||||||
 | 
					                    RoleId = table.Column<string>(nullable: false),
 | 
				
			||||||
 | 
					                    ClaimType = table.Column<string>(nullable: true),
 | 
				
			||||||
 | 
					                    ClaimValue = table.Column<string>(nullable: true)
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                constraints: table =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    table.PrimaryKey("PK_UserRoleClaim", x => x.Id);
 | 
				
			||||||
 | 
					                    table.ForeignKey(
 | 
				
			||||||
 | 
					                        name: "FK_UserRoleClaim_UserRoles_RoleId",
 | 
				
			||||||
 | 
					                        column: x => x.RoleId,
 | 
				
			||||||
 | 
					                        principalTable: "UserRoles",
 | 
				
			||||||
 | 
					                        principalColumn: "Id",
 | 
				
			||||||
 | 
					                        onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					            migrationBuilder.CreateTable(
 | 
				
			||||||
                name: "CollectionLinks",
 | 
					                name: "CollectionLinks",
 | 
				
			||||||
                columns: table => new
 | 
					                columns: table => new
 | 
				
			||||||
@ -315,6 +462,17 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                        onDelete: ReferentialAction.Cascade);
 | 
					                        onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "EmailIndex",
 | 
				
			||||||
 | 
					                table: "Account",
 | 
				
			||||||
 | 
					                column: "NormalizedEmail");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "UserNameIndex",
 | 
				
			||||||
 | 
					                table: "Account",
 | 
				
			||||||
 | 
					                column: "NormalizedUserName",
 | 
				
			||||||
 | 
					                unique: true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
                name: "IX_CollectionLinks_CollectionID",
 | 
					                name: "IX_CollectionLinks_CollectionID",
 | 
				
			||||||
                table: "CollectionLinks",
 | 
					                table: "CollectionLinks",
 | 
				
			||||||
@ -379,6 +537,32 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                name: "IX_Tracks_EpisodeID",
 | 
					                name: "IX_Tracks_EpisodeID",
 | 
				
			||||||
                table: "Tracks",
 | 
					                table: "Tracks",
 | 
				
			||||||
                column: "EpisodeID");
 | 
					                column: "EpisodeID");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "IX_UserClaim_UserId",
 | 
				
			||||||
 | 
					                table: "UserClaim",
 | 
				
			||||||
 | 
					                column: "UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "IX_UserLogin_UserId",
 | 
				
			||||||
 | 
					                table: "UserLogin",
 | 
				
			||||||
 | 
					                column: "UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "IX_UserRole_RoleId",
 | 
				
			||||||
 | 
					                table: "UserRole",
 | 
				
			||||||
 | 
					                column: "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "IX_UserRoleClaim_RoleId",
 | 
				
			||||||
 | 
					                table: "UserRoleClaim",
 | 
				
			||||||
 | 
					                column: "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					                name: "RoleNameIndex",
 | 
				
			||||||
 | 
					                table: "UserRoles",
 | 
				
			||||||
 | 
					                column: "NormalizedName",
 | 
				
			||||||
 | 
					                unique: true);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        protected override void Down(MigrationBuilder migrationBuilder)
 | 
					        protected override void Down(MigrationBuilder migrationBuilder)
 | 
				
			||||||
@ -398,6 +582,21 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
            migrationBuilder.DropTable(
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
                name: "Tracks");
 | 
					                name: "Tracks");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "UserClaim");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "UserLogin");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "UserRole");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "UserRoleClaim");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "UserToken");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
                name: "Genres");
 | 
					                name: "Genres");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -413,6 +612,12 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
            migrationBuilder.DropTable(
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
                name: "Episodes");
 | 
					                name: "Episodes");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "UserRoles");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					                name: "Account");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					            migrationBuilder.DropTable(
 | 
				
			||||||
                name: "Seasons");
 | 
					                name: "Seasons");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -5,7 +5,7 @@ using Microsoft.EntityFrameworkCore;
 | 
				
			|||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
					using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
					using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Kyoo.Models.DatabaseMigrations
 | 
					namespace Kyoo.Models.DatabaseMigrations.Internal
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    [DbContext(typeof(DatabaseContext))]
 | 
					    [DbContext(typeof(DatabaseContext))]
 | 
				
			||||||
    partial class DatabaseContextModelSnapshot : ModelSnapshot
 | 
					    partial class DatabaseContextModelSnapshot : ModelSnapshot
 | 
				
			||||||
@ -25,10 +25,12 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                        .HasColumnType("INTEGER");
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ConcurrencyStamp")
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Email")
 | 
					                    b.Property<string>("Email")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<bool>("EmailConfirmed")
 | 
					                    b.Property<bool>("EmailConfirmed")
 | 
				
			||||||
                        .HasColumnType("INTEGER");
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
@ -40,10 +42,12 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("NormalizedEmail")
 | 
					                    b.Property<string>("NormalizedEmail")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("NormalizedUserName")
 | 
					                    b.Property<string>("NormalizedUserName")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("OTAC")
 | 
					                    b.Property<string>("OTAC")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
@ -67,11 +71,19 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                        .HasColumnType("INTEGER");
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("UserName")
 | 
					                    b.Property<string>("UserName")
 | 
				
			||||||
                        .HasColumnType("TEXT");
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.ToTable("Accounts");
 | 
					                    b.HasIndex("NormalizedEmail")
 | 
				
			||||||
 | 
					                        .HasName("EmailIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedUserName")
 | 
				
			||||||
 | 
					                        .IsUnique()
 | 
				
			||||||
 | 
					                        .HasName("UserNameIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("Account");
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.Collection", b =>
 | 
					            modelBuilder.Entity("Kyoo.Models.Collection", b =>
 | 
				
			||||||
@ -451,6 +463,134 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                    b.ToTable("Tracks");
 | 
					                    b.ToTable("Tracks");
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("Id")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("NormalizedName")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedName")
 | 
				
			||||||
 | 
					                        .IsUnique()
 | 
				
			||||||
 | 
					                        .HasName("RoleNameIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserRoles");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
 | 
					                        .IsRequired()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserRoleClaim");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
 | 
					                        .HasColumnType("INTEGER");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .IsRequired()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserClaim");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ProviderKey")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ProviderDisplayName")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .IsRequired()
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("LoginProvider", "ProviderKey");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserLogin");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("UserId", "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserRole");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Value")
 | 
				
			||||||
 | 
					                        .HasColumnType("TEXT");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("UserId", "LoginProvider", "Name");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("UserToken");
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Kyoo.Models.CollectionLink", b =>
 | 
					            modelBuilder.Entity("Kyoo.Models.CollectionLink", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.HasOne("Kyoo.Models.Collection", "Collection")
 | 
					                    b.HasOne("Kyoo.Models.Collection", "Collection")
 | 
				
			||||||
@ -546,6 +686,57 @@ namespace Kyoo.Models.DatabaseMigrations
 | 
				
			|||||||
                        .OnDelete(DeleteBehavior.Cascade)
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
                        .IsRequired();
 | 
					                        .IsRequired();
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("RoleId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("RoleId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.HasOne("Kyoo.Models.Account", null)
 | 
				
			||||||
 | 
					                        .WithMany()
 | 
				
			||||||
 | 
					                        .HasForeignKey("UserId")
 | 
				
			||||||
 | 
					                        .OnDelete(DeleteBehavior.Cascade)
 | 
				
			||||||
 | 
					                        .IsRequired();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
#pragma warning restore 612, 618
 | 
					#pragma warning restore 612, 618
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,7 @@ using System.Threading.Tasks;
 | 
				
			|||||||
using Kyoo.Models;
 | 
					using Kyoo.Models;
 | 
				
			||||||
using Microsoft.AspNetCore.Identity;
 | 
					using Microsoft.AspNetCore.Identity;
 | 
				
			||||||
using Microsoft.AspNetCore.Mvc;
 | 
					using Microsoft.AspNetCore.Mvc;
 | 
				
			||||||
 | 
					using SignInResult = Microsoft.AspNetCore.Identity.SignInResult;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Kyoo.Api
 | 
					namespace Kyoo.Api
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -13,15 +14,24 @@ namespace Kyoo.Api
 | 
				
			|||||||
		public string Password;
 | 
							public string Password;
 | 
				
			||||||
	}	
 | 
						}	
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						public class LoginRequest
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							public string Username;
 | 
				
			||||||
 | 
							public string Password;
 | 
				
			||||||
 | 
							public bool StayLoggedIn;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	[Route("api/[controller]")]
 | 
						[Route("api/[controller]")]
 | 
				
			||||||
	[ApiController]
 | 
						[ApiController]
 | 
				
			||||||
	public class AccountController : Controller
 | 
						public class AccountController : Controller
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		private readonly UserManager<Account> _accountManager;
 | 
							private readonly UserManager<Account> _accountManager;
 | 
				
			||||||
 | 
							private readonly SignInManager<Account> _signInManager;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		public AccountController(UserManager<Account> accountManager)
 | 
							public AccountController(UserManager<Account> accountManager, SignInManager<Account> siginInManager)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			_accountManager = accountManager;
 | 
								_accountManager = accountManager;
 | 
				
			||||||
 | 
								_signInManager = siginInManager;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		[HttpPost("register")]
 | 
							[HttpPost("register")]
 | 
				
			||||||
@ -37,5 +47,16 @@ namespace Kyoo.Api
 | 
				
			|||||||
			await _accountManager.UpdateAsync(account);
 | 
								await _accountManager.UpdateAsync(account);
 | 
				
			||||||
			return Ok(otac);
 | 
								return Ok(otac);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							[HttpPost("login")]
 | 
				
			||||||
 | 
							public async Task<IActionResult> Login([FromBody] LoginRequest login)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (!ModelState.IsValid)
 | 
				
			||||||
 | 
									return BadRequest(login);
 | 
				
			||||||
 | 
								SignInResult result = await _signInManager.PasswordSignInAsync(login.Username, login.Password, login.StayLoggedIn, false);
 | 
				
			||||||
 | 
								if (result.Succeeded)
 | 
				
			||||||
 | 
									return Ok();
 | 
				
			||||||
 | 
								return BadRequest("Invalid username/password");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1 +1 @@
 | 
				
			|||||||
Subproject commit af2478da584eacee6377e50dbb4c530cffd7e0b6
 | 
					Subproject commit 6240bbce05be87f576fd4326ce26e8bfa8335c73
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user