public async Task <ActionResult <GenericCommandResult> > Create(
            [FromBody] CreateCustomerCommand command,
            [FromServices] CustomerHandler handler,
            [FromServices] UserHandler userHandler
            )
        {
            var validationResult = command.Validate();

            if (!validationResult.Success)
            {
                return(BadRequest(validationResult));
            }

            var userResult = (GenericCommandResult)userHandler.Handle(new CreateUserCommand(command.Email, command.Password, "customer"));

            if (userResult.Success)
            {
                var user = (User)userResult.Data;
                command.SetUserId(user.Id);


                var result = handler.Handle(command);
                return(Ok(result));
            }

            return(BadRequest(userResult));
        }