PluralKit/PluralKit.Core/Models/PKGroup.cs

34 lines
1.2 KiB
C#
Raw Normal View History

2020-06-29 21:51:12 +00:00
using NodaTime;
#nullable enable
namespace PluralKit.Core
{
public class PKGroup
{
2020-08-21 15:08:49 +00:00
public GroupId Id { get; private set; }
public string Hid { get; private set; } = null!;
public SystemId System { get; private set; }
2020-06-29 21:51:12 +00:00
2020-08-21 15:08:49 +00:00
public string Name { get; private set; } = null!;
public string? DisplayName { get; private set; }
public string? Description { get; private set; }
public string? Icon { get; private set; }
2021-03-28 10:02:41 +00:00
public string? Color { get; private set; }
2020-08-21 15:08:49 +00:00
public PrivacyLevel DescriptionPrivacy { get; private set; }
public PrivacyLevel IconPrivacy { get; private set; }
public PrivacyLevel ListPrivacy { get; private set; }
public PrivacyLevel Visibility { get; private set; }
2020-06-29 21:51:12 +00:00
2020-08-21 15:08:49 +00:00
public Instant Created { get; private set; }
2020-06-29 21:51:12 +00:00
}
public static class PKGroupExt
{
public static string? DescriptionFor(this PKGroup group, LookupContext ctx) =>
group.DescriptionPrivacy.Get(ctx, group.Description);
public static string? IconFor(this PKGroup group, LookupContext ctx) =>
group.IconPrivacy.Get(ctx, group.Icon?.TryGetCleanCdnUrl());
}
2020-06-29 21:51:12 +00:00
}