// Path: code/exercise_2/solution/src/main/java/com/frankmoley/talks/spring/intro/data/repository/PersonRepository.java
// public class PersonRepository {
//     //TODO Later
// }
// 
// Path: code/exercise_4/solution/src/main/java/com/frankmoley/talks/spring/intro/service/domain/model/User.java
// public class User {
//     private String username;
//     private String personId;
// 
//     public String getUsername() {
//         return username;
//     }
// 
//     public void setUsername(String username) {
//         this.username = username;
//     }
// 
//     public String getPersonId() {
//         return personId;
//     }
// 
//     public void setPersonId(String personId) {
//         this.personId = personId;
//     }
// }


import com.frankmoley.talks.spring.intro.aspect.Loggable;
import com.frankmoley.talks.spring.intro.data.repository.PersonRepository;
import com.frankmoley.talks.spring.intro.service.domain.model.User;
import java.util.UUID;
package com.frankmoley.talks.spring.intro.service;



/**
 * Service offerings for authentication and user interactions.
 */
public class UserService {

    private final PersonRepository personRepository;

    public UserService(PersonRepository personRepository){
        super();
        this.personRepository = personRepository;
    }

    @Loggable
// Path: code/exercise_2/solution/src/main/java/com/frankmoley/talks/spring/intro/data/repository/PersonRepository.java
// public class PersonRepository {
//     //TODO Later
// }
// 
// Path: code/exercise_4/solution/src/main/java/com/frankmoley/talks/spring/intro/service/domain/model/User.java
// public class User {
//     private String username;
//     private String personId;
// 
//     public String getUsername() {
//         return username;
//     }
// 
//     public void setUsername(String username) {
//         this.username = username;
//     }
// 
//     public String getPersonId() {
//         return personId;
//     }
// 
//     public void setPersonId(String personId) {
//         this.personId = personId;
//     }
// }


// Path: code/exercise_2/solution/src/main/java/com/frankmoley/talks/spring/intro/service/UserService.java
import com.frankmoley.talks.spring.intro.aspect.Loggable;
import com.frankmoley.talks.spring.intro.data.repository.PersonRepository;
import com.frankmoley.talks.spring.intro.service.domain.model.User;
import java.util.UUID;

package com.frankmoley.talks.spring.intro.service;



/**
 * Service offerings for authentication and user interactions.
 */
public class UserService {

    private final PersonRepository personRepository;

    public UserService(PersonRepository personRepository){
        super();
        this.personRepository = personRepository;
    }

    @Loggable
    public User getUser(String emailAddress){