using System.IO;
using Crysome.Common.Network.Packets;

namespace Crysome.Common.Network.FileTransfer;

public sealed class FtStartPacket : IPacket
{
	public uint TransferId;

	public string FileName;

	public int TotalChunks;

	public int ChunkSize;

	public long TotalBytes;

	public byte[] Sha256;

	public void Write(BinaryWriter w)
	{
		w.Write(TransferId);
		w.Write(FileName ?? "");
		w.Write(TotalChunks);
		w.Write(ChunkSize);
		w.Write(TotalBytes);
		w.Write(Sha256 ?? new byte[32]);
	}

	public void Read(BinaryReader r)
	{
		TransferId = r.ReadUInt32();
		FileName = r.ReadString();
		TotalChunks = r.ReadInt32();
		ChunkSize = r.ReadInt32();
		TotalBytes = r.ReadInt64();
		Sha256 = r.ReadBytes(32);
	}
}
