20251109052850_ImportOldSchemaForPostgres.cs
1 using System; 2 using Microsoft.EntityFrameworkCore.Migrations; 3 using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; 4 5 #nullable disable 6 7 namespace _5uhr.Migrations 8 { 9 /// <inheritdoc /> 10 public partial class ImportOldSchemaForPostgres : Migration 11 { 12 /// <inheritdoc /> 13 protected override void Up(MigrationBuilder migrationBuilder) 14 { 15 migrationBuilder.CreateTable( 16 name: "AspNetRoles", 17 columns: table => new 18 { 19 Id = table.Column<string>(type: "text", nullable: false), 20 Name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), 21 NormalizedName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), 22 ConcurrencyStamp = table.Column<string>(type: "text", nullable: true) 23 }, 24 constraints: table => 25 { 26 table.PrimaryKey("PK_AspNetRoles", x => x.Id); 27 }); 28 29 migrationBuilder.CreateTable( 30 name: "AspNetUsers", 31 columns: table => new 32 { 33 Id = table.Column<string>(type: "text", nullable: false), 34 UserName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), 35 NormalizedUserName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), 36 Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), 37 NormalizedEmail = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true), 38 EmailConfirmed = table.Column<bool>(type: "boolean", nullable: false), 39 PasswordHash = table.Column<string>(type: "text", nullable: true), 40 SecurityStamp = table.Column<string>(type: "text", nullable: true), 41 ConcurrencyStamp = table.Column<string>(type: "text", nullable: true), 42 PhoneNumber = table.Column<string>(type: "text", nullable: true), 43 PhoneNumberConfirmed = table.Column<bool>(type: "boolean", nullable: false), 44 TwoFactorEnabled = table.Column<bool>(type: "boolean", nullable: false), 45 LockoutEnd = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true), 46 LockoutEnabled = table.Column<bool>(type: "boolean", nullable: false), 47 AccessFailedCount = table.Column<int>(type: "integer", nullable: false) 48 }, 49 constraints: table => 50 { 51 table.PrimaryKey("PK_AspNetUsers", x => x.Id); 52 }); 53 54 migrationBuilder.CreateTable( 55 name: "Configurations", 56 columns: table => new 57 { 58 Id = table.Column<Guid>(type: "uuid", nullable: false), 59 GuildId = table.Column<decimal>(type: "numeric(20,0)", nullable: false), 60 CheckInChannelId = table.Column<decimal>(type: "numeric(20,0)", nullable: false), 61 LeaderboardChannelId = table.Column<decimal>(type: "numeric(20,0)", nullable: false) 62 }, 63 constraints: table => 64 { 65 table.PrimaryKey("PK_Configurations", x => x.Id); 66 }); 67 68 migrationBuilder.CreateTable( 69 name: "Days", 70 columns: table => new 71 { 72 Id = table.Column<Guid>(type: "uuid", nullable: false), 73 Start = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false), 74 NextId = table.Column<Guid>(type: "uuid", nullable: true) 75 }, 76 constraints: table => 77 { 78 table.PrimaryKey("PK_Days", x => x.Id); 79 table.ForeignKey( 80 name: "FK_Days_Days_NextId", 81 column: x => x.NextId, 82 principalTable: "Days", 83 principalColumn: "Id"); 84 }); 85 86 migrationBuilder.CreateTable( 87 name: "Member", 88 columns: table => new 89 { 90 Id = table.Column<Guid>(type: "uuid", nullable: false), 91 DiscordUserId = table.Column<decimal>(type: "numeric(20,0)", nullable: true), 92 FriendlyName = table.Column<string>(type: "text", nullable: true) 93 }, 94 constraints: table => 95 { 96 table.PrimaryKey("PK_Member", x => x.Id); 97 }); 98 99 migrationBuilder.CreateTable( 100 name: "AspNetRoleClaims", 101 columns: table => new 102 { 103 Id = table.Column<int>(type: "integer", nullable: false) 104 .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), 105 RoleId = table.Column<string>(type: "text", nullable: false), 106 ClaimType = table.Column<string>(type: "text", nullable: true), 107 ClaimValue = table.Column<string>(type: "text", nullable: true) 108 }, 109 constraints: table => 110 { 111 table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id); 112 table.ForeignKey( 113 name: "FK_AspNetRoleClaims_AspNetRoles_RoleId", 114 column: x => x.RoleId, 115 principalTable: "AspNetRoles", 116 principalColumn: "Id", 117 onDelete: ReferentialAction.Cascade); 118 }); 119 120 migrationBuilder.CreateTable( 121 name: "AspNetUserClaims", 122 columns: table => new 123 { 124 Id = table.Column<int>(type: "integer", nullable: false) 125 .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), 126 UserId = table.Column<string>(type: "text", nullable: false), 127 ClaimType = table.Column<string>(type: "text", nullable: true), 128 ClaimValue = table.Column<string>(type: "text", nullable: true) 129 }, 130 constraints: table => 131 { 132 table.PrimaryKey("PK_AspNetUserClaims", x => x.Id); 133 table.ForeignKey( 134 name: "FK_AspNetUserClaims_AspNetUsers_UserId", 135 column: x => x.UserId, 136 principalTable: "AspNetUsers", 137 principalColumn: "Id", 138 onDelete: ReferentialAction.Cascade); 139 }); 140 141 migrationBuilder.CreateTable( 142 name: "AspNetUserLogins", 143 columns: table => new 144 { 145 LoginProvider = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false), 146 ProviderKey = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false), 147 ProviderDisplayName = table.Column<string>(type: "text", nullable: true), 148 UserId = table.Column<string>(type: "text", nullable: false) 149 }, 150 constraints: table => 151 { 152 table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey }); 153 table.ForeignKey( 154 name: "FK_AspNetUserLogins_AspNetUsers_UserId", 155 column: x => x.UserId, 156 principalTable: "AspNetUsers", 157 principalColumn: "Id", 158 onDelete: ReferentialAction.Cascade); 159 }); 160 161 migrationBuilder.CreateTable( 162 name: "AspNetUserRoles", 163 columns: table => new 164 { 165 UserId = table.Column<string>(type: "text", nullable: false), 166 RoleId = table.Column<string>(type: "text", nullable: false) 167 }, 168 constraints: table => 169 { 170 table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId }); 171 table.ForeignKey( 172 name: "FK_AspNetUserRoles_AspNetRoles_RoleId", 173 column: x => x.RoleId, 174 principalTable: "AspNetRoles", 175 principalColumn: "Id", 176 onDelete: ReferentialAction.Cascade); 177 table.ForeignKey( 178 name: "FK_AspNetUserRoles_AspNetUsers_UserId", 179 column: x => x.UserId, 180 principalTable: "AspNetUsers", 181 principalColumn: "Id", 182 onDelete: ReferentialAction.Cascade); 183 }); 184 185 migrationBuilder.CreateTable( 186 name: "AspNetUserTokens", 187 columns: table => new 188 { 189 UserId = table.Column<string>(type: "text", nullable: false), 190 LoginProvider = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false), 191 Name = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false), 192 Value = table.Column<string>(type: "text", nullable: true) 193 }, 194 constraints: table => 195 { 196 table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); 197 table.ForeignKey( 198 name: "FK_AspNetUserTokens_AspNetUsers_UserId", 199 column: x => x.UserId, 200 principalTable: "AspNetUsers", 201 principalColumn: "Id", 202 onDelete: ReferentialAction.Cascade); 203 }); 204 205 migrationBuilder.CreateTable( 206 name: "CheckIn", 207 columns: table => new 208 { 209 Id = table.Column<Guid>(type: "uuid", nullable: false), 210 MemberThatCheckedInId = table.Column<Guid>(type: "uuid", nullable: false), 211 CheckInTime = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false), 212 DayOfCheckInId = table.Column<Guid>(type: "uuid", nullable: false), 213 ClaimedCheckpoint = table.Column<string>(type: "VARCHAR(4)", nullable: false) 214 }, 215 constraints: table => 216 { 217 table.PrimaryKey("PK_CheckIn", x => x.Id); 218 table.ForeignKey( 219 name: "FK_CheckIn_Days_DayOfCheckInId", 220 column: x => x.DayOfCheckInId, 221 principalTable: "Days", 222 principalColumn: "Id", 223 onDelete: ReferentialAction.Cascade); 224 table.ForeignKey( 225 name: "FK_CheckIn_Member_MemberThatCheckedInId", 226 column: x => x.MemberThatCheckedInId, 227 principalTable: "Member", 228 principalColumn: "Id", 229 onDelete: ReferentialAction.Cascade); 230 }); 231 232 migrationBuilder.CreateTable( 233 name: "Reports", 234 columns: table => new 235 { 236 Id = table.Column<Guid>(type: "uuid", nullable: false), 237 MemberThatReportedId = table.Column<Guid>(type: "uuid", nullable: false), 238 CheckInThatWasReportedId = table.Column<Guid>(type: "uuid", nullable: false), 239 ReportTime = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false), 240 Reason = table.Column<string>(type: "text", nullable: false), 241 EvidenceString = table.Column<string>(type: "text", nullable: false) 242 }, 243 constraints: table => 244 { 245 table.PrimaryKey("PK_Reports", x => x.Id); 246 table.ForeignKey( 247 name: "FK_Reports_CheckIn_CheckInThatWasReportedId", 248 column: x => x.CheckInThatWasReportedId, 249 principalTable: "CheckIn", 250 principalColumn: "Id", 251 onDelete: ReferentialAction.Cascade); 252 table.ForeignKey( 253 name: "FK_Reports_Member_MemberThatReportedId", 254 column: x => x.MemberThatReportedId, 255 principalTable: "Member", 256 principalColumn: "Id", 257 onDelete: ReferentialAction.Cascade); 258 }); 259 260 migrationBuilder.CreateTable( 261 name: "Verifications", 262 columns: table => new 263 { 264 Id = table.Column<Guid>(type: "uuid", nullable: false), 265 MemberThatVerifiedId = table.Column<Guid>(type: "uuid", nullable: false), 266 CheckInThatWasVerifiedId = table.Column<Guid>(type: "uuid", nullable: false), 267 VerificationTime = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false) 268 }, 269 constraints: table => 270 { 271 table.PrimaryKey("PK_Verifications", x => x.Id); 272 table.ForeignKey( 273 name: "FK_Verifications_CheckIn_CheckInThatWasVerifiedId", 274 column: x => x.CheckInThatWasVerifiedId, 275 principalTable: "CheckIn", 276 principalColumn: "Id", 277 onDelete: ReferentialAction.Cascade); 278 table.ForeignKey( 279 name: "FK_Verifications_Member_MemberThatVerifiedId", 280 column: x => x.MemberThatVerifiedId, 281 principalTable: "Member", 282 principalColumn: "Id", 283 onDelete: ReferentialAction.Cascade); 284 }); 285 286 migrationBuilder.CreateIndex( 287 name: "IX_AspNetRoleClaims_RoleId", 288 table: "AspNetRoleClaims", 289 column: "RoleId"); 290 291 migrationBuilder.CreateIndex( 292 name: "RoleNameIndex", 293 table: "AspNetRoles", 294 column: "NormalizedName", 295 unique: true); 296 297 migrationBuilder.CreateIndex( 298 name: "IX_AspNetUserClaims_UserId", 299 table: "AspNetUserClaims", 300 column: "UserId"); 301 302 migrationBuilder.CreateIndex( 303 name: "IX_AspNetUserLogins_UserId", 304 table: "AspNetUserLogins", 305 column: "UserId"); 306 307 migrationBuilder.CreateIndex( 308 name: "IX_AspNetUserRoles_RoleId", 309 table: "AspNetUserRoles", 310 column: "RoleId"); 311 312 migrationBuilder.CreateIndex( 313 name: "EmailIndex", 314 table: "AspNetUsers", 315 column: "NormalizedEmail"); 316 317 migrationBuilder.CreateIndex( 318 name: "UserNameIndex", 319 table: "AspNetUsers", 320 column: "NormalizedUserName", 321 unique: true); 322 323 migrationBuilder.CreateIndex( 324 name: "IX_CheckIn_DayOfCheckInId", 325 table: "CheckIn", 326 column: "DayOfCheckInId"); 327 328 migrationBuilder.CreateIndex( 329 name: "IX_CheckIn_MemberThatCheckedInId", 330 table: "CheckIn", 331 column: "MemberThatCheckedInId"); 332 333 migrationBuilder.CreateIndex( 334 name: "IX_Days_NextId", 335 table: "Days", 336 column: "NextId", 337 unique: true); 338 339 migrationBuilder.CreateIndex( 340 name: "IX_Reports_CheckInThatWasReportedId", 341 table: "Reports", 342 column: "CheckInThatWasReportedId"); 343 344 migrationBuilder.CreateIndex( 345 name: "IX_Reports_MemberThatReportedId", 346 table: "Reports", 347 column: "MemberThatReportedId"); 348 349 migrationBuilder.CreateIndex( 350 name: "IX_Verifications_CheckInThatWasVerifiedId", 351 table: "Verifications", 352 column: "CheckInThatWasVerifiedId"); 353 354 migrationBuilder.CreateIndex( 355 name: "IX_Verifications_MemberThatVerifiedId", 356 table: "Verifications", 357 column: "MemberThatVerifiedId"); 358 } 359 360 /// <inheritdoc /> 361 protected override void Down(MigrationBuilder migrationBuilder) 362 { 363 migrationBuilder.DropTable( 364 name: "AspNetRoleClaims"); 365 366 migrationBuilder.DropTable( 367 name: "AspNetUserClaims"); 368 369 migrationBuilder.DropTable( 370 name: "AspNetUserLogins"); 371 372 migrationBuilder.DropTable( 373 name: "AspNetUserRoles"); 374 375 migrationBuilder.DropTable( 376 name: "AspNetUserTokens"); 377 378 migrationBuilder.DropTable( 379 name: "Configurations"); 380 381 migrationBuilder.DropTable( 382 name: "Reports"); 383 384 migrationBuilder.DropTable( 385 name: "Verifications"); 386 387 migrationBuilder.DropTable( 388 name: "AspNetRoles"); 389 390 migrationBuilder.DropTable( 391 name: "AspNetUsers"); 392 393 migrationBuilder.DropTable( 394 name: "CheckIn"); 395 396 migrationBuilder.DropTable( 397 name: "Days"); 398 399 migrationBuilder.DropTable( 400 name: "Member"); 401 } 402 } 403 }