ChronoFlow/ChronoFlow.Persistence/ITimeEntryRepository.cs
2025-06-28 14:27:18 +02:00

39 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ChronoFlow.Model;
namespace ChronoFlow.Persistence
{
/// <summary>
/// Repository-Interface für den Zugriff auf Zeiteinträge in der Datenbank.
/// Wird von der SqliteZeiterfassungsService-Klasse implementiert.
/// </summary>
public interface ITimeEntryRepository
{
/// <summary>
/// Gibt alle Zeiteinträge für einen bestimmten Mitarbeiter zurück.
/// </summary>
Task<List<Zeiteintrag>> GetEntriesForUserAsync(string username);
/// <summary>
/// Gibt alle Zeiteinträge aus der Datenbank zurück (Admin-Ansicht).
/// </summary>
Task<List<Zeiteintrag>> LadeAlleEintraegeAsync();
/// <summary>
/// Fügt einen neuen Zeiteintrag in die Datenbank ein.
/// </summary>
Task AddEntryAsync(Zeiteintrag entry);
/// <summary>
/// Löscht einen Zeiteintrag anhand seiner ID.
/// </summary>
Task DeleteEntryAsync(int id);
/// <summary>
/// Aktualisiert den Status (erledigt) und den Kommentar eines Eintrags.
/// </summary>
Task UpdateEntryStatusAndCommentAsync(int id, bool isCompleted, string? comment);
}
}