using System.Text;

namespace SharpChat.S2CPackets {
    public class AuthSuccessS2CPacket(
        ChatUser user,
        ChatChannel channel,
        int maxMsgLength
    ) : S2CPacket {
        public ChatUser User { get; private set; } = user ?? throw new ArgumentNullException(nameof(user));
        public ChatChannel Channel { get; private set; } = channel ?? throw new ArgumentNullException(nameof(channel));

        public IEnumerable<string> Pack() {
            StringBuilder sb = new();

            sb.Append('1');
            sb.Append("\ty\t");
            sb.Append(User.Pack());
            sb.Append('\t');
            sb.Append(Channel.Name);
            sb.Append('\t');
            sb.Append(maxMsgLength);

            yield return sb.ToString();
        }
    }
}