using System;
using System.Collections.Generic;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Synchronization;
public class MailSynchronizationOptions
{
///
/// Unique id of synchronization.
///
public Guid Id { get; set; } = Guid.NewGuid();
///
/// Account to execute synchronization for.
///
public Guid AccountId { get; set; }
///
/// Type of the synchronization to be performed.
///
public MailSynchronizationType Type { get; set; }
///
/// Collection of FolderId to perform SynchronizationType.Custom type sync.
///
public List SynchronizationFolderIds { get; set; }
///
/// If true, additional folders like Sent,Drafts and Deleted will not be synchronized
/// with InboxOnly and CustomFolders sync type.
///
public bool ExcludeMustHaveFolders { get; set; }
///
/// When doing a linked inbox synchronization, we must ignore reporting completion to the caller for each folder.
/// This Id will help tracking that. Id is unique, but this one can be the same for all sync requests
/// inside the same linked inbox sync.
///
public Guid? GroupedSynchronizationTrackingId { get; set; }
public override string ToString() => $"Type: {Type}";
}