internal new static SocketThreadChannel Create(SocketGuild guild, ClientState state, Model model)
        {
            var parent = guild.GetChannel(model.CategoryId.Value);
            var entity = new SocketThreadChannel(guild.Discord, guild, model.Id, parent, model.ThreadMetadata.GetValueOrDefault()?.CreatedAt.ToNullable());

            entity.Update(state, model);
            return(entity);
        }
        internal new static SocketThreadChannel Create(SocketGuild guild, ClientState state, Model model)
        {
            var parent = (SocketTextChannel)guild.GetChannel(model.CategoryId.Value);
            var entity = new SocketThreadChannel(guild.Discord, guild, model.Id, parent);

            entity.Update(state, model);
            return(entity);
        }
 internal static SocketGuildChannel Create(SocketGuild guild, ClientState state, Model model)
 {
     return(model.Type switch
     {
         ChannelType.News => SocketNewsChannel.Create(guild, state, model),
         ChannelType.Text => SocketTextChannel.Create(guild, state, model),
         ChannelType.Voice => SocketVoiceChannel.Create(guild, state, model),
         ChannelType.Category => SocketCategoryChannel.Create(guild, state, model),
         ChannelType.PrivateThread or ChannelType.PublicThread or ChannelType.NewsThread => SocketThreadChannel.Create(guild, state, model),
         ChannelType.Stage => SocketStageChannel.Create(guild, state, model),
         _ => new SocketGuildChannel(guild.Discord, model.Id, guild),
     });