using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; using Oqtane.Databases.Interfaces; using Oqtane.Interfaces; // 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, IDatabase database) : base(migrationBuilder, database) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; } protected override AspNetUsersEntityBuilder BuildTable(ColumnsBuilder table) { Id = AddStringColumn(table,"Id", 450); UserName = AddStringColumn(table,"UserName", 256, true); NormalizedUserName = AddStringColumn(table,"NormalizedUserName", 256, true); Email = AddStringColumn(table,"Email", 256, true); NormalizedEmail = AddStringColumn(table,"NormalizedEmail", 256, true); EmailConfirmed = AddBooleanColumn(table,"EmailConfirmed"); PasswordHash = AddMaxStringColumn(table,"PasswordHash", true); SecurityStamp = AddMaxStringColumn(table,"SecurityStamp", true); ConcurrencyStamp = AddMaxStringColumn(table,"ConcurrencyStamp", true); PhoneNumber = AddMaxStringColumn(table,"PhoneNumber", true); PhoneNumberConfirmed = AddBooleanColumn(table,"PhoneNumberConfirmed"); TwoFactorEnabled = AddBooleanColumn(table,"TwoFactorEnabled"); LockoutEnd = AddDateTimeOffsetColumn(table,"LockoutEnd", true); LockoutEnabled = AddBooleanColumn(table,"LockoutEnabled"); AccessFailedCount = AddIntegerColumn(table,"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; } } }