Interface do repositório definida no Domain. A Infra implementa, o Domain define o contrato.
namespace Domain.Repositories;
public interface IOrderRepository
{
Task<Order?> GetByIdAsync(Guid id, CancellationToken ct = default);
Task<IEnumerable<Order>> GetByCustomerIdAsync(string customerId, CancellationToken ct = default);
Task AddAsync(Order order, CancellationToken ct = default);
Task UpdateAsync(Order order, CancellationToken ct = default);
}