namespace StarfaceOutlookSync.Models { public enum SyncDirection { Both, OutlookToStarface, StarfaceToOutlook } public class StarfaceConnection { public string Host { get; set; } = ""; public int Port { get; set; } = 443; public bool UseSsl { get; set; } = true; public string LoginId { get; set; } = ""; public string Password { get; set; } = ""; } public class StarfaceAddressBook { public string Type { get; set; } = "central"; // central, user, tag public string UserId { get; set; } = ""; public string TagId { get; set; } = ""; public string Name { get; set; } = ""; public override string ToString() => Name; } public class SyncProfile { public string Id { get; set; } = ""; public string Name { get; set; } = ""; public StarfaceConnection StarfaceConnection { get; set; } = new StarfaceConnection(); public StarfaceAddressBook StarfaceAddressBook { get; set; } = new StarfaceAddressBook(); public string OutlookFolderPath { get; set; } = ""; public string OutlookFolderName { get; set; } = "Kontakte"; public SyncDirection SyncDirection { get; set; } = SyncDirection.Both; public string LastSync { get; set; } = ""; public bool Enabled { get; set; } = true; public int AutoSyncIntervalMinutes { get; set; } = 0; // 0 = manuell } public class SyncMapping { public string ProfileId { get; set; } = ""; public string OutlookEntryId { get; set; } = ""; public string StarfaceId { get; set; } = ""; public string LastSyncHash { get; set; } = ""; } public class SyncResult { public string ProfileName { get; set; } = ""; public string Timestamp { get; set; } = ""; public int Created { get; set; } public int Updated { get; set; } public int Errors { get; set; } public System.Collections.Generic.List ErrorMessages { get; set; } = new System.Collections.Generic.List(); } }