/**
 * IUserRepository Interface
 * 
 * Ez definiálja a UserRepository-nak kötelező metódusokat.
 * A Repository Pattern szerint az Infrastructure réteg implementálja ezt.
 */
class IUserRepository {
  async create(userData) {
    throw new Error('create() metódus nincs implementálva');
  }

  async findById(id) {
    throw new Error('findById() metódus nincs implementálva');
  }

  async findByEmail(email) {
    throw new Error('findByEmail() metódus nincs implementálva');
  }

  async findAll() {
    throw new Error('findAll() metódus nincs implementálva');
  }

  async update(id, userData) {
    throw new Error('update() metódus nincs implementálva');
  }

  async delete(id) {
    throw new Error('delete() metódus nincs implementálva');
  }
}

module.exports = IUserRepository;
