using SolutionErp.Domain.Common;

namespace SolutionErp.Domain.PurchaseEvaluations;

// N:M giữa PurchaseEvaluation × Supplier (master). Lưu contact + payment
// term per NCC (file Excel section E + cột header "TGN-30 ngày" /
// "Tiến Phát" / ... ngay dưới bảng II). Note chứa yellow chip:
// "ĐÃ CHỐT SO SÁNH LẦN 1/2", "ĐÀM PHÁN THÊM".
public class PurchaseEvaluationSupplier : BaseEntity
{
    public Guid PurchaseEvaluationId { get; set; }
    public Guid SupplierId { get; set; }                   // FK Suppliers master
    public string? DisplayName { get; set; }                // Override nếu khác Supplier.Name (vd kèm term: "TGN-30 ngày")
    public string? ContactName { get; set; }
    public string? ContactEmail { get; set; }
    public string? ContactPhone { get; set; }
    public string? PaymentTermText { get; set; }            // Free text: "30 ngày", "45 ngày", "300tr"
    public string? Note { get; set; }                        // Chip trạng thái so sánh
    public int Order { get; set; }                          // Thứ tự cột trong bảng so sánh

    // [Mig 58 2026-06-24 — CCM/anh Kiệt FDC] Multi-winner: chọn NHIỀU đơn vị NCC/TP
    // cùng trúng (whole-supplier multi-select). IsWinner=true → báo giá của đơn vị
    // này tính vào "Giá trị kỳ này" (winnerQuoteTotal = SUM ThanhTien của MỌI
    // winner). Thay tiêu chí cũ "SupplierId == SelectedSupplierId" (1 winner) bằng
    // IsWinner trên supplier-row = nguồn-sự-thật mới. SelectedSupplierId vẫn sync:
    // = winner duy nhất khi đúng 1, null khi ≥2 (multi). Backfill Mig 58:
    // IsWinner=1 cho row khớp SelectedSupplierId cũ (single-winner phiếu UAT giữ).
    public bool IsWinner { get; set; }

    public PurchaseEvaluation? PurchaseEvaluation { get; set; }
}
