using Books.Api.Domain.ApiKeys;
using EventFlow.Commands;

namespace Books.Api.Commands.ApiKeys;

public class CreateApiKeyCommand(
    ApiKeyId aggregateId,
    string name,
    string keyHash,
    string companyId,
    string createdBy) : Command<ApiKeyAggregate, ApiKeyId>(aggregateId)
{
    public string Name { get; } = name;
    public string KeyHash { get; } = keyHash;
    public string CompanyId { get; } = companyId;
    public string CreatedBy { get; } = createdBy;
}

public class RevokeApiKeyCommand(
    ApiKeyId aggregateId,
    string revokedBy) : Command<ApiKeyAggregate, ApiKeyId>(aggregateId)
{
    public string RevokedBy { get; } = revokedBy;
}
