using System.Collections.Immutable;
using MemoryPack;

namespace Phantom.Common.Messages.Web.ToController;

[MemoryPackable(GenerateType.VersionTolerant)]
public sealed partial record GetUserRolesMessage(
	[property: MemoryPackOrder(0)] ImmutableHashSet<Guid> UserGuids
) : IMessageToController<ImmutableDictionary<Guid, ImmutableArray<Guid>>> {
	public Task<ImmutableDictionary<Guid, ImmutableArray<Guid>>> Accept(IMessageToControllerListener listener) {
		return listener.HandleGetUserRoles(this);
	}
}