using Microsoft.EntityFrameworkCore.Migrations;

#nullable disable

namespace SolutionErp.Infrastructure.Persistence.Migrations
{
    /// <inheritdoc />
    public partial class AddPeEndedByLevelFinalize : Migration
    {
        /// <inheritdoc />
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddColumn<bool>(
                name: "EndedByLevelFinalize",
                table: "PurchaseEvaluations",
                type: "bit",
                nullable: false,
                defaultValue: false);

            // [S97 anh Kiệt FDC] Backfill: phiếu DaDuyet (Phase=7) đã kết thúc SỚM bằng level-finalize
            // để lại marker "[Duyệt KẾT THÚC tại ...]" trong LogTransition comment → set =1. Phiếu đi
            // HẾT lên CEO (không marker) giữ default 0 → EndsBeforeCeo hiện đúng "qua CEO". SQL-Server-only
            // (Dev/prod migrations); tests dùng EnsureCreated KHÔNG replay migration (gotcha #63).
            migrationBuilder.Sql(@"
UPDATE pe SET EndedByLevelFinalize = 1
FROM PurchaseEvaluations pe
WHERE pe.Phase = 7
  AND EXISTS (
      SELECT 1 FROM PurchaseEvaluationApprovals a
      WHERE a.PurchaseEvaluationId = pe.Id
        AND a.Comment LIKE N'%Duyệt KẾT THÚC tại%');");
        }

        /// <inheritdoc />
        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropColumn(
                name: "EndedByLevelFinalize",
                table: "PurchaseEvaluations");
        }
    }
}
