using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc.Rendering;
using Nop.Web.Framework.Models;
using Nop.Web.Framework.Mvc.ModelBinding;

namespace Nop.Web.Areas.Admin.Models.Logging;

/// <summary>
/// Represents an activity log search model
/// </summary>
public partial record ActivityLogSearchModel : BaseSearchModel
{
    #region Ctor

    public ActivityLogSearchModel()
    {
        ActivityLogType = new List<SelectListItem>();
    }

    #endregion

    #region Properties

    [NopResourceDisplayName("Admin.Customers.ActivityLog.Fields.CreatedOnFrom")]
    [UIHint("DateNullable")]
    public DateTime? CreatedOnFrom { get; set; }

    [NopResourceDisplayName("Admin.Customers.ActivityLog.Fields.CreatedOnTo")]
    [UIHint("DateNullable")]
    public DateTime? CreatedOnTo { get; set; }

    [NopResourceDisplayName("Admin.Customers.ActivityLog.Fields.ActivityLogType")]
    public int ActivityLogTypeId { get; set; }

    [NopResourceDisplayName("Admin.Customers.ActivityLog.Fields.ActivityLogType")]
    public IList<SelectListItem> ActivityLogType { get; set; }

    [NopResourceDisplayName("Admin.Customers.ActivityLog.Fields.IpAddress")]
    public string IpAddress { get; set; }

    #endregion
}