using System.ComponentModel.DataAnnotations;
namespace JdeScoping.Client.Models;
///
/// View model for displaying search information in lists and details.
///
public class SearchViewModel
{
public int Id { get; set; }
[Required(ErrorMessage = "Name is required.")]
public string Name { get; set; } = string.Empty;
public string UserName { get; set; } = string.Empty;
public string Status { get; set; } = string.Empty;
public DateTime? SubmitDt { get; set; }
public DateTime? StartDt { get; set; }
public DateTime? EndDt { get; set; }
public SearchCriteriaViewModel Criteria { get; set; } = new();
///
/// Gets the background color based on status.
///
public string StatusColor => Status switch
{
"Error" => "#FF6347",
"Ended" => "#90EE90",
"Running" => "#87CEEB",
_ => "#EEEEEE"
};
///
/// Returns true if the search has downloadable results.
///
public bool HasResults => Status == "Ended";
///
/// Returns true if the search is read-only (already submitted).
///
public bool IsReadOnly => Status != "New";
}