using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; using Oqtane.Interfaces; using Oqtane.Migrations.Extensions; // ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace Oqtane.Migrations.EntityBuilders { public class AspNetUsersEntityBuilder : BaseEntityBuilder { private const string _entityTableName = "AspNetUsers"; private readonly PrimaryKey _primaryKey = new("PK_AspNetUsers", x => x.Id); public AspNetUsersEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; } protected override AspNetUsersEntityBuilder BuildTable(ColumnsBuilder table) { Id = table.AddStringColumn("Id", 450); UserName = table.AddStringColumn("Username", 256, true); NormalizedUserName = table.AddStringColumn("NormalizedUserName", 256, true); Email = table.AddStringColumn("Email", 256, true); NormalizedEmail = table.AddStringColumn("NormalizedEmail", 256, true); EmailConfirmed = table.AddBooleanColumn("EmailConfirmed"); PasswordHash = table.AddMaxStringColumn("PasswordHash", true); SecurityStamp = table.AddMaxStringColumn("SecurityStamp", true); ConcurrencyStamp = table.AddMaxStringColumn("ConcurrencyStamp", true); PhoneNumber = table.AddMaxStringColumn("PhoneNumber", true); PhoneNumberConfirmed = table.AddBooleanColumn("PhoneNumberConfirmed"); TwoFactorEnabled = table.AddBooleanColumn("TwoFactorEnabled"); LockoutEnd = table.AddDateTimeOffsetColumn("LockoutEnd", true); LockoutEnabled = table.AddBooleanColumn("LockoutEnabled"); AccessFailedCount = table.AddIntegerColumn("AccessFailedCount"); return this; } public OperationBuilder Id { get; set; } public OperationBuilder UserName { get; set; } public OperationBuilder NormalizedUserName { get; set; } public OperationBuilder Email { get; set; } public OperationBuilder NormalizedEmail { get; set; } public OperationBuilder EmailConfirmed { get; set; } public OperationBuilder PasswordHash { get; set; } public OperationBuilder SecurityStamp { get; set; } public OperationBuilder ConcurrencyStamp { get; set; } public OperationBuilder PhoneNumber { get; set; } public OperationBuilder PhoneNumberConfirmed { get; set; } public OperationBuilder TwoFactorEnabled { get; set; } public OperationBuilder LockoutEnd { get; set; } public OperationBuilder LockoutEnabled { get; set; } public OperationBuilder AccessFailedCount { get; set; } } }