class UserService
  function getUser(string $id) → ?User
  function createUser(array $data) → User
  function validateUser(User $user) → bool
interface Repository
  function findById(string $id) → mixed
  function save(mixed $entity) → mixed
function hashPassword(string $password) → string
