Implements a provider-agnostic calendar sync feature with Nextcloud as the first alternative to Google Calendar. - Add ICalendarService interface and provider-agnostic API endpoints - Implement NextcloudCalendarService using CalDAV (Ical.Net) - Add CalendarEventBuilder to share event/transport logic across providers - Add Nextcloud sync button to the UI (Index page) - Centralise TargetFramework, Nullable and ImplicitUsings in Directory.Build.props (net9.0) - Add .worktrees to .gitignore and Docker/Nextcloud config docs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
15 lines
499 B
C#
15 lines
499 B
C#
using ShiftScheduler.Shared;
|
|
|
|
namespace ShiftScheduler.Services;
|
|
|
|
public interface ICalendarService
|
|
{
|
|
Task<List<CalendarInfo>> GetCalendarsAsync();
|
|
Task SyncShiftsToCalendarAsync(string calendarId, List<ShiftWithTransport> shifts);
|
|
}
|
|
|
|
/// <summary>Marker interface for DI disambiguation.</summary>
|
|
public interface IGoogleCalendarService : ICalendarService { }
|
|
|
|
/// <summary>Marker interface for DI disambiguation.</summary>
|
|
public interface INextcloudCalendarService : ICalendarService { }
|