using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Koogle.Application.DTOs { /// /// Ergebnis einer paginierten Abfrage. /// /// Typ der Ergebnisse. public record PagedResultDto { /// /// Die Ergebnisse der aktuellen Seite. /// public IReadOnlyList Items { get; init; } = []; /// /// Gesamtanzahl der Ergebnisse (über alle Seiten). /// public int TotalCount { get; init; } /// /// Aktuelle Seitennummer. /// public int Page { get; init; } /// /// Anzahl der Einträge pro Seite. /// public int PageSize { get; init; } /// /// Gesamtanzahl der Seiten. /// public int TotalPages => PageSize > 0 ? (int)Math.Ceiling((double)TotalCount / PageSize) : 0; /// /// Gibt an, ob es eine vorherige Seite gibt. /// public bool HasPreviousPage => Page > 1; /// /// Gibt an, ob es eine nächste Seite gibt. /// public bool HasNextPage => Page < TotalPages; } }