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