Calendar invitations for Mail part of the app.

This commit is contained in:
Burak Kaan Köse
2026-01-05 00:21:07 +01:00
parent 0b0f6b8d8e
commit 3d07328f47
24 changed files with 679 additions and 66 deletions
@@ -140,6 +140,12 @@ public class CalendarItem : ICalendarItem
public string HtmlLink { get; set; }
public CalendarItemStatus Status { get; set; }
public CalendarItemVisibility Visibility { get; set; }
/// <summary>
/// Indicates how the event should be shown in the calendar (Free, Busy, Tentative, etc.).
/// </summary>
public CalendarItemShowAs ShowAs { get; set; } = CalendarItemShowAs.Busy;
public DateTimeOffset CreatedAt { get; set; }
public DateTimeOffset UpdatedAt { get; set; }
public Guid CalendarId { get; set; }
@@ -103,6 +103,11 @@ public class MailCopy
/// </summary>
public bool HasAttachments { get; set; }
/// <summary>
/// Type of mail item (regular mail, calendar invitation, calendar response, etc.).
/// </summary>
public MailItemType ItemType { get; set; } = MailItemType.Mail;
/// <summary>
/// Assigned draft id.
/// </summary>
@@ -78,6 +78,14 @@ public class MailAccount
/// </summary>
public SpecialImapProvider SpecialImapProvider { get; set; }
/// <summary>
/// Gets or sets whether calendar access is granted for this account.
/// When false, synchronizers will not process EventMessages or calendar invitations.
/// Default is false for existing accounts to prevent scope issues.
/// New accounts created after this feature will have this set to true.
/// </summary>
public bool IsCalendarAccessGranted { get; set; }
/// <summary>
/// Contains the merged inbox this account belongs to.
/// Ignored for all SQLite operations.