namespace SharepointToolbox.Web.Core.Models; public record SiteInfo(string Url, string Title) { public long StorageUsedMb { get; init; } public long StorageQuotaMb { get; init; } public string Template { get; init; } = string.Empty; public SiteKind Kind => SiteKindHelper.FromTemplate(Template); } public enum SiteKind { Unknown, TeamSite, CommunicationSite, Classic } public static class SiteKindHelper { public static SiteKind FromTemplate(string template) { if (string.IsNullOrEmpty(template)) return SiteKind.Unknown; if (template.StartsWith("GROUP#", StringComparison.OrdinalIgnoreCase)) return SiteKind.TeamSite; if (template.StartsWith("SITEPAGEPUBLISHING#", StringComparison.OrdinalIgnoreCase)) return SiteKind.CommunicationSite; if (template.StartsWith("STS#", StringComparison.OrdinalIgnoreCase)) return SiteKind.Classic; return SiteKind.Unknown; } public static string DisplayName(SiteKind kind) => kind switch { SiteKind.TeamSite => "Team site", SiteKind.CommunicationSite => "Communication site", SiteKind.Classic => "Classic site", _ => "Other" }; }