Finished Settings page

This commit is contained in:
2025-11-12 17:06:14 +01:00
parent a608f98497
commit e0bf95060a
38 changed files with 675 additions and 34 deletions

View File

@@ -0,0 +1,6 @@
namespace WorkTime.Models.Repositories;
public interface ISettingsRepository {
Task<Settings> LoadSettings();
Task SaveSettings(Settings settings);
}

View File

@@ -0,0 +1,9 @@
namespace WorkTime.Models.Repositories;
public interface ITimeEntryRepository {
Task<IEnumerable<TimeEntry>> GetTimeEntries();
Task<IEnumerable<TimeEntry>> GetTimeEntries(DateOnly date);
Task AddTimeEntry(TimeEntry entry);
Task DeleteTimeEntry(Guid id);
}

View File

@@ -0,0 +1,13 @@
namespace WorkTime.Models;
public sealed class Settings {
public TimeSpan WorkTime { get; set; } = TimeSpan.FromHours(7);
public TimeSpan BreakAfter0 { get; set; } = TimeSpan.Zero;
public TimeSpan BreakAfter6 { get; set; } = TimeSpan.FromMinutes(30);
public TimeSpan BreakAfter9 { get; set; } = TimeSpan.FromMinutes(45);
public TimeSpan DontTrackBreakAfter { get; set; } = TimeSpan.FromHours(14);
public TimeSpan IdealOvertime { get; set; } = TimeSpan.FromMinutes(30);
public TimeSpan MaxOvertime { get; set; } = TimeSpan.FromMinutes(60);
}

View File

@@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
namespace WorkTime.Models;
public sealed class TimeEntry {
[Key]
public Guid Id { get; init; } = Guid.CreateVersion7();
public required EntryType Type { get; init; }
public required DateTime Timestamp { get; set; }
}
public enum EntryType {
Login,
LoginTrip,
LoginHome,
Logout,
LogoutTrip,
LogoutHome
}

View File

@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>