/ Data / Migrations / 20251109052850_ImportOldSchemaForPostgres.cs
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  }