using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Infrastructure.Migrations.AppDb;
///
public partial class AddMemberFollow : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "MemberFollow",
columns: table => new
{
ID = table.Column(type: "int", nullable: false, comment: "PK")
.Annotation("SqlServer:Identity", "1, 1"),
FollowerMemberID = table.Column(type: "int", nullable: false, comment: "팔로우 주체 회원 ID"),
FolloweeMemberID = table.Column(type: "int", nullable: false, comment: "팔로우 대상 회원 ID"),
NotifyOnPost = table.Column(type: "bit", nullable: false, comment: "새 글 알림 수신 여부"),
IsMuted = table.Column(type: "bit", nullable: false, comment: "피드 숨김 여부"),
CreatedAt = table.Column(type: "datetime2", nullable: false, comment: "팔로우 일시")
},
constraints: table =>
{
table.PrimaryKey("PK_MemberFollow", x => x.ID);
table.ForeignKey(
name: "FK_MemberFollow_Member_FolloweeMemberID",
column: x => x.FolloweeMemberID,
principalTable: "Member",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_MemberFollow_Member_FollowerMemberID",
column: x => x.FollowerMemberID,
principalTable: "Member",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
},
comment: "회원 팔로우 관계");
migrationBuilder.CreateIndex(
name: "IX_Post_MemberID_IsDeleted_CreatedAt",
table: "Post",
columns: new[] { "MemberID", "IsDeleted", "CreatedAt" },
descending: new[] { false, false, true });
migrationBuilder.CreateIndex(
name: "IX_MemberFollow_FolloweeMemberID",
table: "MemberFollow",
column: "FolloweeMemberID");
migrationBuilder.CreateIndex(
name: "IX_MemberFollow_FollowerMemberID_CreatedAt",
table: "MemberFollow",
columns: new[] { "FollowerMemberID", "CreatedAt" },
descending: new[] { false, true });
migrationBuilder.CreateIndex(
name: "IX_MemberFollow_FollowerMemberID_FolloweeMemberID",
table: "MemberFollow",
columns: new[] { "FollowerMemberID", "FolloweeMemberID" },
unique: true);
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "MemberFollow");
migrationBuilder.DropIndex(
name: "IX_Post_MemberID_IsDeleted_CreatedAt",
table: "Post");
}
}