using System;
using System.Collections.Generic;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Synchronization
{
public class SynchronizationOptions
{
///
/// Unique id of synchronization.
///
public Guid Id { get; } = Guid.NewGuid();
///
/// Account to execute synchronization for.
///
public Guid AccountId { get; set; }
///
/// Type of the synchronization to be performed.
///
public SynchronizationType Type { get; set; }
///
/// Collection of FolderId to perform SynchronizationType.Custom type sync.
///
public List SynchronizationFolderIds { 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}, Folders: {(SynchronizationFolderIds == null ? "None" : string.Join(",", SynchronizationFolderIds))}";
}
}