In Domain-driven design if I want to use a repository I need to have an aggregate for it - as I understand.
So I have a User, that has id, login, email, and password. A user is a domain Entity with unique Id.
When i want to add a User to User repository, should I build first an Aggregate with only Aggregate Root that is my User entity and nothing more? It looks like a proxy to User in this case, unneeded layer.
Or maybe I missed something here? Maybe User isnt an Entity, even if it looks like this. Or maybe I can put an Entity directly to repository?
An important thing that I would like to raise is that we don't create aggregates for repositories, we create repositories because we need to persist aggregates.
Repositories deal with whole aggregates, nothing more and nothing less. They preserve the transactional boundary which is what should define your aggregate.
There is absolutely nothing wrong with single-entity aggregates. An entity in this case will be the aggregate root and the entirety of the aggregate.
I would recommend that you read Vaughn Vernon's Effective Aggregate Design series.
An aggregate root (AR) is an entity and it's very common to have entities which are the root of their own aggregate.
Your
User
entity would simply be an aggregate root. You do not need an extra concrete class.