CalDav synchronizer, new IMAP setup/edit page.

This commit is contained in:
Burak Kaan Köse
2026-02-15 02:20:18 +01:00
parent 64b9bfc392
commit acf0f649e8
58 changed files with 3993 additions and 1732 deletions
@@ -0,0 +1,10 @@
namespace Wino.Core.Domain.Models.Calendar;
public sealed class CalDavCalendar
{
public string RemoteCalendarId { get; init; } = string.Empty;
public string Name { get; init; } = string.Empty;
public string CTag { get; init; } = string.Empty;
public string SyncToken { get; init; } = string.Empty;
}
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Calendar;
public sealed class CalDavCalendarEvent
{
public string RemoteEventId { get; init; } = string.Empty;
public string RemoteResourceHref { get; init; } = string.Empty;
public string ETag { get; init; } = string.Empty;
public string IcsContent { get; init; } = string.Empty;
public string Uid { get; init; } = string.Empty;
public string SeriesMasterRemoteEventId { get; init; } = string.Empty;
public bool IsSeriesMaster { get; init; }
public bool IsRecurringInstance { get; init; }
public string Title { get; init; } = string.Empty;
public string Description { get; init; } = string.Empty;
public string Location { get; init; } = string.Empty;
public DateTimeOffset Start { get; init; }
public DateTimeOffset End { get; init; }
public string StartTimeZone { get; init; } = string.Empty;
public string EndTimeZone { get; init; } = string.Empty;
public string Recurrence { get; init; } = string.Empty;
public string OrganizerDisplayName { get; init; } = string.Empty;
public string OrganizerEmail { get; init; } = string.Empty;
public CalendarItemStatus Status { get; init; } = CalendarItemStatus.Accepted;
public CalendarItemVisibility Visibility { get; init; } = CalendarItemVisibility.Default;
public CalendarItemShowAs ShowAs { get; init; } = CalendarItemShowAs.Busy;
public bool IsHidden { get; init; }
public IReadOnlyList<CalDavEventAttendee> Attendees { get; init; } = [];
public IReadOnlyList<CalDavEventReminder> Reminders { get; init; } = [];
}
public sealed class CalDavEventAttendee
{
public string Name { get; init; } = string.Empty;
public string Email { get; init; } = string.Empty;
public AttendeeStatus AttendenceStatus { get; init; } = AttendeeStatus.NeedsAction;
public bool IsOrganizer { get; init; }
public bool IsOptionalAttendee { get; init; }
}
public sealed class CalDavEventReminder
{
public int DurationInSeconds { get; init; }
public CalendarItemReminderType ReminderType { get; init; } = CalendarItemReminderType.Popup;
}
@@ -0,0 +1,11 @@
using System;
namespace Wino.Core.Domain.Models.Calendar;
public sealed class CalDavConnectionSettings
{
public Uri ServiceUri { get; init; }
public string Username { get; init; } = string.Empty;
public string Password { get; init; } = string.Empty;
}