namespace Kit.Helpers
{
    public interface IEnumerableWithPage<TEntity> : IEnumerable<TEntity>
    {
        int TotalRows { get; set; }
        int FilteredRows { get; set; }
        int PageNo { get; set; }
        int PageSize { get; set; }
        string Sort { get; set; }
        string Dir { get; set; }
    }

    public interface IEnumerableWithOffer<TEntity> : IEnumerable<TEntity>
    {
        int TotalRows { get; set; }
        int FilteredRows { get; set; }
        int Start { get; set; }
        int Lenght { get; set; }
        string Sort { get; set; }
        string Dir { get; set; }
    }

    public class ListWithPage<TEntity> : List<TEntity>, IEnumerableWithPage<TEntity>
    {
        public int TotalRows { get; set; }
        public int FilteredRows { get; set; }
        public int PageNo { get; set; }
        public int PageSize { get; set; }
        public new string Sort { get; set; }
        public string Dir { get; set; }
    }

    public class ListWithOffer<TEntity> : List<TEntity>, IEnumerableWithOffer<TEntity>
    {
        public int TotalRows { get; set; }
        public int FilteredRows { get; set; }
        public int Start { get; set; }
        public int Lenght { get; set; }
        public new string Sort { get; set; }
        public string Dir { get; set; }
    }
}