namespace adas_core.Domain.Enums;

/// <summary>
/// Represents an enumeration that defines grouped categories of observations.
/// </summary>
/// <remarks>
/// This type is intended to provide a structured way to classify or organize observation values into distinct groups.
/// </remarks>
public class GroupedObservationEnum
{
    public enum Regularity
    {
        Times,
        Second,
        Minute,
        Hour,
        Day,
        Shift
    }

    public enum Result
    {
        First,
        Last,
        Sum,
        Min,
        Max,
        Average,
        Count,

        /*
         * Rellena las horas que no tienen valor con la última media hora del anterior en caso de haberla.
         * Al pedir las observaciones a la bd, devuelve todas las observaciones de la hora
         */
        HalfHour,

        /*
         * Devuelve valor para todas las horas puestas en el max, Rellenando con el valor anterior de no haber ninguno en esas horas.
         */
        LastFilled,

        /*
         * Igual que el last filled, pero no rellena con el valor anterior en caso de no haberlo. ¿Last puede ser así siempre?, creo que si
         * (caso diuresis gráfica)
         * No devuelve valores??
         */
        LastAll
    }

    public enum Since
    {
        /*
         * Does not take into account the current date for the number of groupings (default value).
         */
        Now,

        /*
         * It takes into account the current date for the number of groupings.
         */
        Last
    }
}