Calendar invitations for Mail part of the app.
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Represents the type of mail item.
|
||||
/// </summary>
|
||||
public enum MailItemType
|
||||
{
|
||||
/// <summary>
|
||||
/// Regular mail message.
|
||||
/// </summary>
|
||||
Mail = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Calendar invitation (meeting request).
|
||||
/// </summary>
|
||||
CalendarInvitation = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Calendar response (meeting accepted, tentatively accepted, or declined).
|
||||
/// </summary>
|
||||
CalendarResponse = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Calendar cancellation (meeting cancelled).
|
||||
/// </summary>
|
||||
CalendarCancellation = 3
|
||||
}
|
||||
@@ -11,4 +11,12 @@ namespace Wino.Core.Domain.Models.Calendar;
|
||||
/// <param name="CalendarItem">Calendar item to operate on.</param>
|
||||
/// <param name="Attendees">List of attendees for the calendar event.</param>
|
||||
/// <param name="ResponseMessage">Optional message to include with event responses (Accept, Decline, Tentative).</param>
|
||||
public record CalendarOperationPreparationRequest(CalendarSynchronizerOperation Operation, CalendarItem CalendarItem, List<CalendarEventAttendee> Attendees, string ResponseMessage = null);
|
||||
/// <param name="OriginalItem">Original calendar item state before update (for revert capability).</param>
|
||||
/// <param name="OriginalAttendees">Original attendees list before update (for revert capability).</param>
|
||||
public record CalendarOperationPreparationRequest(
|
||||
CalendarSynchronizerOperation Operation,
|
||||
CalendarItem CalendarItem,
|
||||
List<CalendarEventAttendee> Attendees,
|
||||
string ResponseMessage = null,
|
||||
CalendarItem OriginalItem = null,
|
||||
List<CalendarEventAttendee> OriginalAttendees = null);
|
||||
|
||||
Reference in New Issue
Block a user