using System;
using System.Collections.Generic;

namespace MarcusLaw.OutlookAddin.Core.Models
{
    public sealed class MatchResult
    {
        public string SenderEmail { get; set; } = string.Empty;

        public ContactEntity? Contact { get; set; }

        public AccountEntity? Account { get; set; }

        public List<CaseEntity> RecentCases { get; set; } = new List<CaseEntity>();

        public bool IsAmbiguous { get; set; }

        public int CandidateCount { get; set; }

        /// <summary>
        /// When <see cref="IsAmbiguous"/> is true, holds the candidate
        /// contacts that share the sender's email so the sidebar can show
        /// a picker instead of bouncing the user into manual search.
        /// </summary>
        public List<ContactEntity> Candidates { get; set; } = new List<ContactEntity>();

        public DateTimeOffset RetrievedAt { get; set; } = DateTimeOffset.UtcNow;
    }
}
