Index: sources/app/src/main/java/parkup/configs/RegistrationController.java
===================================================================
--- sources/app/src/main/java/parkup/configs/RegistrationController.java	(revision ce6ad22249e902dea17e6ba473846ccebdd4330c)
+++ 	(revision )
@@ -1,23 +1,0 @@
-//package parkup.configs;
-//
-//import org.springframework.web.bind.annotation.*;
-//
-//@RestController
-//public class RegistrationController {
-//
-//    private final RegistrationService registrationService;
-//
-//    public RegistrationController(RegistrationService registrationService) {
-//        this.registrationService = registrationService;
-//    }
-//
-//    @PostMapping(path = "/registration")
-//    public String register(@RequestBody RegistrationRequest request) {
-//        return registrationService.register(request);
-//    }
-//
-//    @GetMapping(path = "/registration/confirm")
-//    public String confirm(@RequestParam("token") String token) {
-//        return registrationService.confirmToken(token);
-//    }
-//}
Index: sources/app/src/main/java/parkup/configs/RegistrationRequest.java
===================================================================
--- sources/app/src/main/java/parkup/configs/RegistrationRequest.java	(revision ce6ad22249e902dea17e6ba473846ccebdd4330c)
+++ sources/app/src/main/java/parkup/configs/RegistrationRequest.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -6,10 +6,12 @@
     private final String email;
     private final String password;
+    private final String mobile;
 
-    public RegistrationRequest(String firstName, String lastName, String email, String password) {
+    public RegistrationRequest(String firstName, String lastName, String email, String password, String mobile) {
         this.firstName = firstName;
         this.lastName = lastName;
         this.email = email;
         this.password = password;
+        this.mobile = mobile;
     }
 
@@ -30,3 +32,7 @@
     }
 
+    public String getMobile(){
+        return mobile;
+    }
+
 }
Index: sources/app/src/main/java/parkup/configs/RegistrationService.java
===================================================================
--- sources/app/src/main/java/parkup/configs/RegistrationService.java	(revision ce6ad22249e902dea17e6ba473846ccebdd4330c)
+++ 	(revision )
@@ -1,147 +1,0 @@
-package parkup.configs;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import parkup.configs.email.EmailSender;
-import parkup.configs.email.EmailValidator;
-import parkup.configs.token.ConfirmationToken;
-import parkup.configs.token.ConfirmationTokenService;
-import parkup.entities.Administrator;
-import parkup.services.AdministratorService;
-
-import javax.transaction.Transactional;
-import java.time.LocalDateTime;
-
-@Service
-public class RegistrationService {
-    private final AdministratorService administratorService;
-    private final EmailValidator emailValidator;
-    private final ConfirmationTokenService confirmationTokenService;
-    private final EmailSender emailSender;
-
-    @Autowired
-    public RegistrationService(AdministratorService administratorService, EmailValidator emailValidator,
-                               ConfirmationTokenService confirmationTokenService, EmailSender emailSender) {
-        this.administratorService = administratorService;
-        this.emailValidator = emailValidator;
-        this.confirmationTokenService = confirmationTokenService;
-        this.emailSender = emailSender;
-    }
-
-    public String register(RegistrationRequest request) {
-        boolean isValidEmail = emailValidator.
-                test(request.getEmail());
-
-        if (!isValidEmail) {
-            throw new IllegalStateException("email not valid");
-        }
-
-        String token = administratorService.signUpAdministrator(
-                new Administrator(
-                        request.getFirstName(),
-                        request.getLastName(),
-                        request.getEmail(),
-                        request.getPassword()
-                )
-        );
-
-        String link = "http://localhost:8080/administrator/registration/confirm?token=" + token;
-        emailSender.send(
-                request.getEmail(),
-                buildEmail(request.getFirstName(), link));
-
-        return token;
-    }
-
-    @Transactional
-    public String confirmToken(String token) {
-        ConfirmationToken confirmationToken = confirmationTokenService
-                .getToken(token)
-                .orElseThrow(() ->
-                        new IllegalStateException("token not found"));
-
-        if (confirmationToken.getConfirmedAt() != null) {
-            throw new IllegalStateException("email already confirmed");
-        }
-
-        LocalDateTime expiredAt = confirmationToken.getExpiresAt();
-
-        if (expiredAt.isBefore(LocalDateTime.now())) {
-            throw new IllegalStateException("token expired");
-        }
-
-        confirmationTokenService.setConfirmedAt(token);
-
-        administratorService.enableAdministrator(confirmationToken.getAdministrator().getEmail());
-        return "confirmed";
-    }
-
-    private String buildEmail(String name, String link) {
-        return "<div style=\"font-family:Helvetica,Arial,sans-serif;font-size:16px;margin:0;color:#0b0c0c\">\n" +
-                "\n" +
-                "<span style=\"display:none;font-size:1px;color:#fff;max-height:0\"></span>\n" +
-                "\n" +
-                "  <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;min-width:100%;width:100%!important\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n" +
-                "    <tbody><tr>\n" +
-                "      <td width=\"100%\" height=\"53\" bgcolor=\"#0b0c0c\">\n" +
-                "        \n" +
-                "        <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;max-width:580px\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\">\n" +
-                "          <tbody><tr>\n" +
-                "            <td width=\"70\" bgcolor=\"#0b0c0c\" valign=\"middle\">\n" +
-                "                <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +
-                "                  <tbody><tr>\n" +
-                "                    <td style=\"padding-left:10px\">\n" +
-                "                  \n" +
-                "                    </td>\n" +
-                "                    <td style=\"font-size:28px;line-height:1.315789474;Margin-top:4px;padding-left:10px\">\n" +
-                "                      <span style=\"font-family:Helvetica,Arial,sans-serif;font-weight:700;color:#ffffff;text-decoration:none;vertical-align:top;display:inline-block\">Confirm your email</span>\n" +
-                "                    </td>\n" +
-                "                  </tr>\n" +
-                "                </tbody></table>\n" +
-                "              </a>\n" +
-                "            </td>\n" +
-                "          </tr>\n" +
-                "        </tbody></table>\n" +
-                "        \n" +
-                "      </td>\n" +
-                "    </tr>\n" +
-                "  </tbody></table>\n" +
-                "  <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +
-                "    <tbody><tr>\n" +
-                "      <td width=\"10\" height=\"10\" valign=\"middle\"></td>\n" +
-                "      <td>\n" +
-                "        \n" +
-                "                <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +
-                "                  <tbody><tr>\n" +
-                "                    <td bgcolor=\"#1D70B8\" width=\"100%\" height=\"10\"></td>\n" +
-                "                  </tr>\n" +
-                "                </tbody></table>\n" +
-                "        \n" +
-                "      </td>\n" +
-                "      <td width=\"10\" valign=\"middle\" height=\"10\"></td>\n" +
-                "    </tr>\n" +
-                "  </tbody></table>\n" +
-                "\n" +
-                "\n" +
-                "\n" +
-                "  <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +
-                "    <tbody><tr>\n" +
-                "      <td height=\"30\"><br></td>\n" +
-                "    </tr>\n" +
-                "    <tr>\n" +
-                "      <td width=\"10\" valign=\"middle\"><br></td>\n" +
-                "      <td style=\"font-family:Helvetica,Arial,sans-serif;font-size:19px;line-height:1.315789474;max-width:560px\">\n" +
-                "        \n" +
-                "            <p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\">Hi " + name + ",</p><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> Thank you for registering. Please click on the below link to activate your account: </p><blockquote style=\"Margin:0 0 20px 0;border-left:10px solid #b1b4b6;padding:15px 0 0.1px 15px;font-size:19px;line-height:25px\"><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> <a href=\"" + link + "\">Activate Now</a> </p></blockquote>\n Link will expire in 15 minutes. <p>See you soon</p>" +
-                "        \n" +
-                "      </td>\n" +
-                "      <td width=\"10\" valign=\"middle\"><br></td>\n" +
-                "    </tr>\n" +
-                "    <tr>\n" +
-                "      <td height=\"30\"><br></td>\n" +
-                "    </tr>\n" +
-                "  </tbody></table><div class=\"yj6qo\"></div><div class=\"adL\">\n" +
-                "\n" +
-                "</div></div>";
-    }
-}
Index: sources/app/src/main/java/parkup/configs/RegistrationServiceRP.java
===================================================================
--- sources/app/src/main/java/parkup/configs/RegistrationServiceRP.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
+++ sources/app/src/main/java/parkup/configs/RegistrationServiceRP.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -0,0 +1,148 @@
+package parkup.configs;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import parkup.configs.email.EmailSender;
+import parkup.configs.email.EmailValidator;
+import parkup.configs.token.ConfirmationTokenRP;
+import parkup.configs.token.ConfirmationTokenService;
+import parkup.entities.RegistriranParkirac;
+import parkup.services.RegistriranParkiracService;
+
+import javax.transaction.Transactional;
+import java.time.LocalDateTime;
+
+@Service
+public class RegistrationServiceRP {
+    private final RegistriranParkiracService registriranParkiracService;
+    private final EmailValidator emailValidator;
+    private final ConfirmationTokenService confirmationTokenService;
+    private final EmailSender emailSender;
+
+    @Autowired
+    public RegistrationServiceRP(RegistriranParkiracService registriranParkiracService, EmailValidator emailValidator,
+                                 ConfirmationTokenService confirmationTokenService, EmailSender emailSender) {
+        this.registriranParkiracService = registriranParkiracService;
+        this.emailValidator = emailValidator;
+        this.confirmationTokenService = confirmationTokenService;
+        this.emailSender = emailSender;
+    }
+
+    public String register(RegistrationRequest request) {
+        boolean isValidEmail = emailValidator.
+                test(request.getEmail());
+
+        if (!isValidEmail) {
+            throw new IllegalStateException("email not valid");
+        }
+
+        String token = registriranParkiracService.signUpRegistriranParkirac(
+                new RegistriranParkirac(
+                        request.getFirstName(),
+                        request.getLastName(),
+                        request.getEmail(),
+                        request.getPassword(),
+                        request.getMobile()
+                )
+        );
+
+        String link = "http://localhost:8080/registriranParkirac/registration/confirm?token=" + token;
+        emailSender.send(
+                request.getEmail(),
+                buildEmail(request.getFirstName(), link));
+
+        return token;
+    }
+
+    @Transactional
+    public String confirmToken(String token) {
+        ConfirmationTokenRP confirmationTokenRP = confirmationTokenService
+                .getTokenRP(token)
+                .orElseThrow(() ->
+                        new IllegalStateException("token not found"));
+
+        if (confirmationTokenRP.getConfirmedAt() != null) {
+            throw new IllegalStateException("email already confirmed");
+        }
+
+        LocalDateTime expiredAt = confirmationTokenRP.getExpiresAt();
+
+        if (expiredAt.isBefore(LocalDateTime.now())) {
+            throw new IllegalStateException("token expired");
+        }
+
+        confirmationTokenService.setConfirmedAtRP(token);
+
+        registriranParkiracService.enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail());
+        return "confirmed";
+    }
+
+    private String buildEmail(String name, String link) {
+        return "<div style=\"font-family:Helvetica,Arial,sans-serif;font-size:16px;margin:0;color:#0b0c0c\">\n" +
+                "\n" +
+                "<span style=\"display:none;font-size:1px;color:#fff;max-height:0\"></span>\n" +
+                "\n" +
+                "  <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;min-width:100%;width:100%!important\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n" +
+                "    <tbody><tr>\n" +
+                "      <td width=\"100%\" height=\"53\" bgcolor=\"#0b0c0c\">\n" +
+                "        \n" +
+                "        <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;max-width:580px\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\">\n" +
+                "          <tbody><tr>\n" +
+                "            <td width=\"70\" bgcolor=\"#0b0c0c\" valign=\"middle\">\n" +
+                "                <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +
+                "                  <tbody><tr>\n" +
+                "                    <td style=\"padding-left:10px\">\n" +
+                "                  \n" +
+                "                    </td>\n" +
+                "                    <td style=\"font-size:28px;line-height:1.315789474;Margin-top:4px;padding-left:10px\">\n" +
+                "                      <span style=\"font-family:Helvetica,Arial,sans-serif;font-weight:700;color:#ffffff;text-decoration:none;vertical-align:top;display:inline-block\">Confirm your email</span>\n" +
+                "                    </td>\n" +
+                "                  </tr>\n" +
+                "                </tbody></table>\n" +
+                "              </a>\n" +
+                "            </td>\n" +
+                "          </tr>\n" +
+                "        </tbody></table>\n" +
+                "        \n" +
+                "      </td>\n" +
+                "    </tr>\n" +
+                "  </tbody></table>\n" +
+                "  <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +
+                "    <tbody><tr>\n" +
+                "      <td width=\"10\" height=\"10\" valign=\"middle\"></td>\n" +
+                "      <td>\n" +
+                "        \n" +
+                "                <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +
+                "                  <tbody><tr>\n" +
+                "                    <td bgcolor=\"#1D70B8\" width=\"100%\" height=\"10\"></td>\n" +
+                "                  </tr>\n" +
+                "                </tbody></table>\n" +
+                "        \n" +
+                "      </td>\n" +
+                "      <td width=\"10\" valign=\"middle\" height=\"10\"></td>\n" +
+                "    </tr>\n" +
+                "  </tbody></table>\n" +
+                "\n" +
+                "\n" +
+                "\n" +
+                "  <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +
+                "    <tbody><tr>\n" +
+                "      <td height=\"30\"><br></td>\n" +
+                "    </tr>\n" +
+                "    <tr>\n" +
+                "      <td width=\"10\" valign=\"middle\"><br></td>\n" +
+                "      <td style=\"font-family:Helvetica,Arial,sans-serif;font-size:19px;line-height:1.315789474;max-width:560px\">\n" +
+                "        \n" +
+                "            <p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\">Hi " + name + ",</p><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> Thank you for registering. Please click on the below link to activate your account: </p><blockquote style=\"Margin:0 0 20px 0;border-left:10px solid #b1b4b6;padding:15px 0 0.1px 15px;font-size:19px;line-height:25px\"><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> <a href=\"" + link + "\">Activate Now</a> </p></blockquote>\n Link will expire in 15 minutes. <p>See you soon</p>" +
+                "        \n" +
+                "      </td>\n" +
+                "      <td width=\"10\" valign=\"middle\"><br></td>\n" +
+                "    </tr>\n" +
+                "    <tr>\n" +
+                "      <td height=\"30\"><br></td>\n" +
+                "    </tr>\n" +
+                "  </tbody></table><div class=\"yj6qo\"></div><div class=\"adL\">\n" +
+                "\n" +
+                "</div></div>";
+    }
+}
Index: sources/app/src/main/java/parkup/configs/RegistrationServiceW.java
===================================================================
--- sources/app/src/main/java/parkup/configs/RegistrationServiceW.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
+++ sources/app/src/main/java/parkup/configs/RegistrationServiceW.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -0,0 +1,148 @@
+package parkup.configs;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import parkup.configs.email.EmailSender;
+import parkup.configs.email.EmailValidator;
+import parkup.configs.token.ConfirmationTokenW;
+import parkup.configs.token.ConfirmationTokenService;
+import parkup.entities.Vraboten;
+import parkup.services.VrabotenService;
+
+import javax.transaction.Transactional;
+import java.time.LocalDateTime;
+
+@Service
+public class RegistrationServiceW {
+    private final VrabotenService vrabotenService;
+    private final EmailValidator emailValidator;
+    private final ConfirmationTokenService confirmationTokenService;
+    private final EmailSender emailSender;
+
+    @Autowired
+    public RegistrationServiceW(VrabotenService vrabotenService, EmailValidator emailValidator,
+                                 ConfirmationTokenService confirmationTokenService, EmailSender emailSender) {
+        this.vrabotenService = vrabotenService;
+        this.emailValidator = emailValidator;
+        this.confirmationTokenService = confirmationTokenService;
+        this.emailSender = emailSender;
+    }
+
+    public String register(RegistrationRequest request) {
+        boolean isValidEmail = emailValidator.
+                test(request.getEmail());
+
+        if (!isValidEmail) {
+            throw new IllegalStateException("email not valid");
+        }
+
+        String token = vrabotenService.signUpVraboten(
+                new Vraboten(
+                        request.getFirstName(),
+                        request.getLastName(),
+                        request.getEmail(),
+                        request.getPassword(),
+                        request.getMobile()
+                )
+        );
+
+        String link = "http://localhost:8080/vraboten/registration/confirm?token=" + token;
+        emailSender.send(
+                request.getEmail(),
+                buildEmail(request.getFirstName(), link));
+
+        return token;
+    }
+
+    @Transactional
+    public String confirmToken(String token) {
+        ConfirmationTokenW confirmationTokenW = confirmationTokenService
+                .getTokenW(token)
+                .orElseThrow(() ->
+                        new IllegalStateException("token not found"));
+
+        if (confirmationTokenW.getConfirmedAt() != null) {
+            throw new IllegalStateException("email already confirmed");
+        }
+
+        LocalDateTime expiredAt = confirmationTokenW.getExpiresAt();
+
+        if (expiredAt.isBefore(LocalDateTime.now())) {
+            throw new IllegalStateException("token expired");
+        }
+
+        confirmationTokenService.setConfirmedAtW(token);
+
+        vrabotenService.enableVraboten(confirmationTokenW.getRegistriranParkirac().getEmail());
+        return "confirmed";
+    }
+
+    private String buildEmail(String name, String link) {
+        return "<div style=\"font-family:Helvetica,Arial,sans-serif;font-size:16px;margin:0;color:#0b0c0c\">\n" +
+                "\n" +
+                "<span style=\"display:none;font-size:1px;color:#fff;max-height:0\"></span>\n" +
+                "\n" +
+                "  <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;min-width:100%;width:100%!important\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n" +
+                "    <tbody><tr>\n" +
+                "      <td width=\"100%\" height=\"53\" bgcolor=\"#0b0c0c\">\n" +
+                "        \n" +
+                "        <table role=\"presentation\" width=\"100%\" style=\"border-collapse:collapse;max-width:580px\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\">\n" +
+                "          <tbody><tr>\n" +
+                "            <td width=\"70\" bgcolor=\"#0b0c0c\" valign=\"middle\">\n" +
+                "                <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +
+                "                  <tbody><tr>\n" +
+                "                    <td style=\"padding-left:10px\">\n" +
+                "                  \n" +
+                "                    </td>\n" +
+                "                    <td style=\"font-size:28px;line-height:1.315789474;Margin-top:4px;padding-left:10px\">\n" +
+                "                      <span style=\"font-family:Helvetica,Arial,sans-serif;font-weight:700;color:#ffffff;text-decoration:none;vertical-align:top;display:inline-block\">Confirm your email</span>\n" +
+                "                    </td>\n" +
+                "                  </tr>\n" +
+                "                </tbody></table>\n" +
+                "              </a>\n" +
+                "            </td>\n" +
+                "          </tr>\n" +
+                "        </tbody></table>\n" +
+                "        \n" +
+                "      </td>\n" +
+                "    </tr>\n" +
+                "  </tbody></table>\n" +
+                "  <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +
+                "    <tbody><tr>\n" +
+                "      <td width=\"10\" height=\"10\" valign=\"middle\"></td>\n" +
+                "      <td>\n" +
+                "        \n" +
+                "                <table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n" +
+                "                  <tbody><tr>\n" +
+                "                    <td bgcolor=\"#1D70B8\" width=\"100%\" height=\"10\"></td>\n" +
+                "                  </tr>\n" +
+                "                </tbody></table>\n" +
+                "        \n" +
+                "      </td>\n" +
+                "      <td width=\"10\" valign=\"middle\" height=\"10\"></td>\n" +
+                "    </tr>\n" +
+                "  </tbody></table>\n" +
+                "\n" +
+                "\n" +
+                "\n" +
+                "  <table role=\"presentation\" class=\"m_-6186904992287805515content\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-collapse:collapse;max-width:580px;width:100%!important\" width=\"100%\">\n" +
+                "    <tbody><tr>\n" +
+                "      <td height=\"30\"><br></td>\n" +
+                "    </tr>\n" +
+                "    <tr>\n" +
+                "      <td width=\"10\" valign=\"middle\"><br></td>\n" +
+                "      <td style=\"font-family:Helvetica,Arial,sans-serif;font-size:19px;line-height:1.315789474;max-width:560px\">\n" +
+                "        \n" +
+                "            <p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\">Hi " + name + ",</p><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> Thank you for registering. Please click on the below link to activate your account: </p><blockquote style=\"Margin:0 0 20px 0;border-left:10px solid #b1b4b6;padding:15px 0 0.1px 15px;font-size:19px;line-height:25px\"><p style=\"Margin:0 0 20px 0;font-size:19px;line-height:25px;color:#0b0c0c\"> <a href=\"" + link + "\">Activate Now</a> </p></blockquote>\n Link will expire in 15 minutes. <p>See you soon</p>" +
+                "        \n" +
+                "      </td>\n" +
+                "      <td width=\"10\" valign=\"middle\"><br></td>\n" +
+                "    </tr>\n" +
+                "    <tr>\n" +
+                "      <td height=\"30\"><br></td>\n" +
+                "    </tr>\n" +
+                "  </tbody></table><div class=\"yj6qo\"></div><div class=\"adL\">\n" +
+                "\n" +
+                "</div></div>";
+    }
+}
Index: sources/app/src/main/java/parkup/configs/WebSecurityConfig.java
===================================================================
--- sources/app/src/main/java/parkup/configs/WebSecurityConfig.java	(revision ce6ad22249e902dea17e6ba473846ccebdd4330c)
+++ sources/app/src/main/java/parkup/configs/WebSecurityConfig.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -9,41 +9,54 @@
 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import parkup.services.AdministratorService;
+import parkup.services.RegistriranParkiracService;
+import parkup.services.VrabotenService;
 
+@EnableWebSecurity
 @Configuration
-@EnableWebSecurity
 public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+        private final VrabotenService vrabotenService;
+        private final BCryptPasswordEncoder bCryptPasswordEncoder;
+        private final RegistriranParkiracService registriranParkiracService;
 
-    private final AdministratorService administratorService;
-    private final BCryptPasswordEncoder bCryptPasswordEncoder;
+        public WebSecurityConfig(VrabotenService vrabotenService, BCryptPasswordEncoder bCryptPasswordEncoder, RegistriranParkiracService registriranParkiracService) {
+            this.vrabotenService = vrabotenService;
+            this.bCryptPasswordEncoder = bCryptPasswordEncoder;
+            this.registriranParkiracService = registriranParkiracService;
+        }
 
-    public WebSecurityConfig(AdministratorService administratorService, BCryptPasswordEncoder bCryptPasswordEncoder) {
-        this.bCryptPasswordEncoder = bCryptPasswordEncoder;
-        this.administratorService = administratorService;
+        @Override
+        protected void configure(HttpSecurity http) throws Exception {
+            http
+                    .csrf().disable()
+                    .authorizeRequests()
+                        .antMatchers("/vraboten/registration/**")
+                        .permitAll()
+                        .antMatchers("/registriranParkirac/registration/**")
+                        .permitAll()
+                    .anyRequest()
+                    .authenticated().and().formLogin();
+        }
+
+        @Override
+        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
+            auth.authenticationProvider(daoAuthenticationProviderW());
+            auth.authenticationProvider(daoAuthenticationProviderRP());
+        }
+
+        @Bean
+        public DaoAuthenticationProvider daoAuthenticationProviderW() {
+            DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
+            provider.setPasswordEncoder(bCryptPasswordEncoder);
+            provider.setUserDetailsService(vrabotenService);
+            return provider;
+        }
+
+        @Bean
+        public DaoAuthenticationProvider daoAuthenticationProviderRP(){
+            DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
+            provider.setPasswordEncoder(bCryptPasswordEncoder);
+            provider.setUserDetailsService(registriranParkiracService);
+            return provider;
+        }
+
     }
-
-    @Override
-    protected void configure(HttpSecurity http) throws Exception {
-        http
-                .csrf().disable()
-                .authorizeRequests()
-                    .antMatchers("/administrator/registration/**")
-                    .permitAll()
-                .anyRequest()
-                .authenticated().and()
-                .formLogin();
-    }
-
-    @Override
-    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-        auth.authenticationProvider(daoAuthenticationProvider());
-    }
-
-    @Bean
-    public DaoAuthenticationProvider daoAuthenticationProvider(){
-        DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
-        provider.setPasswordEncoder(bCryptPasswordEncoder);
-        provider.setUserDetailsService(administratorService);
-        return provider;
-    }
-}
Index: sources/app/src/main/java/parkup/configs/token/ConfirmationToken.java
===================================================================
--- sources/app/src/main/java/parkup/configs/token/ConfirmationToken.java	(revision ce6ad22249e902dea17e6ba473846ccebdd4330c)
+++ 	(revision )
@@ -1,105 +1,0 @@
-package parkup.configs.token;
-
-import parkup.entities.Administrator;
-
-import javax.persistence.*;
-import java.time.LocalDateTime;
-
-@Entity
-public class ConfirmationToken {
-
-    @Id
-    @Column(name = "confirmation_token_id")
-    @SequenceGenerator(
-            name="confirmation_token_generator",
-            sequenceName = "confirmation_token_sequence",
-            allocationSize = 1,
-            initialValue = 900
-    )
-    @GeneratedValue(    //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e
-            strategy = GenerationType.SEQUENCE,
-            generator = "confirmation_token_sequence_generator"
-    )
-    private int id;
-
-    @Column(nullable = false)
-    private String token;
-
-    @Column(nullable = false)
-    private LocalDateTime createdAt;
-
-    @Column(nullable = false)
-    private LocalDateTime expiresAt;
-
-    private LocalDateTime confirmedAt;
-
-    @ManyToOne
-    @JoinColumn(nullable = false, name = "administrator_id")
-    //many confirmation tokens to one administrator
-    private Administrator administrator;
-
-    public ConfirmationToken() {}
-
-    public ConfirmationToken(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, Administrator administrator) {
-        this.id = id;
-        this.token = token;
-        this.createdAt = createdAt;
-        this.expiresAt = expiresAt;
-        this.administrator = administrator;
-    }
-
-    public ConfirmationToken(String token, LocalDateTime createdAt, LocalDateTime expiresAt, Administrator administrator) {
-        this.token = token;
-        this.createdAt = createdAt;
-        this.expiresAt = expiresAt;
-        this.administrator = administrator;
-    }
-
-    public int getId() {
-        return id;
-    }
-
-    public void setId(int id) {
-        this.id = id;
-    }
-
-    public String getToken() {
-        return token;
-    }
-
-    public void setToken(String token) {
-        this.token = token;
-    }
-
-    public LocalDateTime getCreatedAt() {
-        return createdAt;
-    }
-
-    public void setCreatedAt(LocalDateTime createdAt) {
-        this.createdAt = createdAt;
-    }
-
-    public LocalDateTime getExpiresAt() {
-        return expiresAt;
-    }
-
-    public void setExpiresAt(LocalDateTime expiresAt) {
-        this.expiresAt = expiresAt;
-    }
-
-    public LocalDateTime getConfirmedAt() {
-        return confirmedAt;
-    }
-
-    public void setConfirmedAt(LocalDateTime confirmedAt) {
-        this.confirmedAt = confirmedAt;
-    }
-
-    public Administrator getAdministrator() {
-        return administrator;
-    }
-
-    public void setAdministrator(Administrator administrator) {
-        this.administrator = administrator;
-    }
-}
Index: sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRP.java
===================================================================
--- sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRP.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
+++ sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRP.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -0,0 +1,105 @@
+package parkup.configs.token;
+
+import parkup.entities.RegistriranParkirac;
+
+import javax.persistence.*;
+import java.time.LocalDateTime;
+
+@Entity
+public class ConfirmationTokenRP {
+
+    @Id
+    @Column(name = "confirmation_token_id")
+    @SequenceGenerator(
+            name="confirmation_token_sequence_generator_RP",
+            sequenceName = "confirmation_token_sequence_RP",
+            allocationSize = 1,
+            initialValue = 1100
+    )
+    @GeneratedValue(    //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e
+            strategy = GenerationType.SEQUENCE,
+            generator = "confirmation_token_sequence_generator_RP"
+    )
+    private int id;
+
+    @Column(nullable = false)
+    private String token;
+
+    @Column(nullable = false)
+    private LocalDateTime createdAt;
+
+    @Column(nullable = false)
+    private LocalDateTime expiresAt;
+
+    private LocalDateTime confirmedAt;
+
+    @ManyToOne
+    @JoinColumn(nullable = false, name = "registriranParkirac_id")
+    //many confirmation tokens to one registriranParkirac
+    private RegistriranParkirac registriranParkirac;
+
+    public ConfirmationTokenRP() {}
+
+    public ConfirmationTokenRP(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegistriranParkirac registriranParkirac) {
+        this.id = id;
+        this.token = token;
+        this.createdAt = createdAt;
+        this.expiresAt = expiresAt;
+        this.registriranParkirac = registriranParkirac;
+    }
+
+    public ConfirmationTokenRP(String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegistriranParkirac registriranParkirac) {
+        this.token = token;
+        this.createdAt = createdAt;
+        this.expiresAt = expiresAt;
+        this.registriranParkirac = registriranParkirac;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public LocalDateTime getCreatedAt() {
+        return createdAt;
+    }
+
+    public void setCreatedAt(LocalDateTime createdAt) {
+        this.createdAt = createdAt;
+    }
+
+    public LocalDateTime getExpiresAt() {
+        return expiresAt;
+    }
+
+    public void setExpiresAt(LocalDateTime expiresAt) {
+        this.expiresAt = expiresAt;
+    }
+
+    public LocalDateTime getConfirmedAt() {
+        return confirmedAt;
+    }
+
+    public void setConfirmedAt(LocalDateTime confirmedAt) {
+        this.confirmedAt = confirmedAt;
+    }
+
+    public RegistriranParkirac getRegistriranParkirac() {
+        return registriranParkirac;
+    }
+
+    public void setRegistriranParkirac(RegistriranParkirac registriranParkirac) {
+        this.registriranParkirac = registriranParkirac;
+    }
+}
Index: sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepository.java
===================================================================
--- sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepository.java	(revision ce6ad22249e902dea17e6ba473846ccebdd4330c)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package parkup.configs.token;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-import javax.transaction.Transactional;
-import java.time.LocalDateTime;
-import java.util.Optional;
-
-@Repository
-public interface ConfirmationTokenRepository extends JpaRepository<ConfirmationToken,Integer> {
-
-    Optional<ConfirmationToken> findByToken(String token);
-
-    @Transactional
-    @Modifying
-    @Query("UPDATE ConfirmationToken c " +
-            "SET c.confirmedAt = ?2 " +
-            "WHERE c.token = ?1")
-    int updateConfirmedAt(String token, LocalDateTime confirmedAt);
-}
Index: sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryRP.java
===================================================================
--- sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryRP.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
+++ sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryRP.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -0,0 +1,25 @@
+package parkup.configs.token;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import javax.transaction.Transactional;
+import java.time.LocalDateTime;
+import java.util.Optional;
+
+@Repository
+public interface ConfirmationTokenRepositoryRP extends JpaRepository<ConfirmationTokenRP,Integer> {
+
+    Optional<ConfirmationTokenRP> findByToken(String token);
+
+    void deleteByRegistriranParkirac_RegParkId(int regParkId);
+
+    @Transactional
+    @Modifying
+    @Query("UPDATE ConfirmationTokenRP c " +
+            "SET c.confirmedAt = ?2 " +
+            "WHERE c.token = ?1")
+    int updateConfirmedAt(String token, LocalDateTime confirmedAt);
+}
Index: sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryW.java
===================================================================
--- sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryW.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
+++ sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryW.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -0,0 +1,25 @@
+package parkup.configs.token;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import javax.transaction.Transactional;
+import java.time.LocalDateTime;
+import java.util.Optional;
+
+@Repository
+public interface ConfirmationTokenRepositoryW extends JpaRepository<ConfirmationTokenW,Integer> {
+
+    Optional<ConfirmationTokenW> findByToken(String token);
+
+    void deleteByVraboten_VrabotenId(int vraboten_id);
+
+    @Transactional
+    @Modifying
+    @Query("UPDATE ConfirmationTokenW c " +
+            "SET c.confirmedAt = ?2 " +
+            "WHERE c.token = ?1")
+    int updateConfirmedAt(String token, LocalDateTime confirmedAt);
+}
Index: sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java
===================================================================
--- sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java	(revision ce6ad22249e902dea17e6ba473846ccebdd4330c)
+++ sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -9,20 +9,39 @@
 public class ConfirmationTokenService {
 
-    private final ConfirmationTokenRepository confirmationTokenRepository;
+    private final ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP;
+    private final ConfirmationTokenRepositoryW confirmationTokenRepositoryW;
 
-    public ConfirmationTokenService(ConfirmationTokenRepository confirmationTokenRepository) {
-        this.confirmationTokenRepository = confirmationTokenRepository;
+    public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP, ConfirmationTokenRepositoryW confirmationTokenRepositoryW, parkup.configs.token.ConfirmationTokenRepositoryW confirmationTokenRepositoryW1) {
+        this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP;
+        this.confirmationTokenRepositoryW = confirmationTokenRepositoryW1;
     }
 
-    public void saveConfirmationToken(ConfirmationToken token){
-        confirmationTokenRepository.save(token);
+    public void saveConfirmationTokenRP(ConfirmationTokenRP token){
+        confirmationTokenRepositoryRP.save(token);
     }
 
-    public Optional<ConfirmationToken> getToken(String token) {
-        return confirmationTokenRepository.findByToken(token);
+    public void saveConfirmationTokenW(ConfirmationTokenW token){
+        confirmationTokenRepositoryW.save(token);}
+
+    public Optional<ConfirmationTokenRP> getTokenRP(String token) {
+        return confirmationTokenRepositoryRP.findByToken(token);
+    }
+    public Optional<ConfirmationTokenW> getTokenW(String token){
+        return confirmationTokenRepositoryW.findByToken(token);
     }
 
-    public int setConfirmedAt(String token) {
-        return confirmationTokenRepository.updateConfirmedAt(token, LocalDateTime.now());
+    public void deleteByVraboten_VrabotenId(int vraboten_id){
+        confirmationTokenRepositoryW.deleteByVraboten_VrabotenId(vraboten_id);
+    }
+
+    public void deleteByRegistriranParkirac_RegParkId(int regParkId){
+        confirmationTokenRepositoryRP.deleteByRegistriranParkirac_RegParkId(regParkId);
+    }
+
+    public int setConfirmedAtRP(String token) {
+        return confirmationTokenRepositoryRP.updateConfirmedAt(token, LocalDateTime.now());
+    }
+    public int setConfirmedAtW(String token){
+        return confirmationTokenRepositoryW.updateConfirmedAt(token,LocalDateTime.now());
     }
 }
Index: sources/app/src/main/java/parkup/configs/token/ConfirmationTokenW.java
===================================================================
--- sources/app/src/main/java/parkup/configs/token/ConfirmationTokenW.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
+++ sources/app/src/main/java/parkup/configs/token/ConfirmationTokenW.java	(revision 97fbc67a2265c2ab4f8d16b1d71ea5d43a129fa5)
@@ -0,0 +1,105 @@
+package parkup.configs.token;
+
+import parkup.entities.Vraboten;
+
+import javax.persistence.*;
+import java.time.LocalDateTime;
+
+@Entity
+public class ConfirmationTokenW {
+
+    @Id
+    @Column(name = "confirmation_token_id")
+    @SequenceGenerator(
+            name="confirmation_token_sequence_generator_W",
+            sequenceName = "confirmation_token_sequence_W",
+            allocationSize = 1,
+            initialValue = 1200
+    )
+    @GeneratedValue(    //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e
+            strategy = GenerationType.SEQUENCE,
+            generator = "confirmation_token_sequence_generator_W"
+    )
+    private int id;
+
+    @Column(nullable = false)
+    private String token;
+
+    @Column(nullable = false)
+    private LocalDateTime createdAt;
+
+    @Column(nullable = false)
+    private LocalDateTime expiresAt;
+
+    private LocalDateTime confirmedAt;
+
+    @ManyToOne(cascade = {CascadeType.ALL})
+    @JoinColumn(nullable = false, name = "vraboten_id")
+    //many confirmation tokens to one registriranParkirac
+    private Vraboten vraboten;
+
+    public ConfirmationTokenW() {}
+
+    public ConfirmationTokenW(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, Vraboten vraboten) {
+        this.id = id;
+        this.token = token;
+        this.createdAt = createdAt;
+        this.expiresAt = expiresAt;
+        this.vraboten = vraboten;
+    }
+
+    public ConfirmationTokenW(String token, LocalDateTime createdAt, LocalDateTime expiresAt, Vraboten vraboten) {
+        this.token = token;
+        this.createdAt = createdAt;
+        this.expiresAt = expiresAt;
+        this.vraboten = vraboten;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public LocalDateTime getCreatedAt() {
+        return createdAt;
+    }
+
+    public void setCreatedAt(LocalDateTime createdAt) {
+        this.createdAt = createdAt;
+    }
+
+    public LocalDateTime getExpiresAt() {
+        return expiresAt;
+    }
+
+    public void setExpiresAt(LocalDateTime expiresAt) {
+        this.expiresAt = expiresAt;
+    }
+
+    public LocalDateTime getConfirmedAt() {
+        return confirmedAt;
+    }
+
+    public void setConfirmedAt(LocalDateTime confirmedAt) {
+        this.confirmedAt = confirmedAt;
+    }
+
+    public Vraboten getRegistriranParkirac() {
+        return vraboten;
+    }
+
+    public void setRegistriranParkirac(Vraboten vraboten) {
+        this.vraboten = vraboten;
+    }
+}
