namespace adas_core.Domain.Models.GroupedObservations;

/// <summary>
/// Represents a field, typically used to encapsulate data or a value within a larger structure or system.
/// </summary>
/// <remarks>
/// As a public class, it is accessible from any other code that can reference its containing namespace or assembly.
/// </remarks>
public class Field
{
    public string? Name { get; set; }

    public int Last { get; set; } = 1;

    public bool OnlyExpired { get; set; }

    //public override bool Equals(object? obj)
    //{
    //    // Verifica si el objeto pasado es nulo o no es del mismo tipo
    //    if (obj == null || GetType() != obj.GetType()) return false;

    //    // Convierte el objeto pasado al tipo Field
    //    var other = (Field)obj;

    //    // Compara las propiedades una por una, maneja el caso de valores nulos usando el operador de coalescencia nula (??)
    //    return Name == other.Name &&
    //           Last == other.Last &&
    //           OnlyExpired == other.OnlyExpired;
    //}

    //public override int GetHashCode()
    //{
    //    unchecked
    //    {
    //        var hash = 17;
    //        hash = hash * 23 + (Name?.GetHashCode() ?? 0);
    //        hash = hash * 23 + Last.GetHashCode();
    //        hash = hash * 23 + OnlyExpired.GetHashCode();
    //        return hash;
    //    }
    //}
}