39 lines
1.2 KiB
C#
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);
|
|
}
|
|
} |