namespace PARR.API.Contracts.V1.Responses.Base
{
    public class PagedResponse<T> : BaseResponse
    {
        public PagedResponse(bool isSuccess) : base(isSuccess) { }

        public PagedResponse(bool isSuccess, List<ErrorModel> errors) : base(isSuccess, errors) { }

        public PagedResponse(bool isSuccess, List<ErrorModel> errors, string message) : base(isSuccess, errors, message) { }


        public PagedResponse(IEnumerable<T> data, bool isSuccess) : base(isSuccess) { Data = data; }

        public PagedResponse(IEnumerable<T> data, bool isSuccess, List<ErrorModel> errors) : base(isSuccess, errors) { Data = data; }

        public PagedResponse(IEnumerable<T> data, bool isSuccess, List<ErrorModel> errors, string message) : base(isSuccess, errors, message) { Data = data; }


        public IEnumerable<T>? Data { get; set; }

        public int? PageNumber { get; set; }

        public int? PageSize { get; set; }

        public int? TotalPage { get; set; }

        public int? TotalItems { get; set; }
    }
}
