namespace SharepointToolbox.Core.Models; public class TransferJob { public string SourceSiteUrl { get; set; } = string.Empty; public string SourceLibrary { get; set; } = string.Empty; public string SourceFolderPath { get; set; } = string.Empty; // relative within library public string DestinationSiteUrl { get; set; } = string.Empty; public string DestinationLibrary { get; set; } = string.Empty; public string DestinationFolderPath { get; set; } = string.Empty; public TransferMode Mode { get; set; } = TransferMode.Copy; public ConflictPolicy ConflictPolicy { get; set; } = ConflictPolicy.Skip; /// /// Optional library-relative file paths. When non-empty, only these files /// are transferred; SourceFolderPath recursive enumeration is skipped. /// public IReadOnlyList SelectedFilePaths { get; set; } = Array.Empty(); /// /// When true, recreate the source folder name under the destination folder /// (dest/srcFolderName/... ). When false, the source folder's contents land /// directly inside the destination folder. /// public bool IncludeSourceFolder { get; set; } /// /// When true (default), transfer the files inside the source folder. /// When false, only create the folder structure (useful together with /// to clone an empty scaffold). /// public bool CopyFolderContents { get; set; } = true; }