20260426143721_AddCrewInvitation.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using Microsoft.EntityFrameworkCore.Migrations;
  3. #nullable disable
  4. namespace Infrastructure.Migrations.AppDb
  5. {
  6. /// <inheritdoc />
  7. public partial class AddCrewInvitation : Migration
  8. {
  9. /// <inheritdoc />
  10. protected override void Up(MigrationBuilder migrationBuilder)
  11. {
  12. migrationBuilder.CreateTable(
  13. name: "CrewInvitation",
  14. columns: table => new
  15. {
  16. ID = table.Column<int>(type: "int", nullable: false)
  17. .Annotation("SqlServer:Identity", "1, 1"),
  18. CrewID = table.Column<int>(type: "int", nullable: false),
  19. TargetMemberID = table.Column<int>(type: "int", nullable: false),
  20. InvitedByMemberID = table.Column<int>(type: "int", nullable: false),
  21. Nickname = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: false),
  22. Role = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
  23. SortOrder = table.Column<int>(type: "int", nullable: false),
  24. Status = table.Column<int>(type: "int", nullable: false),
  25. InvitedAt = table.Column<DateTime>(type: "datetime2", nullable: false),
  26. ExpiresAt = table.Column<DateTime>(type: "datetime2", nullable: false),
  27. RespondedAt = table.Column<DateTime>(type: "datetime2", nullable: true)
  28. },
  29. constraints: table =>
  30. {
  31. table.PrimaryKey("PK_CrewInvitation", x => x.ID);
  32. table.ForeignKey(
  33. name: "FK_CrewInvitation_Crew_CrewID",
  34. column: x => x.CrewID,
  35. principalTable: "Crew",
  36. principalColumn: "ID",
  37. onDelete: ReferentialAction.Cascade);
  38. table.ForeignKey(
  39. name: "FK_CrewInvitation_Member_InvitedByMemberID",
  40. column: x => x.InvitedByMemberID,
  41. principalTable: "Member",
  42. principalColumn: "ID");
  43. table.ForeignKey(
  44. name: "FK_CrewInvitation_Member_TargetMemberID",
  45. column: x => x.TargetMemberID,
  46. principalTable: "Member",
  47. principalColumn: "ID");
  48. },
  49. comment: "크루원 초대 이력");
  50. migrationBuilder.CreateIndex(
  51. name: "IX_CrewInvitation_CrewID_TargetMemberID_Status",
  52. table: "CrewInvitation",
  53. columns: new[] { "CrewID", "TargetMemberID", "Status" });
  54. migrationBuilder.CreateIndex(
  55. name: "IX_CrewInvitation_InvitedByMemberID",
  56. table: "CrewInvitation",
  57. column: "InvitedByMemberID");
  58. migrationBuilder.CreateIndex(
  59. name: "IX_CrewInvitation_Status_ExpiresAt",
  60. table: "CrewInvitation",
  61. columns: new[] { "Status", "ExpiresAt" });
  62. migrationBuilder.CreateIndex(
  63. name: "IX_CrewInvitation_TargetMemberID",
  64. table: "CrewInvitation",
  65. column: "TargetMemberID");
  66. }
  67. /// <inheritdoc />
  68. protected override void Down(MigrationBuilder migrationBuilder)
  69. {
  70. migrationBuilder.DropTable(
  71. name: "CrewInvitation");
  72. }
  73. }
  74. }