Added compose project for debugging, added postgres
This commit is contained in:
		
							parent
							
								
									ae0f9c6796
								
							
						
					
					
						commit
						b0b30a75b4
					
				
							
								
								
									
										8
									
								
								Wave.sln
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								Wave.sln
									
									
									
									
									
								
							| 
						 | 
					@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			||||||
# Visual Studio Version 17
 | 
					# Visual Studio Version 17
 | 
				
			||||||
VisualStudioVersion = 17.9.34414.90
 | 
					VisualStudioVersion = 17.9.34414.90
 | 
				
			||||||
MinimumVisualStudioVersion = 10.0.40219.1
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wave", "Wave\Wave.csproj", "{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}"
 | 
					Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wave", "Wave\Wave.csproj", "{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{FE5DA24A-8490-4DCE-BDFB-49C9CF656F8A}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Global
 | 
					Global
 | 
				
			||||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
| 
						 | 
					@ -15,6 +17,10 @@ Global
 | 
				
			||||||
		{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
							{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
		{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
							{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
		{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
							{F4CB9B92-89E6-457D-BC06-4469AD2EC51D}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
 | 
							{FE5DA24A-8490-4DCE-BDFB-49C9CF656F8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
 | 
							{FE5DA24A-8490-4DCE-BDFB-49C9CF656F8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
 | 
							{FE5DA24A-8490-4DCE-BDFB-49C9CF656F8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
 | 
							{FE5DA24A-8490-4DCE-BDFB-49C9CF656F8A}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
	EndGlobalSection
 | 
						EndGlobalSection
 | 
				
			||||||
	GlobalSection(SolutionProperties) = preSolution
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
		HideSolutionNode = FALSE
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,224 +0,0 @@
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#nullable disable
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Wave.Migrations
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    /// <inheritdoc />
 | 
					 | 
				
			||||||
    public partial class CreateIdentitySchema : Migration
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        /// <inheritdoc />
 | 
					 | 
				
			||||||
        protected override void Up(MigrationBuilder migrationBuilder)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "AspNetRoles",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    Name = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
 | 
					 | 
				
			||||||
                    NormalizedName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
 | 
					 | 
				
			||||||
                    ConcurrencyStamp = table.Column<string>(type: "nvarchar(max)", nullable: true)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_AspNetRoles", x => x.Id);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "AspNetUsers",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    UserName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
 | 
					 | 
				
			||||||
                    NormalizedUserName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
 | 
					 | 
				
			||||||
                    Email = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
 | 
					 | 
				
			||||||
                    NormalizedEmail = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
 | 
					 | 
				
			||||||
                    EmailConfirmed = table.Column<bool>(type: "bit", nullable: false),
 | 
					 | 
				
			||||||
                    PasswordHash = table.Column<string>(type: "nvarchar(max)", nullable: true),
 | 
					 | 
				
			||||||
                    SecurityStamp = table.Column<string>(type: "nvarchar(max)", nullable: true),
 | 
					 | 
				
			||||||
                    ConcurrencyStamp = table.Column<string>(type: "nvarchar(max)", nullable: true),
 | 
					 | 
				
			||||||
                    PhoneNumber = table.Column<string>(type: "nvarchar(max)", nullable: true),
 | 
					 | 
				
			||||||
                    PhoneNumberConfirmed = table.Column<bool>(type: "bit", nullable: false),
 | 
					 | 
				
			||||||
                    TwoFactorEnabled = table.Column<bool>(type: "bit", nullable: false),
 | 
					 | 
				
			||||||
                    LockoutEnd = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: true),
 | 
					 | 
				
			||||||
                    LockoutEnabled = table.Column<bool>(type: "bit", nullable: false),
 | 
					 | 
				
			||||||
                    AccessFailedCount = table.Column<int>(type: "int", nullable: false)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_AspNetUsers", x => x.Id);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "AspNetRoleClaims",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Id = table.Column<int>(type: "int", nullable: false)
 | 
					 | 
				
			||||||
                        .Annotation("SqlServer:Identity", "1, 1"),
 | 
					 | 
				
			||||||
                    RoleId = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    ClaimType = table.Column<string>(type: "nvarchar(max)", nullable: true),
 | 
					 | 
				
			||||||
                    ClaimValue = table.Column<string>(type: "nvarchar(max)", nullable: true)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
 | 
					 | 
				
			||||||
                    table.ForeignKey(
 | 
					 | 
				
			||||||
                        name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
 | 
					 | 
				
			||||||
                        column: x => x.RoleId,
 | 
					 | 
				
			||||||
                        principalTable: "AspNetRoles",
 | 
					 | 
				
			||||||
                        principalColumn: "Id",
 | 
					 | 
				
			||||||
                        onDelete: ReferentialAction.Cascade);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserClaims",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Id = table.Column<int>(type: "int", nullable: false)
 | 
					 | 
				
			||||||
                        .Annotation("SqlServer:Identity", "1, 1"),
 | 
					 | 
				
			||||||
                    UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    ClaimType = table.Column<string>(type: "nvarchar(max)", nullable: true),
 | 
					 | 
				
			||||||
                    ClaimValue = table.Column<string>(type: "nvarchar(max)", nullable: true)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
 | 
					 | 
				
			||||||
                    table.ForeignKey(
 | 
					 | 
				
			||||||
                        name: "FK_AspNetUserClaims_AspNetUsers_UserId",
 | 
					 | 
				
			||||||
                        column: x => x.UserId,
 | 
					 | 
				
			||||||
                        principalTable: "AspNetUsers",
 | 
					 | 
				
			||||||
                        principalColumn: "Id",
 | 
					 | 
				
			||||||
                        onDelete: ReferentialAction.Cascade);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserLogins",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    LoginProvider = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    ProviderKey = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    ProviderDisplayName = table.Column<string>(type: "nvarchar(max)", nullable: true),
 | 
					 | 
				
			||||||
                    UserId = table.Column<string>(type: "nvarchar(450)", nullable: false)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey });
 | 
					 | 
				
			||||||
                    table.ForeignKey(
 | 
					 | 
				
			||||||
                        name: "FK_AspNetUserLogins_AspNetUsers_UserId",
 | 
					 | 
				
			||||||
                        column: x => x.UserId,
 | 
					 | 
				
			||||||
                        principalTable: "AspNetUsers",
 | 
					 | 
				
			||||||
                        principalColumn: "Id",
 | 
					 | 
				
			||||||
                        onDelete: ReferentialAction.Cascade);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserRoles",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    RoleId = table.Column<string>(type: "nvarchar(450)", nullable: false)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId });
 | 
					 | 
				
			||||||
                    table.ForeignKey(
 | 
					 | 
				
			||||||
                        name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
 | 
					 | 
				
			||||||
                        column: x => x.RoleId,
 | 
					 | 
				
			||||||
                        principalTable: "AspNetRoles",
 | 
					 | 
				
			||||||
                        principalColumn: "Id",
 | 
					 | 
				
			||||||
                        onDelete: ReferentialAction.Cascade);
 | 
					 | 
				
			||||||
                    table.ForeignKey(
 | 
					 | 
				
			||||||
                        name: "FK_AspNetUserRoles_AspNetUsers_UserId",
 | 
					 | 
				
			||||||
                        column: x => x.UserId,
 | 
					 | 
				
			||||||
                        principalTable: "AspNetUsers",
 | 
					 | 
				
			||||||
                        principalColumn: "Id",
 | 
					 | 
				
			||||||
                        onDelete: ReferentialAction.Cascade);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserTokens",
 | 
					 | 
				
			||||||
                columns: table => new
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    LoginProvider = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    Name = table.Column<string>(type: "nvarchar(450)", nullable: false),
 | 
					 | 
				
			||||||
                    Value = table.Column<string>(type: "nvarchar(max)", nullable: true)
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                constraints: table =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
 | 
					 | 
				
			||||||
                    table.ForeignKey(
 | 
					 | 
				
			||||||
                        name: "FK_AspNetUserTokens_AspNetUsers_UserId",
 | 
					 | 
				
			||||||
                        column: x => x.UserId,
 | 
					 | 
				
			||||||
                        principalTable: "AspNetUsers",
 | 
					 | 
				
			||||||
                        principalColumn: "Id",
 | 
					 | 
				
			||||||
                        onDelete: ReferentialAction.Cascade);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					 | 
				
			||||||
                name: "IX_AspNetRoleClaims_RoleId",
 | 
					 | 
				
			||||||
                table: "AspNetRoleClaims",
 | 
					 | 
				
			||||||
                column: "RoleId");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					 | 
				
			||||||
                name: "RoleNameIndex",
 | 
					 | 
				
			||||||
                table: "AspNetRoles",
 | 
					 | 
				
			||||||
                column: "NormalizedName",
 | 
					 | 
				
			||||||
                unique: true,
 | 
					 | 
				
			||||||
                filter: "[NormalizedName] IS NOT NULL");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					 | 
				
			||||||
                name: "IX_AspNetUserClaims_UserId",
 | 
					 | 
				
			||||||
                table: "AspNetUserClaims",
 | 
					 | 
				
			||||||
                column: "UserId");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					 | 
				
			||||||
                name: "IX_AspNetUserLogins_UserId",
 | 
					 | 
				
			||||||
                table: "AspNetUserLogins",
 | 
					 | 
				
			||||||
                column: "UserId");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					 | 
				
			||||||
                name: "IX_AspNetUserRoles_RoleId",
 | 
					 | 
				
			||||||
                table: "AspNetUserRoles",
 | 
					 | 
				
			||||||
                column: "RoleId");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					 | 
				
			||||||
                name: "EmailIndex",
 | 
					 | 
				
			||||||
                table: "AspNetUsers",
 | 
					 | 
				
			||||||
                column: "NormalizedEmail");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.CreateIndex(
 | 
					 | 
				
			||||||
                name: "UserNameIndex",
 | 
					 | 
				
			||||||
                table: "AspNetUsers",
 | 
					 | 
				
			||||||
                column: "NormalizedUserName",
 | 
					 | 
				
			||||||
                unique: true,
 | 
					 | 
				
			||||||
                filter: "[NormalizedUserName] IS NOT NULL");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <inheritdoc />
 | 
					 | 
				
			||||||
        protected override void Down(MigrationBuilder migrationBuilder)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "AspNetRoleClaims");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserClaims");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserLogins");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserRoles");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "AspNetUserTokens");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "AspNetRoles");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            migrationBuilder.DropTable(
 | 
					 | 
				
			||||||
                name: "AspNetUsers");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,19 +1,19 @@
 | 
				
			||||||
// <auto-generated />
 | 
					// <auto-generated />
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore;
 | 
					using Microsoft.EntityFrameworkCore;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
					using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Metadata;
 | 
					 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Migrations;
 | 
					using Microsoft.EntityFrameworkCore.Migrations;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
					using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
				
			||||||
using System;
 | 
					using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 | 
				
			||||||
using Wave.Data;
 | 
					using Wave.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#nullable disable
 | 
					#nullable disable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Wave.Migrations
 | 
					namespace Wave.Data.Migrations.postgres
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    [DbContext(typeof(ApplicationDbContext))]
 | 
					    [DbContext(typeof(ApplicationDbContext))]
 | 
				
			||||||
    [Migration("00000000000000_CreateIdentitySchema")]
 | 
					    [Migration("20240113124101_InitialCreate")]
 | 
				
			||||||
    partial class CreateIdentitySchema
 | 
					    partial class InitialCreate
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <inheritdoc />
 | 
					        /// <inheritdoc />
 | 
				
			||||||
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
					        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
| 
						 | 
					@ -21,98 +21,32 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
#pragma warning disable 612, 618
 | 
					#pragma warning disable 612, 618
 | 
				
			||||||
            modelBuilder
 | 
					            modelBuilder
 | 
				
			||||||
                .HasAnnotation("ProductVersion", "8.0.0")
 | 
					                .HasAnnotation("ProductVersion", "8.0.0")
 | 
				
			||||||
                .HasAnnotation("Relational:MaxIdentifierLength", 128);
 | 
					                .HasAnnotation("Relational:MaxIdentifierLength", 63);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
 | 
					            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Wave.Data.ApplicationUser", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<string>("Id")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<int>("AccessFailedCount")
 | 
					 | 
				
			||||||
                        .HasColumnType("int");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ConcurrencyStamp")
 | 
					 | 
				
			||||||
                        .IsConcurrencyToken()
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Email")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("EmailConfirmed")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("LockoutEnabled")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<DateTimeOffset?>("LockoutEnd")
 | 
					 | 
				
			||||||
                        .HasColumnType("datetimeoffset");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("NormalizedEmail")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("NormalizedUserName")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("PasswordHash")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("PhoneNumber")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("PhoneNumberConfirmed")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("SecurityStamp")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("TwoFactorEnabled")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("UserName")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("Id");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("NormalizedEmail")
 | 
					 | 
				
			||||||
                        .HasDatabaseName("EmailIndex");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("NormalizedUserName")
 | 
					 | 
				
			||||||
                        .IsUnique()
 | 
					 | 
				
			||||||
                        .HasDatabaseName("UserNameIndex")
 | 
					 | 
				
			||||||
                        .HasFilter("[NormalizedUserName] IS NOT NULL");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("AspNetUsers", (string)null);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("Id")
 | 
					                    b.Property<string>("Id")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ConcurrencyStamp")
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
                        .IsConcurrencyToken()
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("NormalizedName")
 | 
					                    b.Property<string>("NormalizedName")
 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasIndex("NormalizedName")
 | 
					                    b.HasIndex("NormalizedName")
 | 
				
			||||||
                        .IsUnique()
 | 
					                        .IsUnique()
 | 
				
			||||||
                        .HasDatabaseName("RoleNameIndex")
 | 
					                        .HasDatabaseName("RoleNameIndex");
 | 
				
			||||||
                        .HasFilter("[NormalizedName] IS NOT NULL");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.ToTable("AspNetRoles", (string)null);
 | 
					                    b.ToTable("AspNetRoles", (string)null);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
| 
						 | 
					@ -121,19 +55,19 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<int>("Id")
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
                        .HasColumnType("int");
 | 
					                        .HasColumnType("integer");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
 | 
					                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimType")
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimValue")
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("RoleId")
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
                        .IsRequired()
 | 
					                        .IsRequired()
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -146,19 +80,19 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<int>("Id")
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
                        .HasColumnType("int");
 | 
					                        .HasColumnType("integer");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
 | 
					                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimType")
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimValue")
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .IsRequired()
 | 
					                        .IsRequired()
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -170,17 +104,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("LoginProvider")
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ProviderKey")
 | 
					                    b.Property<string>("ProviderKey")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ProviderDisplayName")
 | 
					                    b.Property<string>("ProviderDisplayName")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .IsRequired()
 | 
					                        .IsRequired()
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("LoginProvider", "ProviderKey");
 | 
					                    b.HasKey("LoginProvider", "ProviderKey");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -192,10 +126,10 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("RoleId")
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("UserId", "RoleId");
 | 
					                    b.HasKey("UserId", "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -207,22 +141,86 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("LoginProvider")
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Value")
 | 
					                    b.Property<string>("Value")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("UserId", "LoginProvider", "Name");
 | 
					                    b.HasKey("UserId", "LoginProvider", "Name");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.ToTable("AspNetUserTokens", (string)null);
 | 
					                    b.ToTable("AspNetUserTokens", (string)null);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Wave.Data.ApplicationUser", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("Id")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("AccessFailedCount")
 | 
				
			||||||
 | 
					                        .HasColumnType("integer");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Email")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("EmailConfirmed")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("LockoutEnabled")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<DateTimeOffset?>("LockoutEnd")
 | 
				
			||||||
 | 
					                        .HasColumnType("timestamp with time zone");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("NormalizedEmail")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("NormalizedUserName")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("PasswordHash")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("PhoneNumber")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("PhoneNumberConfirmed")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("SecurityStamp")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("TwoFactorEnabled")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("UserName")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedEmail")
 | 
				
			||||||
 | 
					                        .HasDatabaseName("EmailIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedUserName")
 | 
				
			||||||
 | 
					                        .IsUnique()
 | 
				
			||||||
 | 
					                        .HasDatabaseName("UserNameIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("AspNetUsers", (string)null);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
					                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
				
			||||||
							
								
								
									
										212
									
								
								Wave/Data/Migrations/postgres/20240113124101_InitialCreate.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										212
									
								
								Wave/Data/Migrations/postgres/20240113124101_InitialCreate.cs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,212 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using Microsoft.EntityFrameworkCore.Migrations;
 | 
				
			||||||
 | 
					using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#nullable disable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Wave.Data.Migrations.postgres;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Add-Migration InitialCreate -OutputDir Data/Migrations/postgres -Project Wave -StartupProject Wave -Context ApplicationDbContext -Args "ConnectionStrings:DefaultConnection=Host=localhost;Port=5432;AllowAnonymousConnections=true"
 | 
				
			||||||
 | 
					/// <inheritdoc />
 | 
				
			||||||
 | 
					public partial class InitialCreate : Migration {
 | 
				
			||||||
 | 
					    /// <inheritdoc />
 | 
				
			||||||
 | 
					    protected override void Up(MigrationBuilder migrationBuilder) {
 | 
				
			||||||
 | 
					        migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					            name: "AspNetRoles",
 | 
				
			||||||
 | 
					            columns: table => new
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Id = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                Name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                NormalizedName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                ConcurrencyStamp = table.Column<string>(type: "text", nullable: true)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            constraints: table => { table.PrimaryKey("PK_AspNetRoles", x => x.Id); });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					            name: "AspNetUsers",
 | 
				
			||||||
 | 
					            columns: table => new
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Id = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                UserName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                NormalizedUserName =
 | 
				
			||||||
 | 
					                    table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                NormalizedEmail = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
 | 
				
			||||||
 | 
					                EmailConfirmed = table.Column<bool>(type: "boolean", nullable: false),
 | 
				
			||||||
 | 
					                PasswordHash = table.Column<string>(type: "text", nullable: true),
 | 
				
			||||||
 | 
					                SecurityStamp = table.Column<string>(type: "text", nullable: true),
 | 
				
			||||||
 | 
					                ConcurrencyStamp = table.Column<string>(type: "text", nullable: true),
 | 
				
			||||||
 | 
					                PhoneNumber = table.Column<string>(type: "text", nullable: true),
 | 
				
			||||||
 | 
					                PhoneNumberConfirmed = table.Column<bool>(type: "boolean", nullable: false),
 | 
				
			||||||
 | 
					                TwoFactorEnabled = table.Column<bool>(type: "boolean", nullable: false),
 | 
				
			||||||
 | 
					                LockoutEnd = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
 | 
				
			||||||
 | 
					                LockoutEnabled = table.Column<bool>(type: "boolean", nullable: false),
 | 
				
			||||||
 | 
					                AccessFailedCount = table.Column<int>(type: "integer", nullable: false)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            constraints: table => { table.PrimaryKey("PK_AspNetUsers", x => x.Id); });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					            name: "AspNetRoleClaims",
 | 
				
			||||||
 | 
					            columns: table => new
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Id = table.Column<int>(type: "integer", nullable: false)
 | 
				
			||||||
 | 
					                    .Annotation("Npgsql:ValueGenerationStrategy",
 | 
				
			||||||
 | 
					                        NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
 | 
				
			||||||
 | 
					                RoleId = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                ClaimType = table.Column<string>(type: "text", nullable: true),
 | 
				
			||||||
 | 
					                ClaimValue = table.Column<string>(type: "text", nullable: true)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            constraints: table => {
 | 
				
			||||||
 | 
					                table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
 | 
				
			||||||
 | 
					                table.ForeignKey(
 | 
				
			||||||
 | 
					                    name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
 | 
				
			||||||
 | 
					                    column: x => x.RoleId,
 | 
				
			||||||
 | 
					                    principalTable: "AspNetRoles",
 | 
				
			||||||
 | 
					                    principalColumn: "Id",
 | 
				
			||||||
 | 
					                    onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserClaims",
 | 
				
			||||||
 | 
					            columns: table => new
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Id = table.Column<int>(type: "integer", nullable: false)
 | 
				
			||||||
 | 
					                    .Annotation("Npgsql:ValueGenerationStrategy",
 | 
				
			||||||
 | 
					                        NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
 | 
				
			||||||
 | 
					                UserId = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                ClaimType = table.Column<string>(type: "text", nullable: true),
 | 
				
			||||||
 | 
					                ClaimValue = table.Column<string>(type: "text", nullable: true)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            constraints: table => {
 | 
				
			||||||
 | 
					                table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
 | 
				
			||||||
 | 
					                table.ForeignKey(
 | 
				
			||||||
 | 
					                    name: "FK_AspNetUserClaims_AspNetUsers_UserId",
 | 
				
			||||||
 | 
					                    column: x => x.UserId,
 | 
				
			||||||
 | 
					                    principalTable: "AspNetUsers",
 | 
				
			||||||
 | 
					                    principalColumn: "Id",
 | 
				
			||||||
 | 
					                    onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserLogins",
 | 
				
			||||||
 | 
					            columns: table => new
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                LoginProvider = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                ProviderKey = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                ProviderDisplayName = table.Column<string>(type: "text", nullable: true),
 | 
				
			||||||
 | 
					                UserId = table.Column<string>(type: "text", nullable: false)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            constraints: table => {
 | 
				
			||||||
 | 
					                table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey });
 | 
				
			||||||
 | 
					                table.ForeignKey(
 | 
				
			||||||
 | 
					                    name: "FK_AspNetUserLogins_AspNetUsers_UserId",
 | 
				
			||||||
 | 
					                    column: x => x.UserId,
 | 
				
			||||||
 | 
					                    principalTable: "AspNetUsers",
 | 
				
			||||||
 | 
					                    principalColumn: "Id",
 | 
				
			||||||
 | 
					                    onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserRoles",
 | 
				
			||||||
 | 
					            columns: table => new
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                UserId = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                RoleId = table.Column<string>(type: "text", nullable: false)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            constraints: table => {
 | 
				
			||||||
 | 
					                table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId });
 | 
				
			||||||
 | 
					                table.ForeignKey(
 | 
				
			||||||
 | 
					                    name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
 | 
				
			||||||
 | 
					                    column: x => x.RoleId,
 | 
				
			||||||
 | 
					                    principalTable: "AspNetRoles",
 | 
				
			||||||
 | 
					                    principalColumn: "Id",
 | 
				
			||||||
 | 
					                    onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					                table.ForeignKey(
 | 
				
			||||||
 | 
					                    name: "FK_AspNetUserRoles_AspNetUsers_UserId",
 | 
				
			||||||
 | 
					                    column: x => x.UserId,
 | 
				
			||||||
 | 
					                    principalTable: "AspNetUsers",
 | 
				
			||||||
 | 
					                    principalColumn: "Id",
 | 
				
			||||||
 | 
					                    onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserTokens",
 | 
				
			||||||
 | 
					            columns: table => new
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                UserId = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                LoginProvider = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                Name = table.Column<string>(type: "text", nullable: false),
 | 
				
			||||||
 | 
					                Value = table.Column<string>(type: "text", nullable: true)
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            constraints: table => {
 | 
				
			||||||
 | 
					                table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
 | 
				
			||||||
 | 
					                table.ForeignKey(
 | 
				
			||||||
 | 
					                    name: "FK_AspNetUserTokens_AspNetUsers_UserId",
 | 
				
			||||||
 | 
					                    column: x => x.UserId,
 | 
				
			||||||
 | 
					                    principalTable: "AspNetUsers",
 | 
				
			||||||
 | 
					                    principalColumn: "Id",
 | 
				
			||||||
 | 
					                    onDelete: ReferentialAction.Cascade);
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					            name: "IX_AspNetRoleClaims_RoleId",
 | 
				
			||||||
 | 
					            table: "AspNetRoleClaims",
 | 
				
			||||||
 | 
					            column: "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					            name: "RoleNameIndex",
 | 
				
			||||||
 | 
					            table: "AspNetRoles",
 | 
				
			||||||
 | 
					            column: "NormalizedName",
 | 
				
			||||||
 | 
					            unique: true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					            name: "IX_AspNetUserClaims_UserId",
 | 
				
			||||||
 | 
					            table: "AspNetUserClaims",
 | 
				
			||||||
 | 
					            column: "UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					            name: "IX_AspNetUserLogins_UserId",
 | 
				
			||||||
 | 
					            table: "AspNetUserLogins",
 | 
				
			||||||
 | 
					            column: "UserId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					            name: "IX_AspNetUserRoles_RoleId",
 | 
				
			||||||
 | 
					            table: "AspNetUserRoles",
 | 
				
			||||||
 | 
					            column: "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					            name: "EmailIndex",
 | 
				
			||||||
 | 
					            table: "AspNetUsers",
 | 
				
			||||||
 | 
					            column: "NormalizedEmail");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.CreateIndex(
 | 
				
			||||||
 | 
					            name: "UserNameIndex",
 | 
				
			||||||
 | 
					            table: "AspNetUsers",
 | 
				
			||||||
 | 
					            column: "NormalizedUserName",
 | 
				
			||||||
 | 
					            unique: true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <inheritdoc />
 | 
				
			||||||
 | 
					    protected override void Down(MigrationBuilder migrationBuilder) {
 | 
				
			||||||
 | 
					        migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					            name: "AspNetRoleClaims");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserClaims");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserLogins");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserRoles");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					            name: "AspNetUserTokens");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					            name: "AspNetRoles");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        migrationBuilder.DropTable(
 | 
				
			||||||
 | 
					            name: "AspNetUsers");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,14 @@
 | 
				
			||||||
// <auto-generated />
 | 
					// <auto-generated />
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore;
 | 
					using Microsoft.EntityFrameworkCore;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
					using Microsoft.EntityFrameworkCore.Infrastructure;
 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Metadata;
 | 
					 | 
				
			||||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
					using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 | 
				
			||||||
using System;
 | 
					using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 | 
				
			||||||
using Wave.Data;
 | 
					using Wave.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#nullable disable
 | 
					#nullable disable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Wave.Migrations
 | 
					namespace Wave.Data.Migrations.postgres
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    [DbContext(typeof(ApplicationDbContext))]
 | 
					    [DbContext(typeof(ApplicationDbContext))]
 | 
				
			||||||
    partial class ApplicationDbContextModelSnapshot : ModelSnapshot
 | 
					    partial class ApplicationDbContextModelSnapshot : ModelSnapshot
 | 
				
			||||||
| 
						 | 
					@ -18,98 +18,32 @@ protected override void BuildModel(ModelBuilder modelBuilder)
 | 
				
			||||||
#pragma warning disable 612, 618
 | 
					#pragma warning disable 612, 618
 | 
				
			||||||
            modelBuilder
 | 
					            modelBuilder
 | 
				
			||||||
                .HasAnnotation("ProductVersion", "8.0.0")
 | 
					                .HasAnnotation("ProductVersion", "8.0.0")
 | 
				
			||||||
                .HasAnnotation("Relational:MaxIdentifierLength", 128);
 | 
					                .HasAnnotation("Relational:MaxIdentifierLength", 63);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
 | 
					            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 | 
				
			||||||
 | 
					 | 
				
			||||||
            modelBuilder.Entity("Wave.Data.ApplicationUser", b =>
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    b.Property<string>("Id")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<int>("AccessFailedCount")
 | 
					 | 
				
			||||||
                        .HasColumnType("int");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("ConcurrencyStamp")
 | 
					 | 
				
			||||||
                        .IsConcurrencyToken()
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("Email")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("EmailConfirmed")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("LockoutEnabled")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<DateTimeOffset?>("LockoutEnd")
 | 
					 | 
				
			||||||
                        .HasColumnType("datetimeoffset");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("NormalizedEmail")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("NormalizedUserName")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("PasswordHash")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("PhoneNumber")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("PhoneNumberConfirmed")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("SecurityStamp")
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<bool>("TwoFactorEnabled")
 | 
					 | 
				
			||||||
                        .HasColumnType("bit");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.Property<string>("UserName")
 | 
					 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasKey("Id");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("NormalizedEmail")
 | 
					 | 
				
			||||||
                        .HasDatabaseName("EmailIndex");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.HasIndex("NormalizedUserName")
 | 
					 | 
				
			||||||
                        .IsUnique()
 | 
					 | 
				
			||||||
                        .HasDatabaseName("UserNameIndex")
 | 
					 | 
				
			||||||
                        .HasFilter("[NormalizedUserName] IS NOT NULL");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    b.ToTable("AspNetUsers", (string)null);
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("Id")
 | 
					                    b.Property<string>("Id")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ConcurrencyStamp")
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
                        .IsConcurrencyToken()
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("NormalizedName")
 | 
					                    b.Property<string>("NormalizedName")
 | 
				
			||||||
                        .HasMaxLength(256)
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
                        .HasColumnType("nvarchar(256)");
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasIndex("NormalizedName")
 | 
					                    b.HasIndex("NormalizedName")
 | 
				
			||||||
                        .IsUnique()
 | 
					                        .IsUnique()
 | 
				
			||||||
                        .HasDatabaseName("RoleNameIndex")
 | 
					                        .HasDatabaseName("RoleNameIndex");
 | 
				
			||||||
                        .HasFilter("[NormalizedName] IS NOT NULL");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.ToTable("AspNetRoles", (string)null);
 | 
					                    b.ToTable("AspNetRoles", (string)null);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
| 
						 | 
					@ -118,19 +52,19 @@ protected override void BuildModel(ModelBuilder modelBuilder)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<int>("Id")
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
                        .HasColumnType("int");
 | 
					                        .HasColumnType("integer");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
 | 
					                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimType")
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimValue")
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("RoleId")
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
                        .IsRequired()
 | 
					                        .IsRequired()
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -143,19 +77,19 @@ protected override void BuildModel(ModelBuilder modelBuilder)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<int>("Id")
 | 
					                    b.Property<int>("Id")
 | 
				
			||||||
                        .ValueGeneratedOnAdd()
 | 
					                        .ValueGeneratedOnAdd()
 | 
				
			||||||
                        .HasColumnType("int");
 | 
					                        .HasColumnType("integer");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
 | 
					                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimType")
 | 
					                    b.Property<string>("ClaimType")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ClaimValue")
 | 
					                    b.Property<string>("ClaimValue")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .IsRequired()
 | 
					                        .IsRequired()
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("Id");
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -167,17 +101,17 @@ protected override void BuildModel(ModelBuilder modelBuilder)
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("LoginProvider")
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ProviderKey")
 | 
					                    b.Property<string>("ProviderKey")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("ProviderDisplayName")
 | 
					                    b.Property<string>("ProviderDisplayName")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .IsRequired()
 | 
					                        .IsRequired()
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("LoginProvider", "ProviderKey");
 | 
					                    b.HasKey("LoginProvider", "ProviderKey");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -189,10 +123,10 @@ protected override void BuildModel(ModelBuilder modelBuilder)
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("RoleId")
 | 
					                    b.Property<string>("RoleId")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("UserId", "RoleId");
 | 
					                    b.HasKey("UserId", "RoleId");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -204,22 +138,86 @@ protected override void BuildModel(ModelBuilder modelBuilder)
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.Property<string>("UserId")
 | 
					                    b.Property<string>("UserId")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("LoginProvider")
 | 
					                    b.Property<string>("LoginProvider")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Name")
 | 
					                    b.Property<string>("Name")
 | 
				
			||||||
                        .HasColumnType("nvarchar(450)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.Property<string>("Value")
 | 
					                    b.Property<string>("Value")
 | 
				
			||||||
                        .HasColumnType("nvarchar(max)");
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.HasKey("UserId", "LoginProvider", "Name");
 | 
					                    b.HasKey("UserId", "LoginProvider", "Name");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    b.ToTable("AspNetUserTokens", (string)null);
 | 
					                    b.ToTable("AspNetUserTokens", (string)null);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modelBuilder.Entity("Wave.Data.ApplicationUser", b =>
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    b.Property<string>("Id")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<int>("AccessFailedCount")
 | 
				
			||||||
 | 
					                        .HasColumnType("integer");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("ConcurrencyStamp")
 | 
				
			||||||
 | 
					                        .IsConcurrencyToken()
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("Email")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("EmailConfirmed")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("LockoutEnabled")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<DateTimeOffset?>("LockoutEnd")
 | 
				
			||||||
 | 
					                        .HasColumnType("timestamp with time zone");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("NormalizedEmail")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("NormalizedUserName")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("PasswordHash")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("PhoneNumber")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("PhoneNumberConfirmed")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("SecurityStamp")
 | 
				
			||||||
 | 
					                        .HasColumnType("text");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<bool>("TwoFactorEnabled")
 | 
				
			||||||
 | 
					                        .HasColumnType("boolean");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.Property<string>("UserName")
 | 
				
			||||||
 | 
					                        .HasMaxLength(256)
 | 
				
			||||||
 | 
					                        .HasColumnType("character varying(256)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasKey("Id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedEmail")
 | 
				
			||||||
 | 
					                        .HasDatabaseName("EmailIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.HasIndex("NormalizedUserName")
 | 
				
			||||||
 | 
					                        .IsUnique()
 | 
				
			||||||
 | 
					                        .HasDatabaseName("UserNameIndex");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    b.ToTable("AspNetUsers", (string)null);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
					            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
					                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@
 | 
				
			||||||
using Wave.Data;
 | 
					using Wave.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var builder = WebApplication.CreateBuilder(args);
 | 
					var builder = WebApplication.CreateBuilder(args);
 | 
				
			||||||
 | 
					builder.Configuration.AddEnvironmentVariables("WAVE_");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Add services to the container.
 | 
					// Add services to the container.
 | 
				
			||||||
builder.Services.AddRazorComponents();
 | 
					builder.Services.AddRazorComponents();
 | 
				
			||||||
| 
						 | 
					@ -30,9 +31,10 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#region Identity
 | 
					#region Identity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
 | 
					string connectionString = builder.Configuration.GetConnectionString("DefaultConnection") 
 | 
				
			||||||
 | 
					                          ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
 | 
				
			||||||
builder.Services.AddDbContext<ApplicationDbContext>(options =>
 | 
					builder.Services.AddDbContext<ApplicationDbContext>(options =>
 | 
				
			||||||
    options.UseSqlServer(connectionString));
 | 
					    options.UseNpgsql(connectionString));
 | 
				
			||||||
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
 | 
					builder.Services.AddDatabaseDeveloperPageExceptionFilter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
builder.Services.AddIdentityCore<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
 | 
					builder.Services.AddIdentityCore<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@
 | 
				
			||||||
    <ImplicitUsings>enable</ImplicitUsings>
 | 
					    <ImplicitUsings>enable</ImplicitUsings>
 | 
				
			||||||
    <UserSecretsId>aspnet-Wave-e004be03-56b7-4c24-aea7-ae4fda617143</UserSecretsId>
 | 
					    <UserSecretsId>aspnet-Wave-e004be03-56b7-4c24-aea7-ae4fda617143</UserSecretsId>
 | 
				
			||||||
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
 | 
					    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
 | 
				
			||||||
 | 
					    <DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
| 
						 | 
					@ -14,6 +15,7 @@
 | 
				
			||||||
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
 | 
					    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
 | 
				
			||||||
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0" />
 | 
					    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0" />
 | 
				
			||||||
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.6" />
 | 
					    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.6" />
 | 
				
			||||||
 | 
					    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.0" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,4 +5,4 @@
 | 
				
			||||||
      "Microsoft.AspNetCore": "Warning"
 | 
					      "Microsoft.AspNetCore": "Warning"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,4 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  "ConnectionStrings": {
 | 
					 | 
				
			||||||
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-Wave-e004be03-56b7-4c24-aea7-ae4fda617143;Trusted_Connection=True;MultipleActiveResultSets=true"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "Logging": {
 | 
					  "Logging": {
 | 
				
			||||||
    "LogLevel": {
 | 
					    "LogLevel": {
 | 
				
			||||||
      "Default": "Information",
 | 
					      "Default": "Information",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										19
									
								
								docker-compose.dcproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								docker-compose.dcproj
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectVersion>2.1</ProjectVersion>
 | 
				
			||||||
 | 
					    <DockerTargetOS>Linux</DockerTargetOS>
 | 
				
			||||||
 | 
					    <DockerPublishLocally>False</DockerPublishLocally>
 | 
				
			||||||
 | 
					    <ProjectGuid>fe5da24a-8490-4dce-bdfb-49c9cf656f8a</ProjectGuid>
 | 
				
			||||||
 | 
					    <DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
 | 
				
			||||||
 | 
					    <DockerServiceUrl>{Scheme}://localhost:{ServicePort}</DockerServiceUrl>
 | 
				
			||||||
 | 
					    <DockerServiceName>web</DockerServiceName>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <None Include="docker-compose.override.yml">
 | 
				
			||||||
 | 
					      <DependentUpon>docker-compose.yml</DependentUpon>
 | 
				
			||||||
 | 
					    </None>
 | 
				
			||||||
 | 
					    <None Include="docker-compose.yml" />
 | 
				
			||||||
 | 
					    <None Include=".dockerignore" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										9
									
								
								docker-compose.override.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docker-compose.override.yml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					version: '3.4'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  web:
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - ASPNETCORE_ENVIRONMENT=Development
 | 
				
			||||||
 | 
					      - ASPNETCORE_HTTP_PORTS=8080
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ${APPDATA}/Microsoft/UserSecrets:/home/app/.microsoft/usersecrets:ro
 | 
				
			||||||
							
								
								
									
										31
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,31 @@
 | 
				
			||||||
 | 
					version: '3.4'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name: wave
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  web:
 | 
				
			||||||
 | 
					    image: ${DOCKER_REGISTRY-}wave
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      context: .
 | 
				
			||||||
 | 
					      dockerfile: Wave/Dockerfile
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - "80:8080"
 | 
				
			||||||
 | 
					    links:
 | 
				
			||||||
 | 
					        - database:db
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - "WAVE_ConnectionStrings__DefaultConnection=Host=db; Username=wave; Password=development"
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - wave
 | 
				
			||||||
 | 
					  database:
 | 
				
			||||||
 | 
					    image: postgres:16.1-alpine
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - "POSTGRES_DB=wave"
 | 
				
			||||||
 | 
					      - "POSTGRES_USER=wave"
 | 
				
			||||||
 | 
					      - "POSTGRES_PASSWORD=development"
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - wave
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					networks:
 | 
				
			||||||
 | 
					  wave:
 | 
				
			||||||
							
								
								
									
										11
									
								
								launchSettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								launchSettings.json
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "profiles": {
 | 
				
			||||||
 | 
					    "Docker Compose": {
 | 
				
			||||||
 | 
					      "commandName": "DockerCompose",
 | 
				
			||||||
 | 
					      "commandVersion": "1.0",
 | 
				
			||||||
 | 
					      "serviceActions": {
 | 
				
			||||||
 | 
					        "web": "StartDebugging"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in a new issue