using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Infrastructure.Migrations.AppDb
{
///
public partial class AddOrderRefundItem : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "OrderRefundItem",
columns: table => new
{
ID = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
OrderRefundID = table.Column(type: "int", nullable: false),
OrderItemID = table.Column(type: "int", nullable: false),
CouponCodeID = table.Column(type: "int", nullable: false),
UnitAmount = table.Column(type: "int", nullable: false, comment: "환불 단가 스냅샷"),
PostRefundAction = table.Column(type: "int", nullable: false, comment: "쿠폰 후처리 (1=Restore 회수, 2=Expire 만료)"),
CreatedAt = table.Column(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_OrderRefundItem", x => x.ID);
table.ForeignKey(
name: "FK_OrderRefundItem_CouponCode_CouponCodeID",
column: x => x.CouponCodeID,
principalTable: "CouponCode",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_OrderRefundItem_OrderItem_OrderItemID",
column: x => x.OrderItemID,
principalTable: "OrderItem",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_OrderRefundItem_OrderRefund_OrderRefundID",
column: x => x.OrderRefundID,
principalTable: "OrderRefund",
principalColumn: "ID",
onDelete: ReferentialAction.Cascade);
},
comment: "환불 단위 — 쿠폰 별 후처리(회수/만료) 정책. OrderRefund 1:N");
migrationBuilder.CreateIndex(
name: "IX_OrderRefundItem_CouponCodeID",
table: "OrderRefundItem",
column: "CouponCodeID",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_OrderRefundItem_OrderItemID",
table: "OrderRefundItem",
column: "OrderItemID");
migrationBuilder.CreateIndex(
name: "IX_OrderRefundItem_OrderRefundID",
table: "OrderRefundItem",
column: "OrderRefundID");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "OrderRefundItem");
}
}
}