diff --git a/Models/ChannelPermissions.cs b/Models/ChannelPermissions.cs new file mode 100644 index 0000000..9eba502 --- /dev/null +++ b/Models/ChannelPermissions.cs @@ -0,0 +1,40 @@ +namespace vassago.Models; + +using System; +using System.ComponentModel.DataAnnotations.Schema; + +public class ChannelPermissions +{ + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public ulong? MaxAttachmentBytes { get; set; } + public uint? MaxTextChars { get; set; } + public bool? LinksAllowed { get; set; } + public bool? ReactionsPossible { get; set; } + public Enumerations.LewdnessFilterLevel? LewdnessFilterLevel { get; set; } + public Enumerations.MeannessFilterLevel? MeannessFilterLevel { get; set; } + public Enumerations.VerbosityFilterLevel? VerbosityFilterLevel { get; set; } + + internal DefinitePermissionSettings Definite() + { + return new DefinitePermissionSettings() + { + MaxAttachmentBytes = this.MaxAttachmentBytes ?? 0, + MaxTextChars = this.MaxTextChars ?? 0, + LinksAllowed = this.LinksAllowed ?? false, + LewdnessFilterLevel = this.LewdnessFilterLevel ?? Enumerations.LewdnessFilterLevel.G, + MeannessFilterLevel = this.MeannessFilterLevel ?? Enumerations.MeannessFilterLevel.Strict, + VerbosityFilterLevel = this.VerbosityFilterLevel ?? Enumerations.VerbosityFilterLevel.Pithy, + ReactionsPossible = this.ReactionsPossible ?? false + }; + } +} +public class DefinitePermissionSettings +{ + public ulong MaxAttachmentBytes { get; set; } + public uint MaxTextChars { get; set; } + public bool LinksAllowed { get; set; } + public bool ReactionsPossible { get; set; } + public Enumerations.LewdnessFilterLevel LewdnessFilterLevel { get; set; } + public Enumerations.MeannessFilterLevel MeannessFilterLevel { get; set; } +} \ No newline at end of file