Index: itattributes
===================================================================
--- .gitattributes	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,2 +1,0 @@
-/mvnw text eol=lf
-*.cmd text eol=crlf
Index: itignore
===================================================================
--- .gitignore	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,80 +1,0 @@
-### BACKEND ###
-
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### FRONTEND ###
-.vscode/
-
-# Compiled output
-/dist
-/tmp
-/out-tsc
-/bazel-out
-
-# Node
-/node_modules
-npm-debug.log
-yarn-error.log
-
-# IDEs and editors
-.idea/
-.project
-.classpath
-.c9/
-*.launch
-.settings/
-*.sublime-workspace
-
-# Visual Studio Code
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-.history/*
-
-# Miscellaneous
-/.angular/cache
-.sass-cache/
-/connect.lock
-/coverage
-/libpeerconnection.log
-testem.log
-/typings
-
-# System files
-.DS_Store
-<<<<<<< Updated upstream
-Thumbs.db
-=======
-Thumbs.db
->>>>>>> Stashed changes
Index: vn/wrapper/maven-wrapper.properties
===================================================================
--- .mvn/wrapper/maven-wrapper.properties	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-wrapperVersion=3.3.2
-distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
Index: ADME.md
===================================================================
--- README.md	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-# Distributor App
-## Краток опис
-Оваа база на податоци и веб апликација ќе служи за правење нарачки од страна на локални маркети и ресторани до дистрибутер.
-
-__Купувачите__ ќе може да имаат преглед на своите тековни и минати нарачки, состојба на нивните минати платени профактури како и моменталните профактури кои треба да се платат. При потврда на нарачката од страна на магационерот се генерира профактура која купувачите може да ја видат и според неа да извршат плаќање за својата нарачка.
-
-__Возачот__ ќе има свој панел/преглед на информации од негов интерес како преглед на нарачки кои треба да се извршат на следната достава, количина од секој артикл, дали може да се направи нарачката (дали има доволно достапна количина од секој артикл во магацин), пресметка на товар врз возилото.
-
-__Магационерот__ има преглед на состојба на секоја нарачка (дали е платена или не, можеби се доставува само доколку профактурата е платена), преглед на доставувања, сите нарачки, состојба на својот магацин, ќе може исто така да групира нарачки во достава и да ја додели доставата на некое возило.
-
-**Членови на тимот:**
-* Борис Џотов 185022
-
-**Предмет:** Бази на податоци во 2024/2025/Зимски
-
-**Под менторство на:** проф. д-р Вангел Ајановски
-
-# Проектен сајт
-https://develop.finki.ukim.mk/projects/distributorApp
Index: nw
===================================================================
--- mvnw	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,259 +1,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Apache Maven Wrapper startup batch script, version 3.3.2
-#
-# Optional ENV vars
-# -----------------
-#   JAVA_HOME - location of a JDK home dir, required when download maven via java source
-#   MVNW_REPOURL - repo url base for downloading maven distribution
-#   MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
-#   MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
-# ----------------------------------------------------------------------------
-
-set -euf
-[ "${MVNW_VERBOSE-}" != debug ] || set -x
-
-# OS specific support.
-native_path() { printf %s\\n "$1"; }
-case "$(uname)" in
-CYGWIN* | MINGW*)
-  [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
-  native_path() { cygpath --path --windows "$1"; }
-  ;;
-esac
-
-# set JAVACMD and JAVACCMD
-set_java_home() {
-  # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
-  if [ -n "${JAVA_HOME-}" ]; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ]; then
-      # IBM's JDK on AIX uses strange locations for the executables
-      JAVACMD="$JAVA_HOME/jre/sh/java"
-      JAVACCMD="$JAVA_HOME/jre/sh/javac"
-    else
-      JAVACMD="$JAVA_HOME/bin/java"
-      JAVACCMD="$JAVA_HOME/bin/javac"
-
-      if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
-        echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
-        echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
-        return 1
-      fi
-    fi
-  else
-    JAVACMD="$(
-      'set' +e
-      'unset' -f command 2>/dev/null
-      'command' -v java
-    )" || :
-    JAVACCMD="$(
-      'set' +e
-      'unset' -f command 2>/dev/null
-      'command' -v javac
-    )" || :
-
-    if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
-      echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
-      return 1
-    fi
-  fi
-}
-
-# hash string like Java String::hashCode
-hash_string() {
-  str="${1:-}" h=0
-  while [ -n "$str" ]; do
-    char="${str%"${str#?}"}"
-    h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
-    str="${str#?}"
-  done
-  printf %x\\n $h
-}
-
-verbose() { :; }
-[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
-
-die() {
-  printf %s\\n "$1" >&2
-  exit 1
-}
-
-trim() {
-  # MWRAPPER-139:
-  #   Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
-  #   Needed for removing poorly interpreted newline sequences when running in more
-  #   exotic environments such as mingw bash on Windows.
-  printf "%s" "${1}" | tr -d '[:space:]'
-}
-
-# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
-while IFS="=" read -r key value; do
-  case "${key-}" in
-  distributionUrl) distributionUrl=$(trim "${value-}") ;;
-  distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
-  esac
-done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties"
-[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties"
-
-case "${distributionUrl##*/}" in
-maven-mvnd-*bin.*)
-  MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
-  case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
-  *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
-  :Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
-  :Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
-  :Linux*x86_64*) distributionPlatform=linux-amd64 ;;
-  *)
-    echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
-    distributionPlatform=linux-amd64
-    ;;
-  esac
-  distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
-  ;;
-maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
-*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
-esac
-
-# apply MVNW_REPOURL and calculate MAVEN_HOME
-# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
-[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
-distributionUrlName="${distributionUrl##*/}"
-distributionUrlNameMain="${distributionUrlName%.*}"
-distributionUrlNameMain="${distributionUrlNameMain%-bin}"
-MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
-MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
-
-exec_maven() {
-  unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
-  exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
-}
-
-if [ -d "$MAVEN_HOME" ]; then
-  verbose "found existing MAVEN_HOME at $MAVEN_HOME"
-  exec_maven "$@"
-fi
-
-case "${distributionUrl-}" in
-*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
-*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
-esac
-
-# prepare tmp dir
-if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
-  clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
-  trap clean HUP INT TERM EXIT
-else
-  die "cannot create temp dir"
-fi
-
-mkdir -p -- "${MAVEN_HOME%/*}"
-
-# Download and Install Apache Maven
-verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
-verbose "Downloading from: $distributionUrl"
-verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
-
-# select .zip or .tar.gz
-if ! command -v unzip >/dev/null; then
-  distributionUrl="${distributionUrl%.zip}.tar.gz"
-  distributionUrlName="${distributionUrl##*/}"
-fi
-
-# verbose opt
-__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
-[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
-
-# normalize http auth
-case "${MVNW_PASSWORD:+has-password}" in
-'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
-has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
-esac
-
-if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
-  verbose "Found wget ... using wget"
-  wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
-elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
-  verbose "Found curl ... using curl"
-  curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
-elif set_java_home; then
-  verbose "Falling back to use Java to download"
-  javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
-  targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
-  cat >"$javaSource" <<-END
-	public class Downloader extends java.net.Authenticator
-	{
-	  protected java.net.PasswordAuthentication getPasswordAuthentication()
-	  {
-	    return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
-	  }
-	  public static void main( String[] args ) throws Exception
-	  {
-	    setDefault( new Downloader() );
-	    java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
-	  }
-	}
-	END
-  # For Cygwin/MinGW, switch paths to Windows format before running javac and java
-  verbose " - Compiling Downloader.java ..."
-  "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
-  verbose " - Running Downloader.java ..."
-  "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
-fi
-
-# If specified, validate the SHA-256 sum of the Maven distribution zip file
-if [ -n "${distributionSha256Sum-}" ]; then
-  distributionSha256Result=false
-  if [ "$MVN_CMD" = mvnd.sh ]; then
-    echo "Checksum validation is not supported for maven-mvnd." >&2
-    echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
-    exit 1
-  elif command -v sha256sum >/dev/null; then
-    if echo "$distributionSha256Sum  $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then
-      distributionSha256Result=true
-    fi
-  elif command -v shasum >/dev/null; then
-    if echo "$distributionSha256Sum  $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
-      distributionSha256Result=true
-    fi
-  else
-    echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
-    echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
-    exit 1
-  fi
-  if [ $distributionSha256Result = false ]; then
-    echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
-    echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
-    exit 1
-  fi
-fi
-
-# unzip and move
-if command -v unzip >/dev/null; then
-  unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
-else
-  tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
-fi
-printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url"
-mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
-
-clean || :
-exec_maven "$@"
Index: nw.cmd
===================================================================
--- mvnw.cmd	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,149 +1,0 @@
-<# : batch portion
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements.  See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership.  The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License.  You may obtain a copy of the License at
-@REM
-@REM    http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied.  See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Apache Maven Wrapper startup batch script, version 3.3.2
-@REM
-@REM Optional ENV vars
-@REM   MVNW_REPOURL - repo url base for downloading maven distribution
-@REM   MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
-@REM   MVNW_VERBOSE - true: enable verbose log; others: silence the output
-@REM ----------------------------------------------------------------------------
-
-@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
-@SET __MVNW_CMD__=
-@SET __MVNW_ERROR__=
-@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
-@SET PSModulePath=
-@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
-  IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
-)
-@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
-@SET __MVNW_PSMODULEP_SAVE=
-@SET __MVNW_ARG0_NAME__=
-@SET MVNW_USERNAME=
-@SET MVNW_PASSWORD=
-@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
-@echo Cannot start maven from wrapper >&2 && exit /b 1
-@GOTO :EOF
-: end batch / begin powershell #>
-
-$ErrorActionPreference = "Stop"
-if ($env:MVNW_VERBOSE -eq "true") {
-  $VerbosePreference = "Continue"
-}
-
-# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
-$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
-if (!$distributionUrl) {
-  Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
-}
-
-switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
-  "maven-mvnd-*" {
-    $USE_MVND = $true
-    $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
-    $MVN_CMD = "mvnd.cmd"
-    break
-  }
-  default {
-    $USE_MVND = $false
-    $MVN_CMD = $script -replace '^mvnw','mvn'
-    break
-  }
-}
-
-# apply MVNW_REPOURL and calculate MAVEN_HOME
-# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
-if ($env:MVNW_REPOURL) {
-  $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
-  $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
-}
-$distributionUrlName = $distributionUrl -replace '^.*/',''
-$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
-$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain"
-if ($env:MAVEN_USER_HOME) {
-  $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
-}
-$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
-$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
-
-if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
-  Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
-  Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
-  exit $?
-}
-
-if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
-  Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
-}
-
-# prepare tmp dir
-$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
-$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
-$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
-trap {
-  if ($TMP_DOWNLOAD_DIR.Exists) {
-    try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
-    catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
-  }
-}
-
-New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
-
-# Download and Install Apache Maven
-Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
-Write-Verbose "Downloading from: $distributionUrl"
-Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
-
-$webclient = New-Object System.Net.WebClient
-if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
-  $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
-}
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
-$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
-
-# If specified, validate the SHA-256 sum of the Maven distribution zip file
-$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
-if ($distributionSha256Sum) {
-  if ($USE_MVND) {
-    Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
-  }
-  Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
-  if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
-    Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
-  }
-}
-
-# unzip and move
-Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
-Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null
-try {
-  Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
-} catch {
-  if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
-    Write-Error "fail to move MAVEN_HOME"
-  }
-} finally {
-  try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
-  catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
-}
-
-Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
Index: m.xml
===================================================================
--- pom.xml	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,146 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.2</version>
-        <relativePath/> <!-- lookup parent from repository -->
-    </parent>
-    <groupId>mk.ukim.finki.db</groupId>
-    <artifactId>DistributorApp</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <name>DistributorApp</name>
-    <description>DistributorApp</description>
-    <url/>
-    <licenses>
-        <license/>
-    </licenses>
-    <developers>
-        <developer/>
-    </developers>
-    <scm>
-        <connection/>
-        <developerConnection/>
-        <tag/>
-        <url/>
-    </scm>
-    <properties>
-        <java.version>17</java.version>
-    </properties>
-    <dependencies>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-validation</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <optional>true</optional>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-thymeleaf</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-security</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.thymeleaf.extras</groupId>
-            <artifactId>thymeleaf-extras-springsecurity6</artifactId>
-            <version>3.1.1.RELEASE</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-mail</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-
-<!--        JWT Dependencies: -->
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt-api</artifactId>
-            <version>0.11.5</version>
-        </dependency>
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt-impl</artifactId>
-            <version>0.11.5</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt-jackson</artifactId>
-            <version>0.11.5</version>
-            <scope>runtime</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-hateoas</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>net.coobird</groupId>
-            <artifactId>thumbnailator</artifactId>
-            <version>0.4.14</version>
-        </dependency>
-
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>
-                            <groupId>org.projectlombok</groupId>
-                            <artifactId>lombok</artifactId>
-                        </exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
Index: c/main/java/mk/ukim/finki/db/distributorapp/DistributorAppApplication.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/DistributorAppApplication.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package mk.ukim.finki.db.distributorapp;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.servlet.ServletComponentScan;
-
-@SpringBootApplication
-@ServletComponentScan
-public class DistributorAppApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(DistributorAppApplication.class, args);
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_exceptions/EmailAlreadyExistsException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_exceptions/EmailAlreadyExistsException.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.db.distributorapp._exceptions;
-
-public class EmailAlreadyExistsException extends RuntimeException {
-    public EmailAlreadyExistsException(String email) {
-        super("User with the email " + email + " already exists.");
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_exceptions/InvalidArgumentsException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_exceptions/InvalidArgumentsException.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,8 +1,0 @@
-package mk.ukim.finki.db.distributorapp._exceptions;
-
-public class InvalidArgumentsException extends RuntimeException {
-
-    public InvalidArgumentsException() {
-        super("Invalid argument.");
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_exceptions/InvalidUserCredentialsException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_exceptions/InvalidUserCredentialsException.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,8 +1,0 @@
-package mk.ukim.finki.db.distributorapp._exceptions;
-
-public class InvalidUserCredentialsException extends RuntimeException {
-
-    public InvalidUserCredentialsException() {
-        super("Invalid user credentials");
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_exceptions/InvalidUsernameOrPasswordException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_exceptions/InvalidUsernameOrPasswordException.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,4 +1,0 @@
-package mk.ukim.finki.db.distributorapp._exceptions;
-
-public class InvalidUsernameOrPasswordException extends RuntimeException {
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_exceptions/PasswordsDoNotMatchException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_exceptions/PasswordsDoNotMatchException.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.db.distributorapp._exceptions;
-
-public class PasswordsDoNotMatchException extends RuntimeException {
-    public PasswordsDoNotMatchException() {
-        super("The two passwords do not match.");
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_exceptions/UserNotFoundException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_exceptions/UserNotFoundException.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp._exceptions;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ResponseStatus;
-
-@ResponseStatus(HttpStatus.NOT_FOUND)
-public class UserNotFoundException extends RuntimeException {
-
-    public UserNotFoundException(String username) {
-        super(String.format("User with username: %s was not found", username));
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_exceptions/UsernameAlreadyExistsException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_exceptions/UsernameAlreadyExistsException.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.db.distributorapp._exceptions;
-
-public class UsernameAlreadyExistsException extends RuntimeException {
-    public UsernameAlreadyExistsException(String username) {
-        super("User with the username " + username + " already exists.");
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/CustomUserDetailsService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/CustomUserDetailsService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.users.User;
-import mk.ukim.finki.db.distributorapp.users.UserRepository;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsService;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-@Service
-@RequiredArgsConstructor
-public class CustomUserDetailsService implements UserDetailsService {
-
-    private final UserRepository userRepository;
-
-    @Override
-    @Transactional
-    public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
-        return new User(this.userRepository.findUsersByUserEmailIgnoreCaseDto(email));
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/CustomUsernamePasswordAuthenticationProvider.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/CustomUsernamePasswordAuthenticationProvider.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,39 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import org.springframework.security.authentication.AuthenticationProvider;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.stereotype.Component;
-
-@Component
-@RequiredArgsConstructor
-public class CustomUsernamePasswordAuthenticationProvider implements AuthenticationProvider {
-    private final UserService userService;
-    private final CustomUserDetailsService customUserDetailsService;
-
-    @Override
-    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
-        String email = authentication.getName();
-        String password = authentication.getCredentials().toString();
-
-        if ("".equals(email) || "".equals(password)) {
-            throw new BadCredentialsException("Invalid email or password");
-        }
-
-        UserDetails userDetails = this.customUserDetailsService.loadUserByUsername(email);
-        String salt = this.userService.findFullUserDtoByEmail(email).getUserSalt();
-        if (!PassEncryption.verifyUserPassword(password, userDetails.getPassword(), salt))
-            throw new BadCredentialsException("Invalid password");
-        return new UsernamePasswordAuthenticationToken(userDetails, userDetails.getPassword(), userDetails.getAuthorities());
-    }
-
-    @Override
-    public boolean supports(Class<?> aClass) {
-        return aClass.equals(UsernamePasswordAuthenticationToken.class);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/EmailService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/EmailService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,22 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-
-@Service("emailService")
-public class EmailService {
-    private final JavaMailSender javaMailSender;
-
-    @Autowired
-    public EmailService(JavaMailSender javaMailSender) {
-        this.javaMailSender = javaMailSender;
-    }
-
-    @Async
-    public void sendEmail(SimpleMailMessage message) {
-        javaMailSender.send(message);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/PassEncryption.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/PassEncryption.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,58 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security;
-
-import org.springframework.stereotype.Component;
-
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.spec.PBEKeySpec;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.spec.InvalidKeySpecException;
-import java.util.Arrays;
-import java.util.Base64;
-import java.util.Random;
-
-@Component
-public class PassEncryption {
-    private static final Random random = new SecureRandom();
-    private static final String characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-    private static final int iterations = 20000;
-    private static final int keyLength = 256;
-
-    public static String genSaltValue(int length) {
-        StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < length; i++) {
-            sb.append(characters.charAt(random.nextInt(characters.length())));
-        }
-
-        return new String(sb);
-    }
-
-    public static byte[] hash(char[] password, byte[] salt) {
-        PBEKeySpec spec = new PBEKeySpec(password, salt, iterations, keyLength);
-        Arrays.fill(password, Character.MIN_VALUE);
-        try {
-            SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
-            return skf.generateSecret(spec).getEncoded();
-        } catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
-            throw new AssertionError("Error while hashing a password: " + e.getMessage(), e);
-        } finally {
-            spec.clearPassword();
-        }
-    }
-
-    public static String generateSecurePassword(String password, String salt) {
-        String res;
-        byte[] securePassword = hash(password.toCharArray(), salt.getBytes());
-
-        res = Base64.getEncoder().encodeToString(securePassword);
-        return res;
-    }
-
-    public static boolean verifyUserPassword(String providedPassword, String securedPassword, String salt) {
-        boolean res;
-        String newSecuredPassword = generateSecurePassword(providedPassword, salt);
-        res = newSecuredPassword.equals(securedPassword);
-
-        return res;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/PassEncryptionPasswordEncoder.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/PassEncryptionPasswordEncoder.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,30 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security;
-
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Component;
-
-import static mk.ukim.finki.db.distributorapp._security.PassEncryption.generateSecurePassword;
-import static mk.ukim.finki.db.distributorapp._security.PassEncryption.verifyUserPassword;
-
-@Component
-public class PassEncryptionPasswordEncoder implements PasswordEncoder {
-
-    @Override
-    public String encode(CharSequence rawPassword) {
-        throw new UnsupportedOperationException("Salt must be provided explicitly!");
-    }
-
-    public String encodeWithSalt(CharSequence rawPassword, String salt) {
-        return generateSecurePassword(rawPassword.toString(), salt);
-    }
-
-    @Override
-    public boolean matches(CharSequence rawPassword, String encodedPassword) {
-        throw new UnsupportedOperationException("Use matchesWithSalt for explicit salt verification!");
-    }
-
-    public boolean matchesWithSalt(CharSequence rawPassword, String encodedPassword, String salt) {
-        return verifyUserPassword(rawPassword.toString(), encodedPassword, salt);
-    }
-}
-
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/SecurityConfig.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/SecurityConfig.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,123 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security;
-
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp._security.jwt.JwtAuthenticationFilter;
-import mk.ukim.finki.db.distributorapp._security.jwt.JwtTokenProvider;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.web.config.EnableSpringDataWebSupport;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.config.Customizer;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
-import org.springframework.security.core.userdetails.User;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.security.provisioning.InMemoryUserDetailsManager;
-import org.springframework.security.web.SecurityFilterChain;
-import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.CorsConfigurationSource;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-
-import java.util.List;
-
-@Configuration
-@RequiredArgsConstructor
-@EnableWebSecurity
-@EnableMethodSecurity()
-@EnableSpringDataWebSupport(pageSerializationMode =
-        EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO)
-public class SecurityConfig {
-
-    private final CustomUsernamePasswordAuthenticationProvider authenticationProvider;
-    private final SuperUserAuthenticationProvider superUserAuthenticationProvider;
-    private final JwtTokenProvider jwtTokenProvider;
-
-    @Value("${management.endpoints.web.cors.allowed-origins}")
-    private String allowedOrigins;
-
-    @Bean
-    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
-        http
-                .requiresChannel(channel -> channel
-                        .anyRequest().requiresSecure() // Force HTTPS for all requests.
-                )
-                .cors(Customizer.withDefaults())
-                .authorizeHttpRequests(auth -> auth
-                        .requestMatchers("/auth/**", "/api/auth/**", "/reset-password/**", "/css/**", "/js/**").permitAll()
-                        .requestMatchers("/admin/**").hasRole("ADMIN")
-                        .requestMatchers("/customer/**", "/api/customer/**").hasAnyRole("CUSTOMER", "ADMIN")
-                        .requestMatchers("/manager/**", "/api/manager/**").hasAnyRole("MANAGER", "ADMIN")
-                        .requestMatchers("/driver/**", "/api/driver/**").hasAnyRole("DRIVER", "MANAGER", "ADMIN")
-                        .requestMatchers("/api/images/upload").hasAnyRole("CUSTOMER","DRIVER","MANAGER","ADMIN")
-                        .anyRequest()
-                        .authenticated()
-                )
-                .addFilterBefore(new JwtAuthenticationFilter(jwtTokenProvider), UsernamePasswordAuthenticationFilter.class)
-                .logout(logout -> logout
-                        .logoutUrl("/logout")
-                        .logoutSuccessUrl("/login?logout")
-                        .clearAuthentication(true)
-                        .invalidateHttpSession(true)
-                        .deleteCookies("JSESSIONID")
-                        .logoutSuccessUrl("/")
-                        .permitAll()
-                )
-                .exceptionHandling(exception ->
-                        exception.authenticationEntryPoint((request, response, authException)
-                                -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"))
-                )
-                .csrf(AbstractHttpConfigurer::disable);
-
-        return http.build();
-    }
-
-    @Bean
-    public CorsConfigurationSource corsConfigurationSource() {
-        CorsConfiguration configuration = new CorsConfiguration();
-
-        configuration.setAllowedOriginPatterns(List.of("*"));
-        configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "OPTIONS"));
-        configuration.setAllowedHeaders(List.of("*"));
-        configuration.setAllowCredentials(true);
-        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-        source.registerCorsConfiguration("/**", configuration);
-        return source;
-    }
-
-    @Bean
-    public InMemoryUserDetailsManager inMemoryUserDetailsManager() {
-        PasswordEncoder standardEncoder = new BCryptPasswordEncoder();
-        UserDetails superUser = User.withUsername("superuser@admin.com")
-                .password(standardEncoder.encode("supersecret"))
-                .roles("ADMIN")
-                .build();
-        return new InMemoryUserDetailsManager(superUser);
-    }
-
-    @Bean
-    public AuthenticationManager authenticationManager(
-            HttpSecurity http
-    ) throws Exception {
-        AuthenticationManagerBuilder authenticationManagerBuilder =
-                http.getSharedObject(AuthenticationManagerBuilder.class);
-
-        authenticationManagerBuilder.authenticationProvider(superUserAuthenticationProvider);
-        authenticationManagerBuilder.authenticationProvider(authenticationProvider);
-
-        return authenticationManagerBuilder.build();
-    }
-
-    @Bean
-    public PasswordEncoder passwordEncoder() {
-        return new PassEncryptionPasswordEncoder();
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/SuperUserAuthenticationProvider.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/SuperUserAuthenticationProvider.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,46 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security;
-
-import org.springframework.security.authentication.AuthenticationProvider;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.userdetails.User;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Component;
-
-@Component
-public class SuperUserAuthenticationProvider implements AuthenticationProvider {
-
-    private static final String SUPERUSER_ENCODED_PASSWORD = "$2a$12$KC9Z0kHyu06iV4xlpKOgL.p2KH3NS9EY/N3g97nGAtC/NCpRXVgXa";
-
-    private final PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
-
-    @Override
-    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
-        String username = authentication.getName();
-        String rawPassword = authentication.getCredentials().toString();
-
-        if (!"superuser@admin.com".equalsIgnoreCase(username)) {
-            return null;
-        }
-
-        if (!passwordEncoder.matches(rawPassword, SUPERUSER_ENCODED_PASSWORD)) {
-            throw new BadCredentialsException("Invalid superuser credentials");
-        }
-
-        UserDetails superUser = User.withUsername("superuser@admin.com")
-                .password(SUPERUSER_ENCODED_PASSWORD)
-                .roles("ADMIN")
-                .build();
-
-        return new UsernamePasswordAuthenticationToken(superUser, superUser.getPassword(), superUser.getAuthorities());
-    }
-
-    @Override
-    public boolean supports(Class<?> authentication) {
-        return UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/auth/AuthController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/auth/AuthController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,94 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.auth;
-
-import jakarta.servlet.http.HttpServletRequest;
-import mk.ukim.finki.db.distributorapp.city.dto.CityDtoRegister;
-import mk.ukim.finki.db.distributorapp._security.dto.LoginRequestDto;
-import mk.ukim.finki.db.distributorapp._security.dto.RegisterRequestDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-import mk.ukim.finki.db.distributorapp._exceptions.InvalidUserCredentialsException;
-import mk.ukim.finki.db.distributorapp.city.CityService;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-
-import java.util.List;
-
-
-@Controller
-@RequestMapping("/auth")
-public class AuthController {
-
-    private final CityService cityService;
-    private final AuthService authService;
-
-    public AuthController(CityService cityService, AuthService authService) {
-        this.cityService = cityService;
-        this.authService = authService;
-    }
-
-    @GetMapping("/login")
-    public String login(@RequestParam(value = "error", required = false) String error, Model model) {
-        if (error != null) {
-            model.addAttribute("error", "Invalid username or password");
-        }
-        return "authentication/login";
-    }
-
-    @PostMapping("/login")
-    public String login(@ModelAttribute LoginRequestDto loginRequest, RedirectAttributes redirectAttributes) {
-        try {
-            UsersLoadingDto user = authService.login(loginRequest);
-
-            switch (user.getUserRole()) {
-                case "ROLE_CUSTOMER" -> {
-                    return "redirect:/home/customer";
-                }
-                case "ROLE_ADMIN" -> {
-                    return "redirect:/home/admin";
-                }
-                case "ROLE_MANAGER" -> {
-                    return "redirect:/home/manager";
-                }
-                case "ROLE_DRIVER" -> {
-                    return "redirect:/home/driver";
-                }
-                default -> {
-                    return "redirect:/home";
-                }
-            }
-        } catch (InvalidUserCredentialsException e) {
-            redirectAttributes.addFlashAttribute("error", "Invalid credentials.");
-            return "redirect:/auth/login";
-        }
-    }
-
-    @GetMapping("/register")
-    public String registerCustomer(Model model) {
-        List<CityDtoRegister> cities = this.cityService.findAllCityDtos();
-        model.addAttribute("cities", cities);
-        return "authentication/register";
-    }
-
-    @PostMapping("/register")
-    public String register(@ModelAttribute RegisterRequestDto registerRequest) throws Exception {
-        authService.register(registerRequest);
-        return "redirect:/auth/login";
-    }
-
-    @GetMapping("/changePass")
-    public String changePassword(Model model) {
-        return "authentication/changePass";
-    }
-
-    @GetMapping("/logout")
-    public String logout(HttpServletRequest req) {
-        req.getSession().invalidate();
-        return "redirect:/auth/login";
-    }
-
-    @PostMapping("/logout")
-    public String logout(Model model) {
-        return "redirect:/auth/login";
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/auth/AuthService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/auth/AuthService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.auth;
-
-import mk.ukim.finki.db.distributorapp.driver.dto.CreateDriverDto;
-import mk.ukim.finki.db.distributorapp.manager.dto.CreateManagerDto;
-import mk.ukim.finki.db.distributorapp._security.dto.LoginRequestDto;
-import mk.ukim.finki.db.distributorapp._security.dto.RegisterRequestDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-
-public interface AuthService {
-    void register(RegisterRequestDto registerRequest) throws Exception;
-
-    void createManager(CreateManagerDto createUserDto) throws Exception;
-
-    void createDriver(CreateDriverDto createDriverDto) throws Exception;
-
-    UsersLoadingDto login(LoginRequestDto loginRequest);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/auth/AuthServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/auth/AuthServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,173 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.auth;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.customer.CustomerRepository;
-import mk.ukim.finki.db.distributorapp.driver.DriverRepository;
-import mk.ukim.finki.db.distributorapp.driver.dto.CreateDriverDto;
-import mk.ukim.finki.db.distributorapp.manager.ManagerRepository;
-import mk.ukim.finki.db.distributorapp.manager.dto.CreateManagerDto;
-import mk.ukim.finki.db.distributorapp.token.TokenRepository;
-import mk.ukim.finki.db.distributorapp.users.Role;
-import mk.ukim.finki.db.distributorapp.token.TokenType;
-import mk.ukim.finki.db.distributorapp._exceptions.InvalidArgumentsException;
-import mk.ukim.finki.db.distributorapp._exceptions.InvalidUserCredentialsException;
-import mk.ukim.finki.db.distributorapp._security.EmailService;
-import mk.ukim.finki.db.distributorapp._security.PassEncryption;
-import mk.ukim.finki.db.distributorapp._security.PassEncryptionPasswordEncoder;
-import mk.ukim.finki.db.distributorapp._security.dto.LoginRequestDto;
-import mk.ukim.finki.db.distributorapp._security.dto.RegisterRequestDto;
-import mk.ukim.finki.db.distributorapp.token.dto.TokenDto;
-import mk.ukim.finki.db.distributorapp.users.UserRepository;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDateTime;
-import java.util.UUID;
-
-@Service
-@RequiredArgsConstructor
-public class AuthServiceImpl implements AuthService {
-
-    private final UserRepository userRepository;
-    private final TokenRepository tokenRepository;
-    private final EmailService emailService;
-    private final PassEncryptionPasswordEncoder passwordEncoder;
-    private final CustomerRepository customerRepository;
-    private final ManagerRepository managerRepository;
-    private final DriverRepository driverRepository;
-
-    @Override
-    @Transactional
-    public void register(RegisterRequestDto registerRequest) throws Exception {
-        String saltValue = PassEncryption.genSaltValue(30);
-        String safePass = passwordEncoder.encodeWithSalt(registerRequest.getPassword(), saltValue);
-
-        Integer res = this.userRepository.create(
-                registerRequest.getName(),
-                registerRequest.getSurname(),
-                safePass,
-                registerRequest.getEmail(),
-                registerRequest.getMobile(),
-                saltValue,
-                false,
-                null,
-                registerRequest.getCity(),
-                Role.ROLE_CUSTOMER.name(),
-                "CUSTOMER");
-        if (res == 0) {
-            throw new Exception("User insertion failed");
-        }
-
-        UserDto user = this.userRepository.findUserDtoByEmail(registerRequest.getEmail());
-        String t_value = UUID.randomUUID().toString();
-        tokenRepository.create(
-                t_value,
-                LocalDateTime.now().plusHours(1),
-                user.getId(),
-                TokenType.TOKEN_VERIFICATION.name()
-        );
-
-        TokenDto createdToken = this.tokenRepository.findTokenByValue(t_value);
-
-        SimpleMailMessage mailMessage = new SimpleMailMessage();
-        mailMessage.setTo(registerRequest.getEmail());
-        mailMessage.setSubject("Complete Registration!");
-        mailMessage.setText(("To confirm your account, please click here: " +
-                "https://localhost:8080/register/confirm-account?token=" + createdToken.getT_value()));
-        System.out.println("Confirmation Token: " + createdToken.getT_value());
-        emailService.sendEmail(mailMessage);
-
-        this.customerRepository.create(
-                user.getId(),
-                registerRequest.getEdb(),
-                registerRequest.getName(),
-                registerRequest.getAddress(),
-                registerRequest.getProfileImage());
-    }
-
-    @Override
-    @Transactional
-    public void createManager(CreateManagerDto createManagerDto) throws Exception {
-        String saltValue = PassEncryption.genSaltValue(30);
-        String safePass = passwordEncoder.encodeWithSalt(createManagerDto.getPassword(), saltValue);
-
-        Integer res = this.userRepository.create(
-                createManagerDto.getName(),
-                createManagerDto.getSurname(),
-                safePass,
-                createManagerDto.getEmail(),
-                createManagerDto.getMobile(),
-                saltValue,
-                false,
-                null,
-                createManagerDto.getCity(),
-                Role.ROLE_MANAGER.name(),
-                "MANAGER");
-
-        if (res == 0) {
-            throw new Exception("User insertion failed");
-        }
-
-        UserDto user = this.userRepository.findUserDtoByEmail(createManagerDto.getEmail());
-        this.managerRepository.create(
-                user.getId(),
-                createManagerDto.getWarehouseId()
-        );
-    }
-
-    @Override
-    @Transactional
-    public void createDriver(CreateDriverDto createDriverDto) throws Exception {
-        String saltValue = PassEncryption.genSaltValue(30);
-        String safePass = passwordEncoder.encodeWithSalt(createDriverDto.getPassword(), saltValue);
-
-        Integer res = this.userRepository.create(
-                createDriverDto.getName(),
-                createDriverDto.getSurname(),
-                safePass,
-                createDriverDto.getEmail(),
-                createDriverDto.getMobile(),
-                saltValue,
-                false,
-                null,
-                createDriverDto.getCity(),
-                Role.ROLE_DRIVER.name(),
-                "DRIVER");
-
-        if (res == 0) {
-            throw new Exception("User insertion failed");
-        }
-
-        UserDto user = this.userRepository.findUserDtoByEmail(createDriverDto.getEmail());
-        this.driverRepository.create(
-                user.getId(),
-                createDriverDto.getVehicle()
-        );
-    }
-
-    @Override
-    @Transactional
-    public UsersLoadingDto login(LoginRequestDto loginRequest) {
-        if (loginRequest.getEmail() == null
-                || loginRequest.getEmail().isEmpty()
-                || loginRequest.getPassword() == null
-                || loginRequest.getPassword().isEmpty()) {
-
-            throw new InvalidArgumentsException();
-        }
-
-        UsersLoadingDto user = this.userRepository.findUsersByUserEmailIgnoreCaseDto(loginRequest.getEmail());
-
-        String secPassword = passwordEncoder
-                .encodeWithSalt(loginRequest.getPassword(), user.getUserSalt());
-
-        if (!secPassword.equals(user.getUserPassword())) {
-            throw new InvalidUserCredentialsException();
-        }
-
-        return user;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/auth/PasswordResetController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/auth/PasswordResetController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,121 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.auth;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.token.dto.TokenDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-import mk.ukim.finki.db.distributorapp.token.TokenType;
-import mk.ukim.finki.db.distributorapp.token.TokenRepository;
-import mk.ukim.finki.db.distributorapp._security.EmailService;
-import mk.ukim.finki.db.distributorapp._security.PassEncryptionPasswordEncoder;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.time.LocalDateTime;
-import java.util.UUID;
-
-@Controller
-@RequiredArgsConstructor
-@RequestMapping("/reset-password")
-public class PasswordResetController {
-    private final UserService userService;
-    private final EmailService emailService;
-    private final PassEncryptionPasswordEncoder passwordEncoder;
-    private final TokenRepository tokenRepository;
-
-
-    @GetMapping("/request")
-    public String resetPasswordRequest() {
-        return "authentication/reset-password-request";
-    }
-
-    @PostMapping("/reset-password-request")
-    public String resetPasswordRequest(@RequestParam("email") String email, Model model) {
-
-        UsersLoadingDto user = this.userService.findFullUserDtoByEmail(email);
-        if (user == null) {
-            model.addAttribute("error", "No user found with this email.");
-            return "authentication/reset-password-request";
-        }
-
-        String t_value = UUID.randomUUID().toString();
-        tokenRepository.create(
-                t_value,
-                LocalDateTime.now().plusHours(1),
-                user.getUserId(),
-                TokenType.TOKEN_RESET.name()
-        );
-        TokenDto createdToken = this.tokenRepository.findTokenByValue(t_value);
-
-        UserDto dto = this.userService.findUserDtoByEmail(email);
-        this.userService.edit(dto);
-
-        String resetLink = "https://localhost:8080/reset-password?token=" + createdToken.getT_value();
-        String emailBody = "Click the link to reset your password: " + resetLink;
-
-        SimpleMailMessage message = new SimpleMailMessage();
-        message.setTo(email);
-        message.setSubject("Password Reset Request");
-        message.setText(emailBody);
-        emailService.sendEmail(message);
-
-        model.addAttribute("success", "A password link has been sent to your email.");
-        return "authentication/reset-password-request";
-    }
-
-    @GetMapping("/reset-password")
-    public String showResetPasswordForm(@RequestParam("token") String tokenValue, Model model) {
-
-        UsersLoadingDto user = userService.findUserByResetToken(tokenValue);
-        TokenDto token = tokenRepository.findTokenByValue(tokenValue);
-        if (user == null || token.getT_expiry().isBefore(LocalDateTime.now())) {
-            model.addAttribute("error", "Invalid or expired token.");
-            return "authentication/reset-password";
-        }
-        model.addAttribute("token", token);
-        return "authentication/reset-password";
-    }
-
-    @PostMapping("/reset-password")
-    public String handleResetPassword(
-            @RequestParam("token") String tokenValue,
-            @RequestParam("newPassword") String newPassword,
-            @RequestParam("confirmPassword") String confirmPassword,
-            Model model) {
-
-        UsersLoadingDto user = userService.findUserByResetToken(tokenValue);
-        TokenDto token = tokenRepository.findTokenByValue(tokenValue);
-        if (user.getUserId() == null || token.getT_expiry().isBefore(LocalDateTime.now())) {
-            model.addAttribute("error", "Invalid or expired token.");
-            return "authentication/reset-password";
-        }
-
-        if (!newPassword.equals(confirmPassword)) {
-            model.addAttribute("error", "Passwords do not match.");
-            return "authentication/reset-password";
-        }
-
-        user.setUserPassword(passwordEncoder.encodeWithSalt(newPassword, user.getUserSalt()));
-        token.setT_validated_at(LocalDateTime.now());
-        tokenRepository.edit(
-                token.getT_id(),
-                token.getT_value(),
-                token.getT_expiry(),
-                token.getUser_id(),
-                token.getT_validated_at(),
-                token.getT_type()
-        );
-
-        UserDto dto = this.userService.findUserDtoByEmail(user.getUserEmail());
-        this.userService.edit(dto);
-
-        model.addAttribute("success", "Your password has been reset successfully.");
-        return "authentication/reset-password";
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/auth/RestAuthController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/auth/RestAuthController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,58 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.auth;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.Setter;
-import mk.ukim.finki.db.distributorapp._security.jwt.JwtTokenProvider;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/auth")
-@CrossOrigin(origins = "*")
-public class RestAuthController {
-    private final AuthService authService;
-    private final JwtTokenProvider jwtTokenProvider;
-    private final AuthenticationManager authenticationManager;
-
-    @PostMapping("/login")
-    public ResponseEntity<?> login(@RequestBody AuthRequest request){
-        try{
-            var authentication = authenticationManager.authenticate(
-                    new UsernamePasswordAuthenticationToken(request.getEmail(), request.getPassword())
-            );
-            String email = authentication.getName();
-            List<String> roles = authentication.getAuthorities()
-                    .stream()
-                    .map(GrantedAuthority::getAuthority)
-                    .toList();
-            String token = jwtTokenProvider.createToken(email,roles);
-            return ResponseEntity.ok(new AuthResponse(token));
-        }catch (AuthenticationException e){
-            return ResponseEntity.status(404).body("Invalid email/password supplied");
-        }
-    }
-}
-
-@Getter
-@Setter
-class AuthRequest {
-    private String email;
-    private String password;
-}
-
-@Getter
-@Setter
-@AllArgsConstructor
-class AuthResponse {
-    private String token;
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/dto/ChangePasswordDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/dto/ChangePasswordDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class ChangePasswordDto {
-    String email;
-    String oldPassword;
-    String newPassword;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/dto/LoginRequestDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/dto/LoginRequestDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class LoginRequestDto {
-    private String email;
-    private String password;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/dto/LoginResponseDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/dto/LoginResponseDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class LoginResponseDto {
-    private String token;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/dto/RegisterRequestDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/dto/RegisterRequestDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class RegisterRequestDto {
-    private String name;
-    private String surname;
-    private String password;
-    private String repeatedPassword;
-    private String email;
-    private String mobile;
-    private String profileImage;
-    private Integer city;
-    private String edb;
-    private String compName;
-    private String address;
-    private String repImage;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/jwt/JwtAuthenticationFilter.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/jwt/JwtAuthenticationFilter.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,58 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.jwt;
-
-import jakarta.annotation.Nonnull;
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.RequiredArgsConstructor;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
-import org.springframework.util.StringUtils;
-import org.springframework.web.filter.OncePerRequestFilter;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@RequiredArgsConstructor
-public class JwtAuthenticationFilter extends OncePerRequestFilter {
-
-    private final JwtTokenProvider jwtTokenProvider;
-
-    @Override
-    protected void doFilterInternal(@Nonnull HttpServletRequest request,
-                                    @Nonnull HttpServletResponse response,
-                                    @Nonnull FilterChain filterChain) throws ServletException, IOException {
-
-        String token = resolveToken(request);
-        if(token!=null && jwtTokenProvider.validateToken(token)){
-            String email = jwtTokenProvider.getEmailFromToken(token);
-
-            List<String> roles = jwtTokenProvider.getRolesFromToken(token);
-
-            List<GrantedAuthority> authorities = roles.stream()
-                    .map(SimpleGrantedAuthority::new)
-                    .collect(Collectors.toList());
-
-            UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
-                    email, null, authorities);
-            auth.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
-
-            SecurityContextHolder.getContext().setAuthentication(auth);
-        }
-
-        filterChain.doFilter(request, response);
-    }
-
-    private String resolveToken(HttpServletRequest request) {
-        String bearerToken = request.getHeader("Authorization");
-        if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")) {
-            return bearerToken.substring(7);
-        }
-        return null;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_security/jwt/JwtTokenProvider.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_security/jwt/JwtTokenProvider.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,72 +1,0 @@
-package mk.ukim.finki.db.distributorapp._security.jwt;
-
-import io.jsonwebtoken.*;
-import io.jsonwebtoken.security.Keys;
-import jakarta.annotation.PostConstruct;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-import java.security.Key;
-import java.util.Date;
-import java.util.List;
-
-@Component
-public class JwtTokenProvider {
-
-    @Value("${jwt.secret}")
-    private String secret;
-
-    @Value("${jwt.validity}")
-    private long validityInMilliseconds;
-
-    private Key secretKey;
-
-    @PostConstruct
-    protected void init() {
-        secretKey = Keys.hmacShaKeyFor(secret.getBytes());
-    }
-
-    public String createToken(String email, List<String> roles) {
-        Claims claims = Jwts.claims().setSubject(email);
-        claims.put("roles", roles);
-        Date now = new Date();
-        Date validity = new Date(now.getTime() + validityInMilliseconds);
-
-        return Jwts.builder()
-                .setClaims(claims)
-                .setIssuedAt(now)
-                .setExpiration(validity)
-                .signWith(secretKey, SignatureAlgorithm.HS256)
-                .compact();
-    }
-
-    public boolean validateToken(String token) {
-        try {
-            Jws<Claims> claims = Jwts.parserBuilder()
-                    .setSigningKey(secretKey)
-                    .build()
-                    .parseClaimsJws(token);
-            return !claims.getBody().getExpiration().before(new Date());
-        } catch (JwtException | IllegalArgumentException e) {
-            return false;
-        }
-    }
-
-    public String getEmailFromToken(String token) {
-        return Jwts.parserBuilder()
-                .setSigningKey(secretKey)
-                .build()
-                .parseClaimsJws(token)
-                .getBody()
-                .getSubject();
-    }
-
-    public List<String> getRolesFromToken(String token) {
-        Claims claims = Jwts.parserBuilder()
-                .setSigningKey(secretKey)
-                .build()
-                .parseClaimsJws(token)
-                .getBody();
-        return (List<String>) claims.get("roles");
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/AdminController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/AdminController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,122 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.city.dto.CityDtoRegister;
-import mk.ukim.finki.db.distributorapp.driver.dto.CreateDriverDto;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-import mk.ukim.finki.db.distributorapp.manager.dto.CreateManagerDto;
-import mk.ukim.finki.db.distributorapp._security.auth.AuthService;
-import mk.ukim.finki.db.distributorapp.city.CityService;
-import mk.ukim.finki.db.distributorapp.driver.DriverService;
-import mk.ukim.finki.db.distributorapp.vehicle.VehicleService;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@Controller
-@RequiredArgsConstructor
-@RequestMapping("/admin")
-public class AdminController {
-
-    private final AuthService authService;
-    private final CityService cityService;
-    private final WarehouseService warehouseService;
-    private final DriverService driverService;
-    private final VehicleService vehicleService;
-
-    @GetMapping({"/dashboard", "/"})
-    public String getDashboard(Model model) {
-        return "home/admin";
-    }
-
-    //    MANAGER CONTROLS:
-
-    @GetMapping("/create-manager")
-    public String createManager(Model model) {
-        List<CityDtoRegister> cities = this.cityService.findAllCityDtos();
-        model.addAttribute("cities", cities);
-        model.addAttribute("manager", new CreateManagerDto());
-        return "create-manager";
-    }
-
-    @PostMapping("/create-manager")
-    public String createManager(@ModelAttribute("manager") CreateManagerDto createManagerDto) throws Exception {
-        WarehouseDto wh = this.warehouseService.findByCityId(createManagerDto.getCity());
-        createManagerDto.setWarehouseId(wh.getId());
-        this.authService.createManager(createManagerDto);
-        return "redirect:/manager/all";
-    }
-
-    @GetMapping("/edit-manager")
-    public String editManager() {
-        return "edit-manager";
-    }
-
-    @GetMapping("/warehouse-by-city")
-    @ResponseBody
-    public WarehouseDto getWarehouseByCity(@RequestParam("cityId") Integer cityId) {
-        return this.warehouseService.findByCityId(cityId);
-    }
-
-    //    DRIVER CONTROLS:
-    @GetMapping("/create-driver")
-    public String createDriver(Model model) {
-        List<CityDtoRegister> cities = this.cityService.findAllCityDtos();
-        model.addAttribute("cities", cities);
-        model.addAttribute("driver", new CreateDriverDto());
-        return "create-driver";
-    }
-
-    @GetMapping("/vehicle-by-city")
-    @ResponseBody
-    public List<VehicleBasicDto> getVehicleByCity(@RequestParam("cityId") Integer cityId) {
-        WarehouseDto wh = this.warehouseService.findByCityId(cityId);
-        return this.vehicleService.getVehiclesByWarehouse(wh.getId());
-    }
-
-    @PostMapping("/create-driver")
-    public String createDriver(@ModelAttribute("driver") CreateDriverDto createDriverDto, @ModelAttribute("vehicle") VehicleDto vehicleDto) throws Exception {
-        this.authService.createDriver(createDriverDto);
-        return "all-drivers";
-    }
-
-    @GetMapping("/edit-driver/{id}")
-    public String editDriver(@PathVariable("id") Long id, Model model) {
-        DriverDto driver = this.driverService.findById(id);
-        model.addAttribute("driver", driver);
-        return "edit-driver";
-    }
-
-    @PostMapping("/edit-driver/{id}")
-    public String editDriver(@PathVariable("id") Long id, @ModelAttribute("driver") DriverDto driverDto, Model model) {
-        Integer res = this.driverService.edit(driverDto);
-        if (res == 1) {
-            model.addAttribute("edit-success", true);
-        } else {
-            model.addAttribute("edit-success", false);
-        }
-        return "all-drivers";
-    }
-
-    //    WAREHOUSE CONTROLS:
-
-    @GetMapping("/create-warehouse")
-    public String createWarehouse(Model model) {
-        List<CityDtoRegister> cities = this.cityService.findAllCityDtos();
-        model.addAttribute("warehouse", new WarehouseDto());
-        model.addAttribute("cities", cities);
-        return "create-warehouse";
-    }
-
-    @PostMapping("/create-warehouse")
-    public String createWarehouse(@ModelAttribute("warehouse") WarehouseDto warehouseDto, Model model) {
-        this.warehouseService.create(warehouseDto);
-        return "redirect:/warehouse";
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/CustomerController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/CustomerController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,128 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.ArticleService;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.ArticleUnitService;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitSimpleDto;
-import mk.ukim.finki.db.distributorapp.category.CategoryService;
-import mk.ukim.finki.db.distributorapp.category.dto.CategoryDto;
-import mk.ukim.finki.db.distributorapp.customer.CustomerService;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerDto;
-import mk.ukim.finki.db.distributorapp.delivery.DeliveryService;
-import mk.ukim.finki.db.distributorapp.manufacturer.ManufacturerService;
-import mk.ukim.finki.db.distributorapp.manufacturer.dto.ManufacturerDto;
-import mk.ukim.finki.db.distributorapp.order.OrdersService;
-import mk.ukim.finki.db.distributorapp.order.dto.CreateOrderDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderItemDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.WebDataBinder;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.Principal;
-import java.util.List;
-
-@Controller
-@RequiredArgsConstructor
-@RequestMapping(value = "/customer")
-public class CustomerController {
-    private final CustomerService customerService;
-    private final UserService userService;
-    private final OrdersService ordersService;
-    private final DeliveryService deliveryService;
-    private final CategoryService categoryService;
-    private final WarehouseService warehouseService;
-    private final ArticleService articleService;
-    private final ArticleUnitService articleUnitService;
-    private final ManufacturerService manufacturerService;
-
-    @GetMapping({"/dashboard", "/"})
-    public String dashboard(Model model) {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        String userEmail = authentication.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        CustomerDto customer = this.customerService.findCustomerById(user.getId());
-        model.addAttribute("customer", customer);
-        // TODO: fix fetching current orders for customer
-        model.addAttribute("currentOrders", ordersService.findCurrentOrdersByCustomer(customer.getId()));
-        model.addAttribute("currentDeliveries", deliveryService.getCurrentDeliveriesByCustomer(customer.getId()));
-        return "home/customer";
-    }
-
-    @GetMapping("/create-order")
-    public String createOrder(Model model) {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-
-        String userEmail = authentication.getName();
-
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        WarehouseDto warehouse = this.warehouseService.findByCityId(user.getCityId());
-
-        List<CategoryDto> categories = this.categoryService.listCategories();
-        List<ArticleDto> articles = this.articleService.getAllArticlesByWarehouse(warehouse.getId());
-        List<ManufacturerDto> manufacturers = this.manufacturerService.getAllManufacturers();
-        List<ArticleUnitDto> articleUnits = this.articleUnitService.getAllArticleUnitsByWarehouse(warehouse.getId());
-
-        model.addAttribute("categories", categories);
-        model.addAttribute("articles", articles);
-        model.addAttribute("manufacturers", manufacturers);
-        model.addAttribute("articleUnits", articleUnits);
-        return "create-order";
-    }
-
-    @InitBinder
-    public void initBinder(WebDataBinder binder) {
-        ObjectMapper objectMapper = new ObjectMapper();
-        binder.registerCustomEditor(List.class, "orderItems", new java.beans.PropertyEditorSupport() {
-            @Override
-            public void setAsText(String text) throws IllegalArgumentException {
-                try {
-                    List<OrderItemDto> items = objectMapper.readValue(
-                            text, new TypeReference<List<OrderItemDto>>() {
-                            }
-                    );
-                    setValue(items);
-                } catch (Exception e) {
-                    throw new IllegalArgumentException("Invalid JSON for order items", e);
-                }
-            }
-        });
-    }
-
-    @PostMapping("/create-order")
-    public String createOrder(@ModelAttribute CreateOrderDto createOrderDto, Principal principal) {
-
-        this.ordersService.create(createOrderDto, principal.getName());
-
-        String userEmail = principal.getName();
-
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        CustomerDto customer = this.customerService.findCustomerById(user.getId());
-
-        List<OrderSimpleDto> simpleCustomerOrders = this.ordersService.findSimpleOrdersByCustomer(customer.getId());
-        OrderSimpleDto createdOrder = simpleCustomerOrders.get(simpleCustomerOrders.size() - 1);
-        WarehouseDto wh = this.warehouseService.findByCityId(user.getCityId());
-
-        List<ArticleUnitSimpleDto> editedUnits = this.articleUnitService.addArticleUnitToOrder(createOrderDto.getOrderItems(), createdOrder.getId(), wh.getId());
-
-        for (ArticleUnitSimpleDto unit : editedUnits) {
-            this.articleUnitService.simpleEdit(unit);
-        }
-
-        return "redirect:/customer/dashboard";
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/DriverController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/DriverController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,53 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryEndDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryStartDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.driver.DriverService;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-@Controller
-@RequiredArgsConstructor
-@RequestMapping(value = "/driver")
-public class DriverController {
-    private final DriverService driverService;
-    private final UserService userService;
-
-    @GetMapping({"/dashboard", "/"})
-    public String dashboard(Model model) {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        String userEmail = authentication.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        model.addAttribute("user", user);
-        model.addAttribute("startDelivery", new DeliveryStartDto());
-        model.addAttribute("endDelivery", new DeliveryEndDto());
-        model.addAttribute("ongoingDeliveries", this.driverService.getOngoingDeliveries(user.getId()));
-        model.addAttribute("newDeliveries", this.driverService.getNewAssignedDeliveries(user.getId()));
-        model.addAttribute("finishedDeliveries", this.driverService.getFinishedAssignedDeliveries(user.getId()));
-        return "home/driver";
-    }
-
-    @PostMapping("/start-delivery")
-    public String startDelivery(@ModelAttribute("startDelivery") DeliveryStartDto delivery) {
-        this.driverService.startDelivery(delivery);
-        return "redirect:/driver/dashboard";
-    }
-
-    @PostMapping("/end-delivery")
-    public String endDelivery(@ModelAttribute("endDelivery") DeliveryEndDto delivery) {
-        this.driverService.endDelivery(delivery);
-        return "redirect:/driver/dashboard";
-    }
-
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/HomeController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/HomeController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,54 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-@Controller
-@RequiredArgsConstructor
-@RequestMapping({"/", "/home"})
-public class HomeController {
-    private final UserService userService;
-
-    @GetMapping
-    public String homePage(Model model) {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-
-        if (authentication == null || !authentication.isAuthenticated() || authentication.getPrincipal().equals("anonymousUser")) {
-            model.addAttribute("userType", "Guest");
-            return "authentication/login";
-        }
-
-        String userEmail = authentication.getName();
-        if (userEmail.equals("superuser@admin.com")) {
-            return "redirect:/admin/dashboard";
-        }
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        switch (user.getRole()) {
-            case "ROLE_CUSTOMER" -> {
-                return "redirect:/customer/dashboard";
-            }
-            case "ROLE_DRIVER" -> {
-                return "redirect:/driver/dashboard";
-            }
-            case "ROLE_MANAGER" -> {
-                return "redirect:/manager/dashboard";
-            }
-        }
-        model.addAttribute("userType", "Guest");
-        return "authentication/login";
-    }
-
-    @GetMapping("/access_denied")
-    public String getAccessDeniedPage(Model model) {
-        model.addAttribute("error", "access_denied");
-        return "authentication/access_denied";
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/ManagerController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/ManagerController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,81 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.DeliveryService;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryCreateDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.order.OrdersService;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.vehicle.VehicleService;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import java.util.List;
-
-@Controller
-@RequestMapping(value = "/manager")
-@RequiredArgsConstructor
-public class ManagerController {
-    private final UserService userService;
-    private final VehicleService vehicleService;
-    private final OrdersService ordersService;
-    private final WarehouseService warehouseService;
-    private final DeliveryService deliveryService;
-
-    @GetMapping({"/dashboard", "/"})
-    public String dashboard(Model model) {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        String userEmail = authentication.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        model.addAttribute("user", user);
-        model.addAttribute("currentInventory", warehouseService.getInventoryByManager(user.getId()));
-        model.addAttribute("vehicleStatus", vehicleService.getVehiclesByManager(user.getId()));
-        model.addAttribute("newOrders", ordersService.getNewOrdersByManager(user.getId()));
-        model.addAttribute("currentDeliveries", deliveryService.getCurrentDeliveriesByManager(user.getId()));
-        return "home/manager";
-    }
-
-    @GetMapping("/all")
-    public String allManagers(Model model) {
-        return "all-managers";
-    }
-
-    @GetMapping("/create-delivery")
-    public String createDelivery(Model model) {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        String userEmail = authentication.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        model.addAttribute("user", user);
-        model.addAttribute("newDelivery", new DeliveryCreateDto());
-        model.addAttribute("newOrders", ordersService.getNewOrdersByManager(user.getId()));
-        model.addAttribute("vehicles", vehicleService.getVehiclesByManager(user.getId()));
-
-        return "create-delivery";
-    }
-
-    @PostMapping("/create-delivery")
-    public String createDelivery(@ModelAttribute DeliveryCreateDto newDelivery) {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        String userEmail = authentication.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        this.deliveryService.create(newDelivery);
-
-        List<DeliverySimpleDto> deliveries = this.deliveryService.getDeliveriesByVehicle(newDelivery.getVehId());
-        DeliverySimpleDto createdDelivery = deliveries.get(0);
-
-        this.ordersService.addOrdersToDelivery(newDelivery.getOrders(), createdDelivery.getDeliveryId());
-
-        return "redirect:/manager/dashboard";
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestArticleController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestArticleController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,45 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.ArticleService;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.web.PagedResourcesAssembler;
-import org.springframework.hateoas.EntityModel;
-import org.springframework.hateoas.PagedModel;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/article")
-@CrossOrigin(origins = "*")
-public class RestArticleController {
-    private final ArticleService articleService;
-
-    @GetMapping("/all-pages")
-    public PagedModel<EntityModel<ArticleDto>> listArticles(
-            @RequestParam(required = false) Integer categoryId,
-            @RequestParam(required = false) Long manufacturerId,
-            @RequestParam(required = false) String name,
-            @RequestParam(defaultValue = "0") int page,
-            @RequestParam(defaultValue = "0") int size,
-            Pageable pageable,
-            PagedResourcesAssembler<ArticleDto> assembler
-    ) {
-        Page<ArticleDto> res = articleService.getArticlesPageable(categoryId, manufacturerId, name, page, size);
-        return assembler.toModel(res);
-    }
-
-    @GetMapping("/mobile/customer/articles")
-    @PreAuthorize("hasAnyRole('CUSTOMER')")
-    public ResponseEntity<List<ArticleDto>> getArticles() {
-        List<ArticleDto> articles = this.articleService.getAllArticles();
-        return ResponseEntity.ok().body(articles);
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestCategoryController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestCategoryController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,26 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.category.CategoryService;
-import mk.ukim.finki.db.distributorapp.category.dto.CategoryDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/category")
-@CrossOrigin(origins = "*")
-public class RestCategoryController {
-    private final CategoryService categoryService;
-
-    @GetMapping("/all")
-    public ResponseEntity<List<CategoryDto>> getAllCategories() {
-        List<CategoryDto> categories = this.categoryService.listCategories();
-        return ResponseEntity.ok().body(categories);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestCityController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestCityController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,41 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.city.CityService;
-import mk.ukim.finki.db.distributorapp.city.dto.CityDtoRegister;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.security.Principal;
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/city")
-@CrossOrigin(origins = "*")
-public class RestCityController {
-    private final CityService cityService;
-    private final UserService userService;
-
-    @GetMapping("/all")
-    @PreAuthorize("hasAnyRole('ADMIN')")
-    public ResponseEntity<List<CityDtoRegister>> getAll() {
-        List<CityDtoRegister> cities = this.cityService.findAllCityDtos();
-        return ResponseEntity.ok().body(cities);
-    }
-
-    @GetMapping("/manager/available-cities")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<CityDtoRegister>> getAvailableCitiesForManager(Principal principal) {
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-        List<CityDtoRegister> cities = this.cityService.findCitiesForManager(user.getId());
-        return ResponseEntity.ok().body(cities);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestCustomerController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestCustomerController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,89 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.ArticleService;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.ArticleUnitService;
-import mk.ukim.finki.db.distributorapp.customer.CustomerService;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerDashboardDto;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerFullDto;
-import mk.ukim.finki.db.distributorapp.delivery.DeliveryService;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryDto;
-import mk.ukim.finki.db.distributorapp.order.OrdersService;
-import mk.ukim.finki.db.distributorapp.order.dto.AndroidCreateOrderDto;
-import mk.ukim.finki.db.distributorapp.order.dto.CreateOrderDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
-import mk.ukim.finki.db.distributorapp.proForma.ProFormaService;
-import mk.ukim.finki.db.distributorapp.proForma.dto.ProFormaDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.Principal;
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/customer")
-@CrossOrigin(origins = "*")
-public class RestCustomerController {
-    private final ArticleService articleService;
-    private final OrdersService ordersService;
-    private final DeliveryService deliveryService;
-    private final ProFormaService proFormaService;
-    private final WarehouseService warehouseService;
-    private final UserService userService;
-    private final ArticleUnitService articleUnitService;
-    private final CustomerService customerService;
-
-    @GetMapping("/{customerId}/dashboard")
-    @PreAuthorize("hasAnyRole('CUSTOMER')")
-    public ResponseEntity<CustomerDashboardDto> getCustomerDashboard(@PathVariable("customerId") Long customerId) {
-        CustomerDashboardDto dashboard = new CustomerDashboardDto();
-        List<OrderSimpleDto> userOrders = this.ordersService.findSimpleOrdersByCustomer(customerId);
-        List<DeliveryDto> userDeliveries = this.deliveryService.getCurrentDeliveriesByCustomer(customerId);
-        List<ProFormaDto> userProFormas = this.proFormaService.getCurentProFormasByCustomer(customerId);
-        dashboard.setOrders(userOrders);
-        dashboard.setDeliveries(userDeliveries);
-        dashboard.setProFormas(userProFormas);
-        return ResponseEntity.ok(dashboard);
-    }
-
-    @GetMapping("/profile")
-    @PreAuthorize("hasAnyRole('CUSTOMER')")
-    public ResponseEntity<CustomerFullDto> getProfile(Principal principal) {
-        String userEmail = principal.getName();
-        CustomerFullDto result = this.customerService.getCustomerProfile(userEmail);
-        return ResponseEntity.ok().body(result);
-    }
-
-    @PutMapping("/profile")
-    @PreAuthorize("hasAnyRole('CUSTOMER')")
-    public ResponseEntity<?> updateProfile(@RequestBody CustomerFullDto customerFullDto, Principal principal) {
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-        CustomerFullDto customer = this.customerService.getCustomerProfile(userEmail);
-        if(customerFullDto.getCityId()==null){
-            customerFullDto.setCityId(customer.getCityId());
-        }
-        this.userService.updateUserDetails(
-                user.getId(),
-                customerFullDto.getFirstName(),
-                customerFullDto.getLastName(),
-                customerFullDto.getEmail(),
-                customerFullDto.getPhone(),
-                customerFullDto.getCityId()
-        );
-        this.customerService.updateCustomerDetails(
-                customer.getId(),
-                customerFullDto.getEdb(),
-                customerFullDto.getCompName()
-        );
-
-        return ResponseEntity.ok().build();
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestDeliveryController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestDeliveryController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,87 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.customer.CustomerService;
-import mk.ukim.finki.db.distributorapp.delivery.Delivery;
-import mk.ukim.finki.db.distributorapp.delivery.DeliveryService;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryFullDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryWithOrdersDto;
-import mk.ukim.finki.db.distributorapp.driver.DriverService;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-import mk.ukim.finki.db.distributorapp.order.OrdersService;
-import mk.ukim.finki.db.distributorapp.order.dto.OrdersDeliveryDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrdersDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.Principal;
-import java.util.List;
-
-@RestController
-@RequestMapping("/api/delivery")
-@RequiredArgsConstructor
-@CrossOrigin(origins = "*")
-public class RestDeliveryController {
-    private final DeliveryService deliveryService;
-    private final OrdersService ordersService;
-    private final UserService userService;
-    private final DriverService driverService;
-
-    @GetMapping("/driver/delivery-with-orders/{deliveryId}")
-    @PreAuthorize("hasAnyRole('DRIVER','ADMIN')")
-    public ResponseEntity<DeliveryWithOrdersDto> getDeliveryWithOrder(@PathVariable Long deliveryId) {
-        DeliveryWithOrdersDto result = new DeliveryWithOrdersDto();
-        DeliveryFullDto delivery = this.deliveryService.findDeliveryById(deliveryId);
-        result.setDelivery(delivery);
-        List<OrdersDeliveryDto> deliveryOrders = this.ordersService.findDeliveryOrdersByDelivery(deliveryId);
-        result.setOrders(deliveryOrders);
-        return ResponseEntity.ok(result);
-    }
-
-    @GetMapping("/customer/current-deliveries")
-    @PreAuthorize("hasAnyRole('CUSTOMER')")
-    public ResponseEntity<List<DeliveryDto>> getCurrentDeliveries(Principal principal) {
-        String email = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(email);
-        List<DeliveryDto> result = this.deliveryService.getCurrentDeliveriesByCustomer(user.getId());
-        return ResponseEntity.ok(result);
-    }
-
-    @GetMapping("/driver/newDeliveries")
-    @PreAuthorize("hasAnyRole('DRIVER')")
-    public ResponseEntity<?> getNewDeliveries(){
-        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
-        String email = auth.getPrincipal().toString();
-
-        UserDto user = this.userService.findUserDtoByEmail(email);
-
-        if(user == null){
-            return ResponseEntity.badRequest().body("User not found");
-        }
-
-        DriverDto driver = this.driverService.findById(user.getId());
-        if(driver == null){
-            return ResponseEntity.badRequest().body("Driver not found");
-        }
-
-        List<DeliverySimpleDto> deliveries = this.driverService.getNewAssignedDeliveries(driver.getId());
-
-        return ResponseEntity.ok().body(deliveries);
-    }
-
-    @GetMapping("/manager/active-deliveries")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<DeliveryDto>> getActiveDeliveries(Principal principal){
-        String email = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(email);
-        List<DeliveryDto> result = this.deliveryService.getCurrentDeliveriesByManager(user.getId());
-        return ResponseEntity.ok(result);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestDriverController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestDriverController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,68 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.driver.DriverService;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/driver")
-@CrossOrigin(origins = "*")
-public class RestDriverController {
-
-    private final UserService userService;
-    private final DriverService driverService;
-
-    @GetMapping("/newDeliveries")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<?> getNewDeliveries(){
-        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
-        String email = auth.getPrincipal().toString();
-
-        UserDto user = this.userService.findUserDtoByEmail(email);
-
-        if(user == null){
-            return ResponseEntity.badRequest().body("User not found");
-        }
-
-        DriverDto driver = this.driverService.findById(user.getId());
-        if(driver == null){
-            return ResponseEntity.badRequest().body("Driver not found");
-        }
-
-        List<DeliverySimpleDto> deliveries = this.driverService.getNewAssignedDeliveries(driver.getId());
-
-        return ResponseEntity.ok().body(deliveries);
-    }
-
-    @GetMapping("/manager/list-all")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<?> listAllDriversForManager(){
-        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
-        String email = auth.getPrincipal().toString();
-
-        UserDto user = this.userService.findUserDtoByEmail(email);
-
-        if(user == null){
-            return ResponseEntity.badRequest().body("User not found");
-        }
-
-        List<DriverDto> drivers = this.driverService.listAllDriversForManager(user.getId());
-
-        return ResponseEntity.ok().body(drivers);
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestImageStoreController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestImageStoreController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,90 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import jakarta.servlet.ServletContext;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.imageStore.ImageStoreService;
-import mk.ukim.finki.db.distributorapp.imageStore.dto.ImageStoreDto;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.UrlResource;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.StreamUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/images")
-@CrossOrigin(origins = "*")
-public class RestImageStoreController {
-    private final ImageStoreService imageStoreService;
-    private final ServletContext servletContext;
-
-    @Value(value = "${app.upload.dir:${user.home}/uploads}")
-    private String uploadDir;
-
-    @PostMapping("/upload")
-    @PreAuthorize("hasAnyRole('CUSTOMER','ADMIN')")
-    public ResponseEntity<?> uploadImage(
-            @RequestParam("file") MultipartFile file,
-            @RequestParam("entType") String entType,
-            @RequestParam("entId") Long entId
-    ) {
-        if (file.isEmpty() || !StringUtils.hasText(entType) || entId == null) {
-            return ResponseEntity.badRequest().body("Missing parameters");
-        }
-
-        try {
-            Integer stored = imageStoreService.storeAndCompress(file, entType, entId);
-
-            return ResponseEntity.ok(stored);
-        } catch (IOException ex) {
-            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Could not store image: " + ex.getMessage());
-        }
-    }
-
-    @GetMapping("/{filename:.+}")
-    public void serveImage(
-            @PathVariable String filename,
-            HttpServletResponse response
-    ) {
-        try {
-            Path file = Paths.get(uploadDir).resolve(filename).normalize();
-            Resource resource = new UrlResource(file.toUri());
-            if (!resource.exists() || !resource.isReadable()) {
-                response.setStatus(HttpStatus.NOT_FOUND.value());
-                return;
-            }
-
-            String contentType = servletContext.getMimeType(resource.getFile().getAbsolutePath());
-            if (contentType == null) {
-                contentType = "application/octet-stream";
-            }
-            response.setContentType(contentType);
-
-            StreamUtils.copy(resource.getInputStream(), response.getOutputStream());
-        } catch (MalformedURLException e) {
-            response.setStatus(HttpStatus.BAD_REQUEST.value());
-        } catch (IOException e) {
-            response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
-        }
-    }
-
-    @GetMapping("/list")
-    public List<ImageStoreDto> listImages(
-            @RequestParam String entType,
-            @RequestParam Long entId
-    ){
-        return imageStoreService.findByImgEntTypeAndImgEntId(entType,entId);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestManagerController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestManagerController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,83 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.DeliveryService;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryCreateDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.manager.ManagerService;
-import mk.ukim.finki.db.distributorapp.manager.dto.ManagerDashboardDto;
-import mk.ukim.finki.db.distributorapp.manager.dto.ManagerDto;
-import mk.ukim.finki.db.distributorapp.order.OrdersService;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.vehicle.VehicleService;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
-import org.eclipse.angus.mail.iap.Response;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.Principal;
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/manager")
-@CrossOrigin(origins = "*")
-public class RestManagerController {
-
-    private final ManagerService managerService;
-    private final OrdersService ordersService;
-    private final DeliveryService deliveryService;
-    private final UserService userService;
-    private final VehicleService vehicleService;
-
-    @GetMapping("/dashboard")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<ManagerDashboardDto> getManagerDashboard(Principal principal) {
-        ManagerDashboardDto dashboard = new ManagerDashboardDto();
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-        List<OrderSimpleDto> newOrders = this.ordersService.getNewOrdersByManager(user.getId());
-        dashboard.setNewOrders(newOrders);
-        List<DeliverySimpleDto> pendingDeliveries = this.deliveryService.getPendingDeliveriesByManager(user.getId());
-        dashboard.setPendingDeliveries(pendingDeliveries);
-        return ResponseEntity.ok(dashboard);
-    }
-
-    @GetMapping("/orders/unassigned")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<OrderSimpleDto>> getManagerUnassignedOrders(Principal principal) {
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-        List<OrderSimpleDto> newOrders = this.ordersService.getNewOrdersByManager(user.getId());
-        return ResponseEntity.ok(newOrders);
-    }
-
-    @PostMapping("/create-delivery")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<?> createDelivery(DeliveryCreateDto newDelivery){
-        this.deliveryService.create(newDelivery);
-
-        List<DeliverySimpleDto> deliveries = this.deliveryService.getDeliveriesByVehicle(newDelivery.getVehId());
-        DeliverySimpleDto createdDelivery = deliveries.get(0);
-
-        this.ordersService.addOrdersToDelivery(newDelivery.getOrders(), createdDelivery.getDeliveryId());
-        return ResponseEntity.ok(createdDelivery.getDeliveryId());
-    }
-
-    @GetMapping("/finances/monthly-report" )
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<ManagerDashboardDto> getManagerDashboardMonthlyReport(Principal principal){
-        // TODO: Implement this method
-        return null;
-    }
-
-    @GetMapping("/finances/quarterly-report")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<ManagerDashboardDto> getManagerDashboardQuarterlyReport(Principal principal){
-        // TODO: Implement this method
-        return null;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestManufacturerController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestManufacturerController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,26 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.manufacturer.ManufacturerService;
-import mk.ukim.finki.db.distributorapp.manufacturer.dto.ManufacturerDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/manufacturer")
-@CrossOrigin(origins = "*")
-public class RestManufacturerController {
-    private final ManufacturerService manufacturerService;
-
-    @GetMapping("/all")
-    public ResponseEntity<List<ManufacturerDto>> getAllManufacturers() {
-        List<ManufacturerDto> manufacturers = this.manufacturerService.getAllManufacturers();
-        return ResponseEntity.ok().body(manufacturers);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestOrderController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestOrderController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,131 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.ArticleService;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.ArticleUnitService;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitSimpleDto;
-import mk.ukim.finki.db.distributorapp.customer.CustomerService;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerDto;
-import mk.ukim.finki.db.distributorapp.order.OrdersService;
-import mk.ukim.finki.db.distributorapp.order.dto.AndroidCreateOrderDto;
-import mk.ukim.finki.db.distributorapp.order.dto.CreateOrderDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderWithItemsDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.Principal;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/order")
-@CrossOrigin(origins = "*")
-public class RestOrderController {
-    private final OrdersService ordersService;
-    private final UserService userService;
-    private final CustomerService customerService;
-    private final WarehouseService warehouseService;
-    private final ArticleUnitService articleUnitService;
-    private final ArticleService articleService;
-
-    // ------------------- WEB -------------------
-    @PostMapping("/create")
-    @PreAuthorize("hasAnyRole('CUSTOMER','ADMIN')")
-    public ResponseEntity<?> createOrder(@RequestBody CreateOrderDto order, Principal principal) {
-
-        String userEmail = principal.getName();
-
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        if (user == null) {
-            return ResponseEntity.badRequest().body("User not found");
-        }
-
-        this.ordersService.create(order,userEmail);
-
-        CustomerDto customer = this.customerService.findCustomerById(user.getId());
-
-        List<OrderSimpleDto> simpleCustomerOrders = this.ordersService.findSimpleOrdersByCustomer(customer.getId());
-        OrderSimpleDto createdOrder = simpleCustomerOrders.get(simpleCustomerOrders.size()-1);
-        WarehouseDto wh = this.warehouseService.findByCityId(user.getCityId());
-
-        List<ArticleUnitSimpleDto> editedUnits = this.articleUnitService.addArticleUnitToOrder(order.getOrderItems(), createdOrder.getId(), wh.getId());
-
-        for (ArticleUnitSimpleDto unit : editedUnits) {
-            this.articleUnitService.simpleEdit(unit);
-        }
-
-        return ResponseEntity.ok(createdOrder);
-    }
-
-    @GetMapping("/customer/{orderId}")
-    @PreAuthorize("hasAnyRole('CUSTOMER', 'ADMIN')")
-    public ResponseEntity<?> getOrder(@PathVariable Long orderId) {
-        // TODO: In the JSON result add a list of article DTOs of the articles that are in that order.
-        OrderSimpleDto order = this.ordersService.findSimpleOrderById(orderId);
-        OrderWithItemsDto result = new OrderWithItemsDto();
-        result.setOrder(order);
-        List<ArticleDto> orderArticles = this.articleService.getArticlesByOrder(orderId);
-        result.setItems(orderArticles);
-        return ResponseEntity.ok(result);
-    }
-
-    @GetMapping("/customer/current-orders")
-    @PreAuthorize("hasAnyRole('CUSTOMER')")
-    public ResponseEntity<List<OrderSimpleDto>> getCurrentOrders(Principal principal) {
-        String email = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(email);
-        List<OrderSimpleDto> result = this.ordersService.findSimpleOrdersByCustomer(user.getId());
-        return ResponseEntity.ok(result);
-    }
-
-    @GetMapping("/manager/unassigned-orders")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<OrderSimpleDto>> getManagerUnassignedOrders(Principal principal) {
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-        List<OrderSimpleDto> newOrders = this.ordersService.getNewOrdersByManager(user.getId());
-        return ResponseEntity.ok(newOrders);
-    }
-
-    @GetMapping("/manager/unassigned-orders-by-city")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<OrderSimpleDto>> getManagerUnassignedOrdersByCity(Principal principal, @RequestParam String cityIds){
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        WarehouseDto wh = this.warehouseService.findByUserId(user.getCityId());
-
-        List<Integer> cityIdList = Arrays.stream(cityIds.split(","))
-                .map(String::trim)
-                .map(Integer::parseInt)
-                .collect(Collectors.toList());
-
-        List<OrderSimpleDto> unassignedOrders = this.ordersService
-                .getUnassignedOrdersByCitiesForWarehouse(cityIdList, wh.getId());
-        return ResponseEntity.ok(unassignedOrders);
-    }
-
-    // ------------------- MOBILE ANDROID ------------------
-    @PostMapping("/mobile/customer/create-order")
-    @PreAuthorize("hasAnyRole('CUSTOMER')")
-    public ResponseEntity<OrderSimpleDto> createOrder(@RequestBody AndroidCreateOrderDto order){
-        // todo: implement creating order via api and try to unify the code for both android and angular.
-        UserDto user = this.userService.findUserDtoByEmail(order.getUserEmail());
-        WarehouseDto wh = this.warehouseService.findByUserId(user.getCityId());
-        ArticleDto article = this.articleService.findById(order.getArticleId(), wh.getId());
-        CreateOrderDto orderDto = new CreateOrderDto();
-        orderDto.setProForma(order.getProForma());
-        return ResponseEntity.ok(new OrderSimpleDto());
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestProFormaController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestProFormaController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.proForma.ProFormaService;
-import mk.ukim.finki.db.distributorapp.proForma.dto.ProFormaDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.security.Principal;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/pro-forma")
-@CrossOrigin(origins = "*")
-public class RestProFormaController {
-    private final ProFormaService proFormaService;
-
-    @GetMapping("/manager/all")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<ProFormaDto> getAllManagerProFormas(Principal principal) {
-        // TODO: Implement this method
-        return null;
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestVehicleController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestVehicleController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,76 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.vehicle.VehicleService;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleWithDriverDto;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.Principal;
-import java.time.LocalDate;
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/vehicle")
-@CrossOrigin(origins = "*")
-public class RestVehicleController {
-    private final VehicleService vehicleService;
-    private final WarehouseService warehouseService;
-    private final UserService userService;
-
-    @GetMapping("/find-by-city")
-    @PreAuthorize("hasAnyRole('ADMIN')")
-    public ResponseEntity<List<VehicleBasicDto>> getVehiclesByCity(@RequestParam Integer cityId) {
-        WarehouseDto wh = this.warehouseService.findByCityId(cityId);
-        List<VehicleBasicDto> vehiclesByCity = this.vehicleService.getVehiclesByWarehouse(wh.getId());
-        return ResponseEntity.ok().body(vehiclesByCity);
-    }
-
-    @PostMapping("/add-new")
-    @PreAuthorize("hasAnyRole('ADMIN')")
-    public ResponseEntity<VehicleDto> addNewVehicle(@RequestBody VehicleBasicDto vehicleBasicDto) {
-        return null;
-    }
-
-    @GetMapping("/manager/vehicles")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<VehicleBasicDto>> getManagerVehicles(Principal principal) {
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-        List<VehicleBasicDto> vehicles = this.vehicleService.getBasicVehiclesByManagerId(user.getId());
-        return ResponseEntity.ok(vehicles);
-    }
-
-    @GetMapping("/manager/available-vehicles")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<?> getManagerAvailableVehicles(
-            Principal principal,
-            @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date
-    ) {
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        if(user==null){
-            return ResponseEntity.badRequest().body("User not found");
-        }
-
-        List<VehicleWithDriverDto> vehicles;
-
-        if(date!=null){
-            vehicles = this.vehicleService.getAvailableVehiclesForDateByManager(user.getId(), date);
-        }else{
-            vehicles = this.vehicleService.getVehiclesByManager(user.getId());
-        }
-
-        return ResponseEntity.ok(vehicles);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestWarehouseController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/_web/api/RestWarehouseController.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,49 +1,0 @@
-package mk.ukim.finki.db.distributorapp._web.api;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseService;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.security.Principal;
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/warehouse")
-@CrossOrigin(origins = "*")
-public class RestWarehouseController {
-    private final WarehouseService warehouseService;
-    private final UserService userService;
-
-    @GetMapping("/find-by-city")
-    @PreAuthorize("hasAnyRole('ADMIN')")
-    public ResponseEntity<WarehouseDto> findWarehouseByCity(@RequestParam Integer cityId) {
-        WarehouseDto wh = this.warehouseService.findByCityId(cityId);
-        return ResponseEntity.ok().body(wh);
-    }
-
-    @GetMapping("/all")
-    @PreAuthorize("hasAnyRole('ADMIN')")
-    public ResponseEntity<List<WarehouseDto>> findAll() {
-        List<WarehouseDto> result = this.warehouseService.findAll();
-        return ResponseEntity.ok().body(result);
-    }
-
-    @GetMapping("/manager/stock")
-    @PreAuthorize("hasAnyRole('MANAGER')")
-    public ResponseEntity<List<WarehouseStockDto>> getWarehouseStock(Principal principal){
-        String userEmail = principal.getName();
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-
-        WarehouseDto wh = this.warehouseService.findByUserId(user.getCityId());
-
-        List<WarehouseStockDto> stock = this.warehouseService.getWarehouseStock(wh.getId());
-        return ResponseEntity.ok().body(stock);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/article/Article.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/article/Article.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,49 +1,0 @@
-package mk.ukim.finki.db.distributorapp.article;
-
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.category.Category;
-import mk.ukim.finki.db.distributorapp.manufacturer.Manufacturer;
-import mk.ukim.finki.db.distributorapp.price.Price;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "article")
-public class Article {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "art_id", nullable = false)
-    private Long articleId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "art_name", nullable = false)
-    private String articleName;
-
-    @NotNull
-    @Column(name = "art_weight", nullable = false)
-    private Integer articleWeight;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "art_image", nullable = false)
-    private String artImage;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "ctg_id", nullable = false)
-    private Category category;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "man_id", nullable = false)
-    private Manufacturer manufacturer;
-
-    @OneToMany(mappedBy = "article")
-    private List<Price> prices;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/article/ArticleRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/article/ArticleRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,235 +1,0 @@
-package mk.ukim.finki.db.distributorapp.article;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface ArticleRepository extends JpaRepository<Article, Long> {
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select a.art_id as id,
-                           a.art_name as name,
-                           m.man_name as manufacturer,
-                           0 as quantity,
-                           a.man_id as manufacturerId,
-                           p.price as price,
-                           c.ctg_name as category,
-                           a.ctg_id as categoryId,
-                           a.art_weight as weight,
-                           a.art_image as image
-                    from article a
-                    join manufacturer m on a.man_id = m.man_id
-                    join price p on p.art_id = a.art_id
-                    join category c on a.ctg_id = c.ctg_id
-                    """
-    )
-    List<ArticleDto> listAll();
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into article(art_name, art_image, art_weight, ctg_id, man_id) " +
-                    "values (?1,?2,?3,?4,?5)"
-    )
-    Integer create(
-            @NonNull @Param("name") String name,
-            @NonNull @Param("image") String image,
-            @NonNull @Param("weight") Integer weight,
-            @NonNull @Param("ctg") Integer ctg_id,
-            @NonNull @Param("man") Long man_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update article " +
-                    "set art_name=?2,art_image=?3,art_weight=?4,ctg_id=?5,man_id=?6 " +
-                    "where art_id=?1"
-    )
-    Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("name") String name,
-            @NonNull @Param("img") String image,
-            @NonNull @Param("weight") Integer weight,
-            @NonNull @Param("ctg") Integer ctg_id,
-            @NonNull @Param("man") Long man_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from article where art_id=?1"
-    )
-    void delete(@Param("id") Long id);
-
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    with stock as (
-                        select a.art_id,
-                               count(au.unit_id) as quantity
-                        from article a
-                        join price p on a.art_id = p.art_id
-                        join unit_price up on p.price_id = up.price_id
-                        join article_unit au on up.unit_id = au.unit_id
-                        group by a.art_id
-                    )
-                    select a.art_id as id,
-                           a.art_name as name,
-                           m.man_name as manufacturer,
-                           st.quantity as quantity,
-                           m.man_id as manufacturerId,
-                           p.price as price,
-                           c.ctg_name as category,
-                           c.ctg_id as categoryId,
-                           a.art_weight as weight,
-                           a.art_image as image
-                    from article a
-                    join stock st on st.art_id=a.art_id
-                    join manufacturer m on a.man_id = m.man_id
-                    join category c on a.ctg_id = c.ctg_id
-                    join price p on a.art_id = p.art_id
-                    join unit_price up on p.price_id = up.price_id
-                    join article_unit au on up.unit_id = au.unit_id
-                    join warehouse w on w.wh_id = au.wh_id
-                    where w.wh_id = ?1
-                    """
-    )
-    List<ArticleDto> findAllByWarehouse(Integer warehouseId);
-//    ------------------------------------------------------------------------------
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    with stock as (
-                        select a.art_id,
-                               count(au.unit_id) as quantity
-                        from article a
-                        join price p on a.art_id = p.art_id
-                        join unit_price up on p.price_id = up.price_id
-                        join article_unit au on up.unit_id = au.unit_id
-                        group by a.art_id
-                    )
-                    select a.art_id as id,
-                           a.art_name as name,
-                           m.man_name as manufacturer,
-                           st.quantity as quantity,
-                           m.man_id as manufacturerId,
-                           p.price as price,
-                           c.ctg_name as category,
-                           c.ctg_id as categoryId,
-                           a.art_weight as weight,
-                           a.art_image as image
-                    from article a
-                    join stock st on st.art_id=a.art_id
-                    join manufacturer m on a.man_id = m.man_id
-                    join category c on a.ctg_id = c.ctg_id
-                    join price p on a.art_id = p.art_id
-                    join unit_price up on p.price_id = up.price_id
-                    join article_unit au on up.unit_id = au.unit_id
-                    join warehouse w on w.wh_id = au.wh_id
-                    where a.art_id=?1 and w.wh_id=?2
-                    """
-    )
-    ArticleDto findArticleDtoById(Long articleId, Integer warehouseId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select a.art_id as id,
-                           a.art_name as name,
-                           m.man_name as manufacturer,
-                           cast(count(au.unit_id) as int) as quantity,
-                           m.man_id as manufacturerId,
-                           p.price as price,
-                           c.ctg_name as category,
-                           c.ctg_id as categoryId,
-                           a.art_weight as weight,
-                           a.art_image as image
-                    from article a
-                           join manufacturer m on a.man_id = m.man_id
-                           join category c on a.ctg_id = c.ctg_id
-                           join price p on a.art_id = p.art_id
-                           join unit_price up on p.price_id = up.price_id
-                           join article_unit au on up.unit_id = au.unit_id
-                           join warehouse w on w.wh_id = au.wh_id
-                    where au.ord_id = ?1
-                    group by a.art_id,
-                             a.art_name,
-                             m.man_name,
-                             m.man_id,
-                             p.price,
-                             c.ctg_name,
-                             c.ctg_id,
-                             a.art_weight,
-                             a.art_image,
-                             p.price_eff_date
-                    order by a.art_name, p.price_eff_date;
-                    
-                    """
-    )
-    List<ArticleDto> getArticlesByOrder(Long orderId);
-
-    @Query(nativeQuery = true,
-            value = """
-                    select a.art_id as id,
-                           a.art_name as name,
-                           m.man_name as manufacturer,
-                           cast(count(au.unit_id) as int) as quantity,
-                           m.man_id as manufacturerId,
-                           p.price as price,
-                           c.ctg_name as category,
-                           c.ctg_id as categoryId,
-                           a.art_weight as weight,
-                           a.art_image as image
-                    from article a
-                        join manufacturer m on a.man_id = m.man_id
-                        join category c on a.ctg_id = c.ctg_id
-                        join price p on a.art_id = p.art_id
-                        join unit_price up on p.price_id = up.price_id
-                        join article_unit au on up.unit_id = au.unit_id
-                        join warehouse wh on au.wh_id = wh.wh_id
-                    where
-                        (:catId is null or a.ctg_id = :catId)
-                        and (:manId is null or a.man_id = :manId)
-                        and (:nameFilter is null or lower(a.art_name) like lower(concat('%',:nameFilter,'%')))
-                    group by a.art_id,
-                             a.art_name,
-                             m.man_name,
-                             m.man_id,
-                             p.price,
-                             c.ctg_name,
-                             c.ctg_id,
-                             a.art_weight,
-                             a.art_image
-                    order by a.art_name
-                    """,
-            countQuery = """
-                    select *
-                    from article a
-                        join price p on a.art_id = p.art_id
-                            join unit_price up on p.price_id = up.price_id
-                                join article_unit au on up.unit_id = au.unit_id
-                    where
-                        (:catId is null or a.ctg_id = :catId)
-                        and (:manId is null or a.man_id = :manId)
-                        and (:nameFilter is null or lower(a.art_name) like lower(concat('%',:nameFilter,'%')))
-                    """)
-    Page<ArticleDto> findAllWithFiltersPageable(
-            @Param("catId") Integer categoryId,
-            @Param("manId") Long manufacturerId,
-            @Param("nameFilter") String nameFilter,
-            Pageable pageable);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/article/ArticleService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/article/ArticleService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package mk.ukim.finki.db.distributorapp.article;
-
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import org.springframework.data.domain.Page;
-
-import java.util.List;
-
-public interface ArticleService {
-    List<ArticleDto> getAllArticles();
-
-    void deleteById(Long id);
-
-    Integer editById(ArticleDto article);
-
-    Integer create(ArticleDto article);
-
-    List<ArticleDto> getAllArticlesByWarehouse(Integer warehouseId);
-
-    ArticleDto findById(Long articleId, Integer warehouseId);
-
-    List<ArticleDto> getArticlesByOrder(Long orderId);
-
-    Page<ArticleDto> getArticlesPageable(
-            Integer categoryId,
-            Long manufacturerId,
-            String nameFilter,
-            int page,
-            int size);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/article/ArticleServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/article/ArticleServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,69 +1,0 @@
-package mk.ukim.finki.db.distributorapp.article;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class ArticleServiceImpl implements ArticleService {
-    private final ArticleRepository articleRepository;
-
-    @Override
-    public List<ArticleDto> getAllArticles() {
-        return this.articleRepository.listAll();
-    }
-
-    @Override
-    public void deleteById(Long id) {
-        this.articleRepository.deleteById(id);
-    }
-
-    @Override
-    public Integer editById(ArticleDto art) {
-        return this.articleRepository.edit(
-                art.getId(),
-                art.getName(),
-                art.getImage(),
-                art.getWeight(),
-                art.getCategoryId(),
-                art.getManufacturerId());
-    }
-
-    @Override
-    public Integer create(ArticleDto art) {
-        return this.articleRepository.create(
-                art.getName(),
-                art.getImage(),
-                art.getWeight(),
-                art.getCategoryId(),
-                art.getManufacturerId());
-    }
-
-    @Override
-    public List<ArticleDto> getAllArticlesByWarehouse(Integer warehouseId) {
-        return this.articleRepository.findAllByWarehouse(warehouseId);
-    }
-
-    @Override
-    public ArticleDto findById(Long articleId, Integer warehouseId) {
-        return this.articleRepository.findArticleDtoById(articleId, warehouseId);
-    }
-
-    @Override
-    public List<ArticleDto> getArticlesByOrder(Long orderId) {
-        return this.articleRepository.getArticlesByOrder(orderId);
-    }
-
-    @Override
-    public Page<ArticleDto> getArticlesPageable(Integer categoryId, Long manufacturerId, String nameFilter, int page, int size) {
-        Pageable pageable = PageRequest.of(page,size, Sort.by("art_name").ascending());
-        return this.articleRepository.findAllWithFiltersPageable(categoryId,manufacturerId,nameFilter,pageable);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/article/dto/ArticleDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/article/dto/ArticleDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.db.distributorapp.article.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-@AllArgsConstructor
-public class ArticleDto {
-    private Long id;
-    private String name;
-    private String manufacturer;
-    private Integer quantity;
-    private Long manufacturerId;
-    private BigDecimal price;
-    private String category;
-    private Integer categoryId;
-    private Integer weight;
-    private String image;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnit.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnit.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,64 +1,0 @@
-package mk.ukim.finki.db.distributorapp.articleUnit;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.order.Orders;
-import mk.ukim.finki.db.distributorapp.price.Price;
-import mk.ukim.finki.db.distributorapp.warehouse.Warehouse;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-@Entity
-@Data
-@Table(name = "article_unit")
-public class ArticleUnit {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "unit_id")
-    private Long unitId;
-
-    @NotNull
-    @Column(name = "unit_expiration_date", nullable = false)
-    private Date unitExpirationDate;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "unit_serial_number", nullable = false)
-    private String unitSerialNumber;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "unit_batch_number", nullable = false)
-    private String unitBatchNumber;
-
-    @NotNull
-    @Column(name = "unit_manufacture_date", nullable = false)
-    private Date unitManufactureDate;
-
-    @NotNull
-    @Column(name = "unit_cost_price", nullable = false)
-    private BigDecimal unitCostPrice;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "wh_id", nullable = false)
-    private Warehouse warehouse;
-
-    @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "ord_id")
-    private Orders order;
-
-    @ManyToMany
-    @JoinTable(
-            name = "unit_price",
-            joinColumns = @JoinColumn(name = "unit_id"),
-            inverseJoinColumns = @JoinColumn(name = "price_id")
-    )
-    private Set<Price> prices = new LinkedHashSet<>();
-    // Hm...? Set<Price> or List<Price>
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnitRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnitRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,141 +1,0 @@
-package mk.ukim.finki.db.distributorapp.articleUnit;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitSimpleDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-
-public interface ArticleUnitRepository extends JpaRepository<ArticleUnit, Long> {
-    @Query(
-            nativeQuery = true,
-            value = "select * from article_unit"
-    )
-    List<ArticleUnitSimpleDto> listAll();
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select au.unit_id as id,
-                            au.unit_expiration_date as expiryDate,
-                            au.unit_serial_number as serialNo,
-                            au.unit_batch_number as batchNo,
-                            au.unit_manufacture_date as manufactureDate,
-                            au.unit_cost_price as costPrice,
-                            a.art_id as artId,
-                            a.art_name as artName,
-                            au.wh_id as whId,
-                            r.region_name as whRegion,
-                            c.city_name as whCity,
-                            au.ord_id as ordId,
-                            u.user_email as customerEmail
-                    from article_unit au
-                    join warehouse wh on au.wh_id = wh.wh_id
-                    join city c on wh.city_id = c.city_id
-                    join region r on c.region_id = r.region_id
-                    join unit_price up on au.unit_id = up.unit_id
-                    join price p on up.price_id = p.price_id
-                    join article a on p.art_id = a.art_id
-                    join orders o on au.ord_id = o.ord_id
-                    join customer cust on o.cust_id = cust.user_id
-                    join users u on cust.user_id = u.user_id
-                    """
-    )
-    List<ArticleUnitDto> findAllByWarehouse(@NonNull @Param("wh") Integer wh_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into article_unit(unit_expiration_date, unit_serial_number, unit_batch_number, unit_manufacture_date, unit_cost_price, wh_id, ord_id) " +
-                    "values (?1,?2,?3,?4,?5,?6,?7)"
-    )
-    Integer create(
-            @NonNull @Param("exp_date") Date unit_exp_date,
-            @NonNull @Param("ser_no") String unit_ser_number,
-            @NonNull @Param("batch_no") String unit_batch_number,
-            @NonNull @Param("man_date") Date unit_manufacture_date,
-            @NonNull @Param("cost_price") BigDecimal unit_cost_price,
-            @NonNull @Param("wh") Integer wh_id,
-            @Param("ord") Long ord_id
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update article_unit
-                    set unit_expiration_date = ?2, unit_serial_number = ?3, unit_batch_number = ?4,unit_manufacture_date = ?5,unit_cost_price = ?6,wh_id = ?7,ord_id = ?8
-                    where unit_id=?1
-                    """
-    )
-    Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("exp_date") Date unit_exp_date,
-            @NonNull @Param("ser_no") String unit_ser_number,
-            @NonNull @Param("batch_no") String unit_batch_number,
-            @NonNull @Param("man_date") Date unit_manufacture_date,
-            @NonNull @Param("cost_price") BigDecimal unit_cost_price,
-            @NonNull @Param("wh") Integer wh_id,
-            @Param("ord") Long ord_id
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from article_unit where unit_id=?1"
-    )
-    void delete(@NonNull @Param("id") Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select au.unit_id as id,
-                           au.unit_expiration_date as expiryDate,
-                           au.unit_serial_number as serialNo,
-                           au.unit_batch_number as batchNo,
-                           au.unit_manufacture_date as manufactureDate,
-                           au.unit_cost_price as costPrice,
-                           a.art_id as artId,
-                           au.wh_id as whId,
-                           au.ord_id as ordId
-                    from article_unit au
-                    join unit_price up on au.unit_id = up.unit_id
-                    join price p on up.price_id = p.price_id
-                    join article a on p.art_id = a.art_id
-                    where au.wh_id = ?2 and a.art_id = ?1
-                    """
-    )
-    List<ArticleUnitSimpleDto> findAllSimpleByArticleAndWarehouse(Long articleId, Integer warehouseId);
-
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select au.unit_id as id,
-                           au.unit_expiration_date as expiryDate,
-                           au.unit_serial_number as serialNo,
-                           au.unit_batch_number as batchNo,
-                           au.unit_manufacture_date as manufactureDate,
-                           au.unit_cost_price as costPrice,
-                           a.art_id as artId,
-                           au.wh_id as whId,
-                           au.ord_id as ordId
-                    from article_unit au
-                    join unit_price up on au.unit_id = up.unit_id
-                    join price p on up.price_id = p.price_id
-                    join article a on p.art_id = a.art_id
-                    where au.ord_id = ?1
-                    """
-    )
-    List<ArticleUnitSimpleDto> getAllArticleUnitsByOrderId(Long orderId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnitService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnitService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,30 +1,0 @@
-package mk.ukim.finki.db.distributorapp.articleUnit;
-
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitSimpleDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderItemDto;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface ArticleUnitService {
-    List<ArticleUnitSimpleDto> getAllArticleUnits();
-
-    Integer create(ArticleUnitDto articleUnitDto);
-
-    Integer edit(ArticleUnitDto articleUnitDto);
-
-    // TODO: Change edit and simpleEdit method
-    @Transactional
-    Integer simpleEdit(ArticleUnitSimpleDto articleUnitSimpleDto);
-
-    void delete(Long id);
-
-    List<ArticleUnitDto> getAllArticleUnitsByWarehouse(Integer warehouseId);
-
-    List<ArticleUnitSimpleDto> findAllSimpleByArticleAndWarehouse(Long articleId, Integer warehouseId);
-
-    List<ArticleUnitSimpleDto> addArticleUnitToOrder(List<OrderItemDto> orderItems, Long id, Integer whId);
-
-    List<ArticleUnitSimpleDto> getAllArticleUnitsByOrderId(Long orderId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnitServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/articleUnit/ArticleUnitServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,107 +1,0 @@
-package mk.ukim.finki.db.distributorapp.articleUnit;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitDto;
-import mk.ukim.finki.db.distributorapp.articleUnit.dto.ArticleUnitSimpleDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderItemDto;
-import mk.ukim.finki.db.distributorapp.unitPrice.UnitPriceRepository;
-import mk.ukim.finki.db.distributorapp.warehouse.WarehouseRepository;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class ArticleUnitServiceImpl implements ArticleUnitService {
-    private final ArticleUnitRepository articleUnitRepository;
-    private final WarehouseRepository warehouseRepository;
-    private final UnitPriceRepository unitPriceRepository;
-
-    @Override
-    public List<ArticleUnitSimpleDto> getAllArticleUnits() {
-        return this.articleUnitRepository.listAll();
-    }
-
-    @Override
-    @Transactional
-    public Integer create(ArticleUnitDto articleUnitDto) {
-        return this.articleUnitRepository.create(
-                articleUnitDto.getExpiryDate(),
-                articleUnitDto.getSerialNo(),
-                articleUnitDto.getBatchNo(),
-                articleUnitDto.getManufactureDate(),
-                articleUnitDto.getCostPrice(),
-                articleUnitDto.getWhId(),
-                articleUnitDto.getOrdId()
-        );
-    }
-
-    @Override
-    @Transactional
-    public Integer edit(ArticleUnitDto articleUnitDto) {
-        return this.articleUnitRepository.edit(
-                articleUnitDto.getId(),
-                articleUnitDto.getExpiryDate(),
-                articleUnitDto.getSerialNo(),
-                articleUnitDto.getBatchNo(),
-                articleUnitDto.getManufactureDate(),
-                articleUnitDto.getCostPrice(),
-                articleUnitDto.getWhId(),
-                articleUnitDto.getOrdId()
-        );
-    }
-
-    @Transactional
-    @Override
-    public Integer simpleEdit(ArticleUnitSimpleDto articleUnitSimpleDto) {
-        return this.articleUnitRepository.edit(
-                articleUnitSimpleDto.getId(),
-                articleUnitSimpleDto.getExpiryDate(),
-                articleUnitSimpleDto.getSerialNo(),
-                articleUnitSimpleDto.getBatchNo(),
-                articleUnitSimpleDto.getManufactureDate(),
-                articleUnitSimpleDto.getCostPrice(),
-                articleUnitSimpleDto.getWhId(),
-                articleUnitSimpleDto.getOrdId()
-        );
-    }
-
-    @Override
-    public void delete(Long id) {
-        this.articleUnitRepository.deleteById(id);
-    }
-
-    @Override
-    public List<ArticleUnitDto> getAllArticleUnitsByWarehouse(Integer warehouseId) {
-        return this.articleUnitRepository.findAllByWarehouse(warehouseId);
-    }
-
-    @Override
-    public List<ArticleUnitSimpleDto> findAllSimpleByArticleAndWarehouse(Long articleId, Integer warehouseId) {
-        return this.articleUnitRepository.findAllSimpleByArticleAndWarehouse(articleId, warehouseId);
-    }
-
-    @Override
-    public List<ArticleUnitSimpleDto> addArticleUnitToOrder(List<OrderItemDto> orderItems, Long id, Integer whId) {
-        List<ArticleUnitSimpleDto> editedUnits = new ArrayList<>();
-        for (OrderItemDto orderItem : orderItems) {
-            Long articleId = orderItem.getArticle().getId();
-            Integer quantity = orderItem.getQuantity();
-
-            List<ArticleUnitSimpleDto> articleUnitItems = findAllSimpleByArticleAndWarehouse(articleId, whId);
-            for (int j = 0; j < quantity; j++) {
-                articleUnitItems.get(j).setOrdId(id);
-                editedUnits.add(articleUnitItems.get(j));
-            }
-        }
-        return editedUnits;
-    }
-
-    @Override
-    public List<ArticleUnitSimpleDto> getAllArticleUnitsByOrderId(Long orderId) {
-        return this.articleUnitRepository.getAllArticleUnitsByOrderId(orderId);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/articleUnit/dto/ArticleUnitDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/articleUnit/dto/ArticleUnitDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package mk.ukim.finki.db.distributorapp.articleUnit.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-public class ArticleUnitDto {
-    private Long id;
-    private Date expiryDate;
-    private String serialNo;
-    private String batchNo;
-    private Date manufactureDate;
-    private BigDecimal costPrice;
-    private Long artId;
-    private String artName;
-    private Integer whId;
-    private String whRegion;
-    private String whCity;
-    private Long ordId;
-    private String customerEmail;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/articleUnit/dto/ArticleUnitSimpleDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/articleUnit/dto/ArticleUnitSimpleDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package mk.ukim.finki.db.distributorapp.articleUnit.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class ArticleUnitSimpleDto {
-    Long id;
-    Date expiryDate;
-    String serialNo;
-    String batchNo;
-    Date manufactureDate;
-    BigDecimal costPrice;
-    Long artId;
-    Integer whId;
-    Long ordId;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/category/Category.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/category/Category.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package mk.ukim.finki.db.distributorapp.category;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.article.Article;
-
-import java.util.List;
-
-@Entity(name = "Category")
-@Data
-@Table(name = "category")
-public class Category {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "ctg_id")
-    private Integer categoryId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "ctg_name", nullable = false)
-    private String categoryName;
-
-    @OneToMany(mappedBy = "category")
-    private List<Article> articles;
-
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/category/CategoryRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/category/CategoryRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,54 +1,0 @@
-package mk.ukim.finki.db.distributorapp.category;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.category.dto.CategoryDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface CategoryRepository extends JpaRepository<Category, Long> {
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select ctg_id as id,
-                           ctg_name as name
-                    from category
-                    """
-    )
-    List<CategoryDto> listAll();
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into category(ctg_name)
-                    values (:name)
-                    """
-    )
-    Integer create(@Param("name") @NonNull String name);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update category " +
-                    "set ctg_name=?2 " +
-                    "where ctg_id=?1"
-    )
-    Integer edit(@NonNull Integer id,
-                 @NonNull String name);
-
-    @Modifying
-    @Transactional
-    @Query(
-            value = "delete from category " +
-                    "where ctg_id = ?1",
-            nativeQuery = true)
-    void deleteById(@NonNull Integer id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/category/CategoryService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/category/CategoryService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package mk.ukim.finki.db.distributorapp.category;
-
-import mk.ukim.finki.db.distributorapp.category.dto.CategoryDto;
-
-import java.util.List;
-
-public interface CategoryService {
-
-    List<CategoryDto> listCategories();
-
-    Integer create(CategoryDto categoryDto);
-
-    Integer edit(CategoryDto categoryDto);
-
-    void deleteById(Integer id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/category/CategoryServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/category/CategoryServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,34 +1,0 @@
-package mk.ukim.finki.db.distributorapp.category;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.category.dto.CategoryDto;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class CategoryServiceImpl implements CategoryService {
-    private final CategoryRepository categoryRepository;
-
-    @Override
-    public List<CategoryDto> listCategories() {
-        return this.categoryRepository.listAll();
-    }
-
-    @Override
-    public Integer create(CategoryDto categoryDto) {
-        return this.categoryRepository.create(categoryDto.getName());
-    }
-
-    @Override
-    public Integer edit(CategoryDto categoryDto) {
-        return this.categoryRepository.edit(categoryDto.getId(), categoryDto.getName());
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        this.categoryRepository.deleteById(id);
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/category/dto/CategoryDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/category/dto/CategoryDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package mk.ukim.finki.db.distributorapp.category.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class CategoryDto {
-    private Integer id;
-    private String name;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/city/City.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/city/City.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,38 +1,0 @@
-package mk.ukim.finki.db.distributorapp.city;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.region.Region;
-import mk.ukim.finki.db.distributorapp.users.User;
-import mk.ukim.finki.db.distributorapp.warehouse.Warehouse;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "city")
-public class City {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "city_id")
-    private Integer cityId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "city_name", nullable = false)
-    private String cityName;
-
-    @OneToMany(mappedBy = "city")
-    private List<User> users;
-
-    @OneToOne(mappedBy = "city")
-    private Warehouse warehouse;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "region_id", nullable = false)
-    private Region region;
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/city/CityRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/city/CityRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,68 +1,0 @@
-package mk.ukim.finki.db.distributorapp.city;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.city.dto.CityDtoRegister;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface CityRepository extends JpaRepository<City, Long> {
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select c.city_id as id, c.city_name as name
-                    from city c
-                    """
-    )
-    List<CityDtoRegister> findAllCityDtos();
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into city(city_name, region_id) " +
-                    "values (?1,?2)"
-    )
-    Integer create(
-            @NonNull String name,
-            @NonNull Integer region);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update city " +
-                    "set city_name=?2, region_id=?3 " +
-                    "where city_id=?1"
-    )
-    Integer edit(
-            @NonNull Integer id,
-            @NonNull String name,
-            @NonNull Integer region);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from city c " +
-                    "where c.city_id=?1"
-    )
-    void deleteById(@NonNull Integer id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    with manager_region as (select c.region_id as region
-                    from city c
-                    join users u on u.user_id=c.city_id
-                    where u.user_id = ?1)
-                    select c1.city_id as id, c1.city_name as name
-                    from city c1 join manager_region mr on mr.region = c1.region_id
-                    """
-    )
-    List<CityDtoRegister> findCitiesForManager(Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/city/CityService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/city/CityService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package mk.ukim.finki.db.distributorapp.city;
-
-import mk.ukim.finki.db.distributorapp.city.dto.CityDto;
-import mk.ukim.finki.db.distributorapp.city.dto.CityDtoRegister;
-
-import java.util.List;
-
-public interface CityService {
-
-    List<CityDtoRegister> findAllCityDtos();
-
-    Integer create(CityDto cityDto);
-
-    Integer edit(CityDto cityDto);
-
-    void deleteById(Integer id);
-
-    List<CityDtoRegister> findCitiesForManager(Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/city/CityServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/city/CityServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,39 +1,0 @@
-package mk.ukim.finki.db.distributorapp.city;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.city.dto.CityDto;
-import mk.ukim.finki.db.distributorapp.city.dto.CityDtoRegister;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class CityServiceImpl implements CityService {
-    private final CityRepository cityRepository;
-
-    @Override
-    public List<CityDtoRegister> findAllCityDtos() {
-        return this.cityRepository.findAllCityDtos();
-    }
-
-    @Override
-    public Integer create(CityDto dto) {
-        return this.cityRepository.create(dto.getName(), dto.getRegionId());
-    }
-
-    @Override
-    public Integer edit(CityDto dto) {
-        return this.cityRepository.edit(dto.getId(), dto.getName(), dto.getRegionId());
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        this.cityRepository.deleteById(id);
-    }
-
-    @Override
-    public List<CityDtoRegister> findCitiesForManager(Long id) {
-        return this.cityRepository.findCitiesForManager(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/city/dto/CityDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/city/dto/CityDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package mk.ukim.finki.db.distributorapp.city.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class CityDto {
-    private Integer id;
-    private String name;
-    private Integer regionId;
-    private String regionName;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/city/dto/CityDtoRegister.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/city/dto/CityDtoRegister.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package mk.ukim.finki.db.distributorapp.city.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class CityDtoRegister {
-    private Integer id;
-    private String name;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customer/Customer.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customer/Customer.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,52 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customer;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import mk.ukim.finki.db.distributorapp.customerWeekday.CustomerWeekday;
-import mk.ukim.finki.db.distributorapp.order.Orders;
-import mk.ukim.finki.db.distributorapp.users.User;
-
-import java.util.List;
-
-@EqualsAndHashCode(callSuper = true)
-@Entity
-@Data
-@Table(name = "customer")
-@DiscriminatorValue("CUSTOMER")
-@PrimaryKeyJoinColumn(name = "user_id")
-public class Customer extends User {
-    @Size(max = 13)
-    @NotNull
-    @Column(name = "cust_EDB", nullable = false, length = 13)
-    private String customerEDB;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "cust_company_name", nullable = false)
-    private String customerCompanyName;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "cust_adr", nullable = false)
-    private String customerAddress;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "cust_representative_img")
-    private String customerRepresentativeImage;
-
-    @OneToMany(mappedBy = "customer", fetch = FetchType.EAGER)
-    private List<Orders> orders;
-
-    @OneToMany(mappedBy = "customer", fetch = FetchType.EAGER)
-    private List<CustomerWeekday> customerWeekdays;
-
-    @Column(name = "cust_loc_latitude")
-    private Double customerLatitude;
-
-    @Column(name = "cust_loc_longitude")
-    private Double customerLongitude;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customer/CustomerRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customer/CustomerRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,140 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customer;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerDto;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerFullDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface CustomerRepository extends JpaRepository<Customer, Long> {
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select cust.user_id as id,
-                           u.user_name as name,
-                           u.user_email as email,
-                           u.user_mobile as phone,
-                           cust.cust_edb as edb,
-                           cust.cust_company_name as compName,
-                           cust.cust_adr as address,
-                           cust.cust_representative_img
-                    from customer cust
-                    join users u on cust.user_id = u.user_id
-                    """
-    )
-    CustomerDto findCustomerById(@NonNull Long id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into customer(user_id, cust_edb, cust_company_name, cust_adr, cust_representative_img)
-                    values (?1,?2,?3,?4,?5)
-                    """
-    )
-    Integer create(
-            @NonNull Long id,
-            @NonNull String customerEDB,
-            @NonNull String customerName,
-            @NonNull String customerStreet,
-            @NonNull String customerImage);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update customer " +
-                    "set cust_edb=?2,cust_company_name=?3,cust_adr=?4,cust_representative_img=?5 " +
-                    "where user_id=?1"
-    )
-    Integer edit(
-            @NonNull Long id,
-            @NonNull String customerEDB,
-            @NonNull String customerName,
-            @NonNull String customerStreet,
-            @NonNull String customerImage);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from customer " +
-                    "where user_id=?1"
-    )
-    void delete(@NonNull Long id);
-
-    @Query(
-            value = """
-                    select cust.user_id
-                      from customer cust
-                      join users u on cust.user_id = u.user_id
-                     where u.user_email = ?1
-                    """,
-            nativeQuery = true
-    )
-    Long findCustomerIdByEmail(String email);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select u.user_id as id,
-                           u.user_name as firstName,
-                           u.user_surname as lastName,
-                           u.user_email as email,
-                           u.user_mobile as phone,
-                           u.user_image as image,
-                           cty.city_id as cityId,
-                           cty.city_name as cityName,
-                           r.region_name as regionName,
-                           u.user_role as role,
-                           u.clazz_ as clazz_,
-                           u.user_active as userActive,
-                           cust.cust_edb as edb,
-                           cust.cust_company_name as compName,
-                           cust.cust_adr as address,
-                           cust.cust_representative_img as representativeImg
-                    from customer cust
-                    join users u on cust.user_id = u.user_id
-                    join city cty on u.city_id = cty.city_id
-                    join region r on cty.region_id = r.region_id
-                    where u.user_email = ?1
-                    """
-    )
-    CustomerFullDto getCustomerProfile(String userEmail);
-
-    @Transactional
-    @Modifying
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update customer
-                    set cust_edb=:edb, cust_company_name=:compName, cust_representative_img=:repImg
-                    where user_id=:id
-                    """
-    )
-    void updateCustomer(
-            @Param(value = "id") Long id,
-            @Param(value = "edb") String edb,
-            @Param(value = "compName") String compName,
-            @Param(value = "repImg") String repImage);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update customer
-                    set cust_edb=:edb, cust_company_name=:compName
-                    where user_id=:id
-                    """
-    )
-    @Transactional
-    @Modifying
-    void updateCustomerDetails(
-            @Param(value = "id") Long id,
-            @Param(value = "edb") String edb,
-            @Param(value = "compName") String compName);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customer/CustomerService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customer/CustomerService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customer;
-
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerDto;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerFullDto;
-
-public interface CustomerService {
-
-    CustomerDto findCustomerById(Long id);
-
-    Integer create(CustomerDto customerDto);
-
-    Integer edit(CustomerDto customerDto);
-
-    void deleteById(Long id);
-
-    CustomerFullDto getCustomerProfile(String userEmail);
-
-    void updateCustomer(Long id, String edb, String compName, String repImage);
-
-    void updateCustomerDetails(Long id, String edb, String compName);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customer/CustomerServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customer/CustomerServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,72 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customer;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerDto;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerFullDto;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-@Service
-@RequiredArgsConstructor
-public class CustomerServiceImpl implements CustomerService {
-
-    private final CustomerRepository customerRepository;
-
-    @Override
-    public CustomerDto findCustomerById(Long id) {
-        return this.customerRepository.findCustomerById(id);
-    }
-
-    @Override
-    public Integer create(CustomerDto customerDto) {
-        return this.customerRepository.create(
-                customerDto.getId(),
-                customerDto.getEdb(),
-                customerDto.getCompName(),
-                customerDto.getAddress(),
-                customerDto.getRepImage());
-    }
-
-    @Override
-    @Transactional
-    public Integer edit(CustomerDto customerDto) {
-        return this.customerRepository.edit(
-                customerDto.getId(),
-                customerDto.getEdb(),
-                customerDto.getCompName(),
-                customerDto.getAddress(),
-                customerDto.getRepImage());
-    }
-
-    @Override
-    public void deleteById(Long id) {
-        this.customerRepository.delete(id);
-    }
-
-    @Override
-    public CustomerFullDto getCustomerProfile(String userEmail) {
-        return this.customerRepository.getCustomerProfile(userEmail);
-    }
-
-    @Override
-    @Transactional
-    public void updateCustomer(Long id, String edb, String compName, String repImage) {
-        this.customerRepository.updateCustomer(
-                id,
-                edb,
-                compName,
-                repImage
-        );
-    }
-
-    @Override
-    @Transactional
-    public void updateCustomerDetails(Long id, String edb, String compName) {
-        this.customerRepository.updateCustomerDetails(
-                id,
-                edb,
-                compName
-        );
-    }
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customer/dto/CustomerDashboardDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customer/dto/CustomerDashboardDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customer.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
-import mk.ukim.finki.db.distributorapp.proForma.dto.ProFormaDto;
-
-import java.util.List;
-
-@AllArgsConstructor
-@NoArgsConstructor
-@Data
-public class CustomerDashboardDto {
-    List<OrderSimpleDto> orders;
-    List<DeliveryDto> deliveries;
-    List<ProFormaDto> proFormas;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customer/dto/CustomerDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customer/dto/CustomerDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customer.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class CustomerDto {
-    private Long id;
-    private String name;
-    private String email;
-    private String phone;
-    private String edb;
-    private String compName;
-    private String address;
-    private String repImage;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customer/dto/CustomerFullDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customer/dto/CustomerFullDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customer.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class CustomerFullDto {
-    private Long id;
-    private String firstName;
-    private String lastName;
-    private String email;
-    private String phone;
-    private String image;
-    private Integer cityId;
-    private String cityName;
-    private String regionName;
-    private String role;
-    private String clazz_;
-    private Boolean userActive;
-    private String edb;
-    private String compName;
-    private String address;
-    private String repImage;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekday.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekday.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,40 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customerWeekday;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Getter;
-import lombok.Setter;
-import mk.ukim.finki.db.distributorapp.customer.Customer;
-import mk.ukim.finki.db.distributorapp.weekday.Weekday;
-
-import java.time.LocalTime;
-
-@Getter
-@Setter
-@Entity
-@Table(name = "customer_weekday")
-public class CustomerWeekday {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "cust_day_id", nullable = false)
-    private Long customerDayId;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "cust_id", nullable = false)
-    private Customer customer;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "day_id", nullable = false)
-    private Weekday day;
-
-    @NotNull
-    @Column(name = "start_time", nullable = false)
-    private LocalTime customerDayStartTime;
-
-    @NotNull
-    @Column(name = "end_time", nullable = false)
-    private LocalTime customerDayEndTime;
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekdayRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekdayRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,48 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customerWeekday;
-
-import lombok.NonNull;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalTime;
-
-public interface CustomerWeekdayRepository extends JpaRepository<CustomerWeekday, Long> {
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into customer_weekday(cust_id, day_id, start_time, end_time) " +
-                    "values (?1,?2,?3,?4)"
-    )
-    Integer create(
-            Long userId,
-            Short weekdayId,
-            LocalTime startTime,
-            LocalTime endTime);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update customer_weekday " +
-                    "set cust_id=?2,day_id=?3,start_time=?4,end_time=?5 " +
-                    "where cust_day_id=?1"
-    )
-    Integer edit(
-            Long custDayId,
-            Long userId,
-            Short weekdayId,
-            LocalTime startTime,
-            LocalTime endTime);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from customer_weekday where cust_day_id=?1"
-    )
-    void deleteById(@NonNull Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekdayService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekdayService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customerWeekday;
-
-import mk.ukim.finki.db.distributorapp.customerWeekday.dto.CustomerWeekdayDto;
-
-public interface CustomerWeekdayService {
-
-    Integer create(CustomerWeekdayDto customerWeekdayDto);
-
-    Integer edit(CustomerWeekdayDto customerWeekdayDto);
-
-    void deleteById(Long customerWeekdayId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekdayServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/CustomerWeekdayServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,37 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customerWeekday;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.customerWeekday.dto.CustomerWeekdayDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class CustomerWeekdayServiceImpl implements CustomerWeekdayService {
-    private final CustomerWeekdayRepository customerWeekdayRepository;
-
-    @Override
-    public Integer create(CustomerWeekdayDto customerWeekdayDto) {
-        return this.customerWeekdayRepository.create(
-                customerWeekdayDto.getCustomerId(),
-                customerWeekdayDto.getDayId(),
-                customerWeekdayDto.getDayStartTime(),
-                customerWeekdayDto.getDayEndTime()
-        );
-    }
-
-    @Override
-    public Integer edit(CustomerWeekdayDto customerWeekdayDto) {
-        return this.customerWeekdayRepository.edit(
-                customerWeekdayDto.getCustomerId(),
-                customerWeekdayDto.getCustomerId(),
-                customerWeekdayDto.getDayId(),
-                customerWeekdayDto.getDayStartTime(),
-                customerWeekdayDto.getDayEndTime()
-        );
-    }
-
-    @Override
-    public void deleteById(Long customerWeekdayId) {
-        this.customerWeekdayRepository.deleteById(customerWeekdayId);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/dto/CustomerWeekdayDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/customerWeekday/dto/CustomerWeekdayDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package mk.ukim.finki.db.distributorapp.customerWeekday.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.time.LocalTime;
-
-@Data
-@AllArgsConstructor
-public class CustomerWeekdayDto {
-    private Long id;
-    private Long customerId;
-    private String customerName;
-    private Short dayId;
-    private String dayName;
-    private LocalTime dayStartTime;
-    private LocalTime dayEndTime;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/Delivery.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/Delivery.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,55 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.deliveryStatus.DeliveryStatus;
-import mk.ukim.finki.db.distributorapp.order.Orders;
-import mk.ukim.finki.db.distributorapp.vehicle.Vehicle;
-
-import java.time.LocalTime;
-import java.util.Date;
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "delivery")
-public class Delivery {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "del_id")
-    private Long deliveryId;
-
-    @NotNull
-    @Column(name = "del_date_created", nullable = false)
-    private Date deliveryDateCreated;
-
-    @NotNull
-    @Column(name = "del_date", nullable = false)
-    private Date deliveryDate;
-
-    @Column(name = "del_start_km")
-    private Integer deliveryStartKm;
-
-    @Column(name = "del_end_km")
-    private Integer deliveryEndKm;
-
-    @Column(name = "del_start_time")
-    private LocalTime deliveryStartTime;
-
-    @Column(name = "del_end_time")
-    private LocalTime deliveryEndTime;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "d_status_id", nullable = false)
-    private DeliveryStatus deliveryStatus;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "veh_id", nullable = false)
-    private Vehicle vehicle;
-
-    @OneToMany(mappedBy = "delivery")
-    private List<Orders> orders;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/DeliveryRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/DeliveryRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,183 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryFullDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalTime;
-import java.util.Date;
-import java.util.List;
-
-public interface DeliveryRepository extends JpaRepository<Delivery, Long> {
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into delivery(del_date_created, del_date, del_start_km, del_end_km, del_start_time, del_end_time, d_status_id, veh_id)
-                    values (?1,?2,?3,?4,?5,?6,?7,?8)
-                    """
-    )
-    Integer create(
-            @NonNull Date del_date_created,
-            @NonNull Date del_date,
-            Integer del_start_km,
-            Integer del_end_km,
-            LocalTime del_start_time,
-            LocalTime del_end_time,
-            @NonNull Short del_status_id,
-            @NonNull Integer veh_id
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update delivery
-                    set del_date_created = ?2,del_date = ?3,del_start_km = ?4,del_end_km = ?5,del_start_time = ?6,del_end_time = ?7,d_status_id = ?8,veh_id = ?9
-                    where del_id = ?1
-                    """
-    )
-    Integer edit(
-            @NonNull Long id,
-            @NonNull Date del_date_created,
-            @NonNull Date del_date,
-            Integer del_start_km,
-            Integer del_end_km,
-            LocalTime del_start_time,
-            LocalTime del_end_time,
-            @NonNull Short del_status_id,
-            @NonNull Integer veh_id
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from delivery where del_id = ?1"
-    )
-    void delete(@NonNull Long id);
-
-    //------------------------------------------------------------------------------------------------------------------
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select del.del_id as id,
-                           del.del_date_created as dateCreated,
-                           del.del_date as deliveryDate,
-                           del.del_start_km as delStartKm,
-                           del.del_end_km as delEndKm,
-                           to_char(d.del_start_time, 'HH24:MI:22') as delStartTime,
-                           to_char(d.del_end_time, 'HH24:MI:SS') as delEndTime,
-                           del.d_status_id as dStatusId,
-                           ds.d_status_name as delStatus,
-                           v.veh_id as vehId,
-                           dr.user_id as driverId,
-                           u.user_name as driverName,
-                           u.user_image as driverImage
-                    from delivery del
-                        join orders o on o.del_id=del.del_id
-                        join delivery d on o.del_id = d.del_id
-                        join delivery_status ds on d.d_status_id=ds.d_status_id
-                        join vehicle v on v.veh_id=d.veh_id
-                        join driver dr on dr.veh_id=v.veh_id
-                        join users u on u.user_id=dr.user_id
-                    where o.cust_id=:customer and del.d_status_id <> 4;
-                    """
-    )
-    List<DeliveryDto> getCurrentDeliveriesByCustomer(@NonNull @Param("customer") Long customer_id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select d.del_id as id,
-                           d.del_date_created as dateCreated,
-                           d.del_date as deliveryDate,
-                           d.del_start_km as delStartKm,
-                           d.del_end_km as delEndKm,
-                           to_char(d.del_start_time, 'HH24:MI:22') as delStartTime,
-                           to_char(d.del_end_time, 'HH24:MI:SS') as delEndTime,
-                           d.d_status_id as dStatusId,
-                           ds.d_status_name as delStatus,
-                           v.veh_id as vehId,
-                           dr.user_id as driverId,
-                           u.user_name as driverName,
-                           u.user_image as driverImage
-                    from warehouse w
-                        join manager m on w.wh_id = m.wh_id
-                        join article_unit au on w.wh_id = au.wh_id
-                        join orders o on au.ord_id = o.ord_id
-                        join delivery d on o.del_id = d.del_id
-                        join delivery_status ds on d.d_status_id=ds.d_status_id
-                        join vehicle v on v.veh_id=d.veh_id
-                        join driver dr on dr.veh_id=v.veh_id
-                        join users u on u.user_id=dr.user_id
-                    where m.user_id=:manager and d.d_status_id<>4
-                    """
-    )
-    List<DeliveryDto> getCurrentDeliveriesByManager(@NonNull @Param("manager") Long manager_id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select del.del_id as deliveryId,
-                           u.user_name as driverName,
-                           del.del_date as deliveryDate,
-                           del.del_date_created as deliveryCreatedDate,
-                           del.d_status_id as deliveryStatus,
-                           ds.d_status_name as deliveryStatusName
-                    from delivery del
-                    join delivery_status ds on ds.d_status_id=del.d_status_id
-                    join vehicle v on del.veh_id = v.veh_id
-                    join driver d on d.veh_id = v.veh_id
-                    join users u on u.user_id=d.user_id
-                    where v.veh_id = ?1
-                    """
-    )
-    List<DeliverySimpleDto> getDeliveriesByVehicle(Integer vehicleId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select d.del_id as delId,
-                           d.del_date_created as delDateCreated,
-                           d.del_date as delDate,
-                           d.del_start_km as delStartKm,
-                           d.del_end_km as delEndKm,
-                           to_char(d.del_start_time, 'HH24:MI:22') as delStartTime,
-                           to_char(d.del_end_time, 'HH24:MI:SS') as delEndTime,
-                           d.d_status_id as delStatusId,
-                           d.veh_id as veh_id
-                    from delivery d
-                    where d.del_id = ?1
-                    """
-    )
-    DeliveryFullDto findDeliveryDtoById(@Param("id") Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select del.del_id as deliveryid,
-                        u.user_name as driverName,
-                        del.del_date as deliveryDate,
-                        del.del_date_created as deliveryCreatedDate,
-                        del.d_status_id as deliveryStatus,
-                        ds.d_status_name as deliveryStatusName
-                    from delivery del
-                        join vehicle v on v.veh_id=del.veh_id
-                        join driver d on v.veh_id = d.veh_id
-                        join users u on d.user_id = u.user_id
-                        join delivery_status ds on ds.d_status_id=del.d_status_id
-                    where del.del_id = :delivery
-                    """
-    )
-    List<DeliverySimpleDto> getPendingDeliveriesByManager(@Param("delivery") Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/DeliveryService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/DeliveryService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,27 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery;
-
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryCreateDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryFullDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-
-import java.util.List;
-
-public interface DeliveryService {
-
-    DeliveryFullDto findDeliveryById(Long id);
-
-    Integer create(DeliveryCreateDto deliveryDto);
-
-    Integer edit(DeliveryFullDto deliveryDto);
-
-    void deleteById(Long del_id);
-
-    List<DeliveryDto> getCurrentDeliveriesByCustomer(Long customerId);
-
-    List<DeliveryDto> getCurrentDeliveriesByManager(Long managerId);
-
-    List<DeliverySimpleDto> getDeliveriesByVehicle(Integer vehicleId);
-
-    List<DeliverySimpleDto> getPendingDeliveriesByManager(Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/DeliveryServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/DeliveryServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,77 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryCreateDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryFullDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import org.springframework.stereotype.Service;
-
-import java.util.Date;
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class DeliveryServiceImpl implements DeliveryService {
-    private final DeliveryRepository deliveryRepository;
-
-    @Override
-    public DeliveryFullDto findDeliveryById(Long id) {
-        return this.deliveryRepository.findDeliveryDtoById(id);
-    }
-
-    @Override
-    public Integer create(DeliveryCreateDto deliveryDto) {
-        Date currentDate = new Date();
-        return this.deliveryRepository.create(
-                currentDate,
-                deliveryDto.getDelDate(),
-                null,
-                null,
-                null,
-                null,
-                (short) 1,
-                deliveryDto.getVehId()
-        );
-    }
-
-    @Override
-    public Integer edit(DeliveryFullDto deliveryDto) {
-        return this.deliveryRepository.edit(
-                deliveryDto.getDelId(),
-                deliveryDto.getDelDateCreated(),
-                deliveryDto.getDelDate(),
-                deliveryDto.getDelStartKm(),
-                deliveryDto.getDelEndKm(),
-                deliveryDto.getParsedDelStartTime(),
-                deliveryDto.getParsedDelEndTime(),
-                deliveryDto.getDelStatusId(),
-                deliveryDto.getVeh_id()
-        );
-    }
-
-    @Override
-    public void deleteById(Long del_id) {
-        this.deliveryRepository.delete(del_id);
-    }
-
-    @Override
-    public List<DeliveryDto> getCurrentDeliveriesByCustomer(Long customerId) {
-        return this.deliveryRepository.getCurrentDeliveriesByCustomer(customerId);
-    }
-
-    @Override
-    public List<DeliveryDto> getCurrentDeliveriesByManager(Long managerId) {
-        return this.deliveryRepository.getCurrentDeliveriesByManager(managerId);
-    }
-
-    @Override
-    public List<DeliverySimpleDto> getDeliveriesByVehicle(Integer vehicleId) {
-        return this.deliveryRepository.getDeliveriesByVehicle(vehicleId);
-    }
-
-    @Override
-    public List<DeliverySimpleDto> getPendingDeliveriesByManager(Long id) {
-        return this.deliveryRepository.getPendingDeliveriesByManager(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryCreateDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryCreateDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DeliveryCreateDto {
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date delDate;
-    private Integer vehId;
-    private List<Long> orders;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.time.LocalTime;
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-public class DeliveryDto {
-    private Long id;
-    private Date dateCreated;
-    private Date delDate;
-    private Integer delStartKm;
-    private Integer delEndKm;
-
-    private String delStartTime;
-    private String delEndTime;
-
-    private Short dStatusId;
-    private String delStatus;
-    private Integer vehId;
-    private Long driverId;
-    private String driverName;
-    private String driverImg;
-
-
-    public LocalTime getParsedDelStartTime() {
-        return delStartTime != null ? LocalTime.parse(delStartTime) : null;
-    }
-
-    public LocalTime getParsedDelEndTime() {
-        return delEndTime != null ? LocalTime.parse(delEndTime) : null;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryEndDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryEndDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DeliveryEndDto {
-    private Long id;
-    private Integer delEndKm;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryFullDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryFullDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalTime;
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DeliveryFullDto {
-    private Long delId;
-    private Date delDateCreated;
-    private Date delDate;
-    private Integer delStartKm;
-    private Integer delEndKm;
-
-    private String delStartTime;
-    private String delEndTime;
-
-    private Short delStatusId;
-    private Integer veh_id;
-
-    public LocalTime getParsedDelStartTime() {
-        return delStartTime != null ? LocalTime.parse(delStartTime) : null;
-    }
-
-    public LocalTime getParsedDelEndTime() {
-        return delEndTime != null ? LocalTime.parse(delEndTime) : null;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliverySimpleDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliverySimpleDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DeliverySimpleDto {
-    private Long deliveryId;
-    private String driverName;
-    private Date deliveryDate;
-    private Date deliveryCreatedDate;
-    private Short deliveryStatus;
-    private String deliveryStatusName;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryStartDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryStartDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DeliveryStartDto {
-    private Long id;
-    private Integer delStartKm;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryWithOrdersDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/delivery/dto/DeliveryWithOrdersDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp.delivery.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.order.dto.OrdersDeliveryDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrdersDto;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DeliveryWithOrdersDto {
-    DeliveryFullDto delivery;
-    List<OrdersDeliveryDto> orders;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatus.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatus.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.db.distributorapp.deliveryStatus;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.delivery.Delivery;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "delivery_status")
-public class DeliveryStatus {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "d_status_id")
-    private Short deliveryStatusId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "d_status_name", nullable = false)
-    private String deliveryStatusName;
-
-    @NotNull
-    @Column(name = "d_status_desc", nullable = false)
-    private String deliveryStatusDescription;
-
-    @OneToMany(mappedBy = "deliveryStatus")
-    private List<Delivery> deliveries;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatusRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatusRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,37 +1,0 @@
-package mk.ukim.finki.db.distributorapp.deliveryStatus;
-
-import lombok.NonNull;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface DeliveryStatusRepository extends JpaRepository<DeliveryStatus, Short> {
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into delivery_status(d_status_name, d_status_desc) " +
-                    "values (?1,?2)"
-    )
-    Integer create(@NonNull String name, @NonNull String description);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update delivery_status " +
-                    "set d_status_name=?2,d_status_desc=?3 " +
-                    "where d_status_id=?1"
-    )
-    Integer edit(@NonNull Short id, @NonNull String name, @NonNull String description);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from delivery_status where d_status_id=?1"
-    )
-    void delete(@NonNull Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatusService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatusService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.deliveryStatus;
-
-import mk.ukim.finki.db.distributorapp.deliveryStatus.dto.DeliveryStatusDto;
-
-public interface DeliveryStatusService {
-
-    Integer create(DeliveryStatusDto deliveryStatusDto);
-
-    Integer edit(DeliveryStatusDto deliveryStatusDto);
-
-    void deleteById(Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatusServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/DeliveryStatusServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.db.distributorapp.deliveryStatus;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.deliveryStatus.dto.DeliveryStatusDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class DeliveryStatusServiceImpl implements DeliveryStatusService {
-    private final DeliveryStatusRepository deliveryStatusRepository;
-
-    @Override
-    public Integer create(DeliveryStatusDto deliveryStatusDto) {
-        return this.deliveryStatusRepository.create(
-                deliveryStatusDto.getStatusName(),
-                deliveryStatusDto.getStatusDescription());
-    }
-
-    @Override
-    public Integer edit(DeliveryStatusDto deliveryStatusDto) {
-        return this.deliveryStatusRepository.edit(
-                deliveryStatusDto.getId(),
-                deliveryStatusDto.getStatusName(),
-                deliveryStatusDto.getStatusDescription());
-    }
-
-    @Override
-    public void deleteById(Short id) {
-        this.deliveryStatusRepository.delete(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/dto/DeliveryStatusDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/deliveryStatus/dto/DeliveryStatusDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.deliveryStatus.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class DeliveryStatusDto {
-    private Short id;
-    private String statusName;
-    private String statusDescription;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/discount/Discount.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/discount/Discount.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.db.distributorapp.discount;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.proForma.ProForma;
-
-@Entity
-@Data
-public class Discount {
-    @Id
-    @GeneratedValue(strategy= GenerationType.IDENTITY)
-    private Long discountId;
-
-    @NotNull
-    @Column(name = "dsc_amount", nullable = false)
-    private Integer discountAmount;
-
-    @OneToOne(mappedBy="discount")
-    private ProForma proForma;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/discount/DiscountRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/discount/DiscountRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,48 +1,0 @@
-package mk.ukim.finki.db.distributorapp.discount;
-
-import jakarta.transaction.Transactional;
-import jakarta.validation.constraints.NotNull;
-import lombok.NonNull;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface DiscountRepository extends JpaRepository<Discount, Long> {
-
-    @Modifying
-    @Transactional
-    @Query(nativeQuery = true,
-            value = """
-                    insert into discount(dsc_amount)
-                    values (:discountAmount)
-                    """)
-    Integer create(
-            @NotNull @Param("discountAmount") Integer discountAmount);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update discount
-                    set dsc_amount=:discountAmount
-                    where dsc_id=:id
-                    """)
-    Integer edit(
-            @NotNull @Param("id") Long id,
-            @NotNull @Param("discountAmount") Integer discountAmount
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    delete from discount where dsc_id=:dsc_id
-                    """
-    )
-    void delete(@NonNull @Param("dsc_id") Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/discount/DiscountService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/discount/DiscountService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,10 +1,0 @@
-package mk.ukim.finki.db.distributorapp.discount;
-
-import mk.ukim.finki.db.distributorapp.discount.dto.DiscountDto;
-import org.springframework.stereotype.Service;
-
-public interface DiscountService {
-    Integer create(DiscountDto discountDto);
-    Integer edit(DiscountDto discountDto);
-    void deleteById(Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/discount/dto/DiscountDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/discount/dto/DiscountDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package mk.ukim.finki.db.distributorapp.discount.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DiscountDto {
-    private Long discountId;
-    private Integer discountAmount;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/driver/Driver.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/driver/Driver.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.db.distributorapp.driver;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import mk.ukim.finki.db.distributorapp.users.User;
-import mk.ukim.finki.db.distributorapp.vehicle.Vehicle;
-
-@EqualsAndHashCode(callSuper = true)
-@Entity
-@Data
-@Table(name = "driver")
-@DiscriminatorValue("DRIVER")
-@PrimaryKeyJoinColumn(name = "user_id")
-public class Driver extends User {
-    @NotNull
-    @OneToOne
-    @JoinColumn(name = "veh_id", nullable = false)
-    private Vehicle vehicle;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/driver/DriverRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/driver/DriverRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,138 +1,0 @@
-package mk.ukim.finki.db.distributorapp.driver;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface DriverRepository extends JpaRepository<Driver, Long> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into driver(user_id, veh_id) " +
-                    "values (?1,?2)"
-    )
-    Integer create(
-            @NonNull Long usr_id,
-            @NonNull Integer veh_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update driver " +
-                    "set veh_id=?2 " +
-                    "where user_id=?1"
-    )
-    Integer edit(
-            @NonNull Long usr_id,
-            @NonNull Integer veh_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from driver where user_id=?1"
-    )
-    void delete(@NonNull Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select d.user_id as id,
-                           u.user_name as name,
-                           u.user_email as email,
-                           u.user_mobile as phone,
-                           u.user_image as image,
-                           d.veh_id as vehId
-                    from driver d
-                    join users u on d.user_id = u.user_id
-                    where d.user_id = :id
-                    """
-    )
-    DriverDto findDriverById(@NonNull @Param("id") Long id);
-
-    //    ---------------Dashboard queries------------------------------------------
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select del.del_id as deliveryId,
-                           u.user_name as driverName,
-                           del.del_date as deliveryDate,
-                           del.del_date_created as deliveryCreatedDate,
-                           del.d_status_id as deliveryStatus,
-                           ds.d_status_name as deliveryStatusName
-                    from delivery del
-                    join delivery_status ds on del.d_status_id = ds.d_status_id
-                    join vehicle v on del.veh_id = v.veh_id
-                    join driver d on v.veh_id = d.veh_id
-                    join users u on u.user_id = d.user_id
-                    where d.user_id = ?1 and del.d_status_id = 1
-                    """
-    )
-    List<DeliverySimpleDto> activeAssignedDeliveries(@NonNull Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select del.del_id as deliveryId,
-                           u.user_name as driverName,
-                           del.del_date as deliveryDate,
-                           del.del_date_created as deliveryCreatedDate,
-                           del.d_status_id as deliveryStatus,
-                           ds.d_status_name as deliveryStatusName
-                    from delivery del
-                    join delivery_status ds on del.d_status_id = ds.d_status_id
-                    join vehicle v on del.veh_id = v.veh_id
-                    join driver d on v.veh_id = d.veh_id
-                    join users u on u.user_id = d.user_id
-                    where d.user_id = ?1 and del.d_status_id not between 1 and 3
-                    """
-    )
-    List<DeliverySimpleDto> finishedAssignedDeliveries(@NonNull Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select del.del_id as deliveryId,
-                           u.user_name as driverName,
-                           del.del_date as deliveryDate,
-                           del.del_date_created as deliveryCreatedDate,
-                           del.d_status_id as deliveryStatus,
-                           ds.d_status_name as deliveryStatusName
-                    from delivery del
-                    join delivery_status ds on del.d_status_id = ds.d_status_id
-                    join vehicle v on del.veh_id = v.veh_id
-                    join driver d on v.veh_id = d.veh_id
-                    join users u on u.user_id = d.user_id
-                    where d.user_id = ?1 and del.d_status_id = 3
-                    """
-    )
-    List<DeliverySimpleDto> getOngoingDeliveries(@NonNull Long driverId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select d.user_id as id,
-                           u.user_name as name,
-                           u.user_email as email,
-                           u.user_mobile as phone,
-                           u.user_image as image,
-                           d.veh_id as vehId
-                    from driver d
-                    join users u on d.user_id = u.user_id
-                    join vehicle v on d.veh_id = v.veh_id
-                    join warehouse wh on v.wh_id=wh.wh_id
-                    join manager m on wh.wh_id = m.wh_id
-                    where m.user_id = :id
-                    """
-    )
-    List<DriverDto> listAllDriversForManager(Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/driver/DriverService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/driver/DriverService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.db.distributorapp.driver;
-
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryEndDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryStartDto;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-
-import java.util.List;
-
-public interface DriverService {
-
-    DriverDto findById(Long id);
-
-    Integer create(DriverDto driverDto);
-
-    Integer edit(DriverDto driverDto);
-
-    void deleteById(Long id);
-
-    List<DeliverySimpleDto> getNewAssignedDeliveries(Long driverId);
-
-    List<DeliverySimpleDto> getFinishedAssignedDeliveries(Long driverId);
-
-    void startDelivery(DeliveryStartDto delivery);
-
-    List<DeliverySimpleDto> getOngoingDeliveries(Long driverId);
-
-    void endDelivery(DeliveryEndDto delivery);
-
-    List<DriverDto> listAllDriversForManager(Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/driver/DriverServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/driver/DriverServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,91 +1,0 @@
-package mk.ukim.finki.db.distributorapp.driver;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryEndDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryFullDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliveryStartDto;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-import mk.ukim.finki.db.distributorapp.delivery.DeliveryService;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class DriverServiceImpl implements DriverService {
-    private final DriverRepository driverRepository;
-    private final DeliveryService deliveryService;
-
-    @Override
-    public DriverDto findById(Long id) {
-        return this.driverRepository.findDriverById(id);
-    }
-
-    @Override
-    public Integer create(DriverDto driverDto) {
-        return this.driverRepository.create(
-                driverDto.getId(),
-                driverDto.getVehId());
-    }
-
-    @Override
-    public Integer edit(DriverDto driverDto) {
-        return this.driverRepository.edit(
-                driverDto.getId(),
-                driverDto.getVehId()
-        );
-    }
-
-    @Override
-    public void deleteById(Long id) {
-        this.driverRepository.deleteById(id);
-    }
-
-    @Override
-    public List<DeliverySimpleDto> getNewAssignedDeliveries(Long driverId) {
-        return this.driverRepository.activeAssignedDeliveries(driverId);
-    }
-
-    @Override
-    public List<DeliverySimpleDto> getFinishedAssignedDeliveries(Long driverId) {
-        return this.driverRepository.finishedAssignedDeliveries(driverId);
-    }
-
-    @Override
-    public List<DeliverySimpleDto> getOngoingDeliveries(Long driverId) {
-        return this.driverRepository.getOngoingDeliveries(driverId);
-    }
-
-    @Override
-    @Transactional
-    public void startDelivery(DeliveryStartDto delivery) {
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
-
-        DeliveryFullDto deliveryDto = this.deliveryService.findDeliveryById(delivery.getId());
-        deliveryDto.setDelStartKm(delivery.getDelStartKm());
-        deliveryDto.setDelStartTime(LocalTime.now().format(formatter));
-        deliveryDto.setDelStatusId((short) 3);
-        this.deliveryService.edit(deliveryDto);
-    }
-
-    @Override
-    @Transactional
-    public void endDelivery(DeliveryEndDto delivery) {
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
-
-        DeliveryFullDto deliveryDto = this.deliveryService.findDeliveryById(delivery.getId());
-        deliveryDto.setDelEndKm(delivery.getDelEndKm());
-        deliveryDto.setDelEndTime(LocalTime.now().format(formatter));
-        deliveryDto.setDelStatusId((short) 4);
-        this.deliveryService.edit(deliveryDto);
-    }
-
-    @Override
-    public List<DriverDto> listAllDriversForManager(Long id) {
-        return this.driverRepository.listAllDriversForManager(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/driver/dto/CreateDriverDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/driver/dto/CreateDriverDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package mk.ukim.finki.db.distributorapp.driver.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class CreateDriverDto {
-    private String name;
-    private String surname;
-    private String password;
-    private String repeatedPassword;
-    private String email;
-    private String mobile;
-    private String profileImage;
-    private Integer city;
-    private Integer vehicle;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/driver/dto/DriverDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/driver/dto/DriverDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp.driver.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DriverDto {
-    private Long id;
-    private String name;
-    private String email;
-    private String phone;
-    private String image;
-    private Integer vehId;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStore.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStore.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,27 +1,0 @@
-package mk.ukim.finki.db.distributorapp.imageStore;
-
-import jakarta.persistence.*;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Entity
-@Table(name = "image_store")
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-public class ImageStore {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
-
-    @Column(name = "img_path", nullable = false)
-    private String imgPath;
-
-    @Column(name = "img_ent_type", nullable = false)
-    private String imgEntType;
-
-    @Column(name = "img_ent_id", nullable = false)
-    private Long imgEntId;
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStoreRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStoreRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,43 +1,0 @@
-package mk.ukim.finki.db.distributorapp.imageStore;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.imageStore.dto.ImageStoreDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-@Repository
-public interface ImageStoreRepository extends JpaRepository<ImageStore, Long> {
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select *
-                    from image_store
-                    where img_ent_type like :ent_type and img_ent_id=:ent_id
-                    """
-    )
-    List<ImageStoreDto> findByImgEntTypeAndImgEntId(
-            @NonNull @Param(value = "ent_type") String entType,
-            @NonNull @Param(value = "ent_id") Long entId);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into image_store(img_path,img_ent_type,img_ent_id) 
-                    values (:imgPath, :entType, :entId)
-                    """
-    )
-    Integer create(
-            @NonNull @Param(value = "imgPath") String imgPath,
-            @NonNull @Param(value = "entType") String imgEntType,
-            @NonNull @Param(value = "entId") Long imgEntId
-    );
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStoreService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStoreService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package mk.ukim.finki.db.distributorapp.imageStore;
-
-import mk.ukim.finki.db.distributorapp.imageStore.dto.ImageStoreDto;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.util.List;
-
-public interface ImageStoreService {
-
-    Integer storeAndCompress(MultipartFile file, String entType, Long entId) throws IOException;
-
-    List<ImageStoreDto>  findByImgEntTypeAndImgEntId(String entType, Long entId);
-
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStoreServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/imageStore/ImageStoreServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,70 +1,0 @@
-package mk.ukim.finki.db.distributorapp.imageStore;
-
-import jakarta.transaction.Transactional;
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.imageStore.dto.ImageStoreDto;
-import net.coobird.thumbnailator.Thumbnails;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.UUID;
-
-@Service
-@RequiredArgsConstructor
-public class ImageStoreServiceImpl implements ImageStoreService {
-
-    private final ImageStoreRepository imageStoreRepository;
-
-    @Value(value = "${app.upload.dir:${user.home}/resources/upload")
-    private String uploadDir;
-
-    @Value(value = "${app.image.url.prefix:/images/}")
-    private String imageUrlPrefix;
-
-    @Override
-    @Transactional
-    public Integer storeAndCompress(MultipartFile file, String entType, Long entId) throws IOException {
-        String original = file.getOriginalFilename();
-        String ext = "";
-
-        if(original!=null&&original.contains(".")){
-            ext=original.substring(original.lastIndexOf(".")+1);
-        }
-
-        String randomName = UUID.randomUUID() +ext;
-
-        Path uploadPath = Paths.get(uploadDir);
-        if(!Files.exists(uploadPath)){
-            Files.createDirectories(uploadPath);
-        }
-
-        Path fullOutputPath = uploadPath.resolve(randomName);
-        Thumbnails.of(file.getInputStream())
-                .size(800,800)
-                .outputQuality(0.8)
-                .toFile(fullOutputPath.toFile());
-
-        String publicPath = imageUrlPrefix+randomName;
-        ImageStore record = new ImageStore();
-        record.setImgPath(publicPath);
-        record.setImgEntType(entType);
-        record.setImgEntId(entId);
-
-        return imageStoreRepository.create(
-                record.getImgPath(),
-                record.getImgEntType(),
-                record.getImgEntId()
-        );
-    }
-
-    @Override
-    public List<ImageStoreDto> findByImgEntTypeAndImgEntId(String entType, Long entId) {
-        return this.imageStoreRepository.findByImgEntTypeAndImgEntId(entType, entId);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/imageStore/dto/ImageStoreDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/imageStore/dto/ImageStoreDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package mk.ukim.finki.db.distributorapp.imageStore.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-public class ImageStoreDto {
-    private Long id;
-    private String imgPath;
-    private String imgEntType;
-    private String imgEntId;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manager/Manager.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manager/Manager.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manager;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import mk.ukim.finki.db.distributorapp.users.User;
-import mk.ukim.finki.db.distributorapp.warehouse.Warehouse;
-
-@EqualsAndHashCode(callSuper = true)
-@Entity
-@Data
-@Table(name = "manager")
-@DiscriminatorValue("MANAGER")
-@PrimaryKeyJoinColumn(name = "user_id")
-public class Manager extends User {
-    @NotNull
-    @OneToOne
-    @JoinColumn(name = "wh_id", nullable = false, unique = true)
-    private Warehouse warehouse;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manager/ManagerRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manager/ManagerRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,63 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manager;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.manager.dto.ManagerDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface ManagerRepository extends JpaRepository<Manager, Integer> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into manager(user_id, wh_id) " +
-                    "values (?1,?2)"
-    )
-    Integer create(
-            @NonNull Long id,
-            @NonNull Integer whId);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update manager " +
-                    "set wh_id=?2 " +
-                    "where user_id=?1"
-    )
-    Integer edit(
-            @NonNull Long id,
-            @NonNull Integer whId);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from manager where user_id=?1"
-    )
-    void delete(@NonNull Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select m.user_id as id,
-                        u.user_name as name,
-                        u.user_email as email,
-                        u.user_mobile as phone,
-                        u.user_image as image,
-                        m.wh_id as whId,
-                        r.region_name as whRegion,
-                        c.city_name as whCity
-                    from manager m
-                        join users u on u.user_id=m.user_id
-                        join warehouse wh on m.wh_id=wh.wh_id
-                        join city c on wh.city_id=c.city_id
-                        join region r on c.region_id=r.region_id
-                    where m.user_id = :managerId
-                    """
-    )
-    ManagerDto getMangerDtoById(@Param("managerId") Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manager/ManagerService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manager/ManagerService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manager;
-
-import mk.ukim.finki.db.distributorapp.manager.dto.ManagerDto;
-
-public interface ManagerService {
-
-    Integer create(ManagerDto managerDto);
-
-    Integer edit(ManagerDto managerDto);
-
-    void deleteById(Long id);
-
-    ManagerDto getById(Long id);
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manager/ManagerServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manager/ManagerServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,37 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manager;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.manager.dto.ManagerDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class ManagerServiceImpl implements ManagerService {
-    private final ManagerRepository managerRepository;
-
-    @Override
-    public Integer create(ManagerDto managerDto) {
-        return this.managerRepository.create(
-                managerDto.getId(),
-                managerDto.getWhId()
-        );
-    }
-
-    @Override
-    public Integer edit(ManagerDto managerDto) {
-        return this.managerRepository.edit(
-                managerDto.getId(),
-                managerDto.getWhId()
-        );
-    }
-
-    @Override
-    public void deleteById(Long id) {
-        this.managerRepository.delete(id);
-    }
-
-    @Override
-    public ManagerDto getById(Long managerId) {
-        return this.managerRepository.getMangerDtoById(managerId);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manager/dto/CreateManagerDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manager/dto/CreateManagerDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manager.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class CreateManagerDto {
-    private String name;
-    private String surname;
-    private String password;
-    private String repeatedPassword;
-    private String email;
-    private String mobile;
-    private String profileImage;
-    private Integer city;
-    private Integer warehouseId;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manager/dto/ManagerDashboardDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manager/dto/ManagerDashboardDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manager.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.delivery.dto.DeliverySimpleDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class ManagerDashboardDto {
-    private List<OrderSimpleDto> newOrders;
-    private List<DeliverySimpleDto> pendingDeliveries;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manager/dto/ManagerDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manager/dto/ManagerDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manager.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class ManagerDto {
-    private Long id;
-    private String name;
-    private String email;
-    private String phone;
-    private String image;
-    private Integer whId;
-    private String whRegion;
-    private String whCity;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manufacturer/Manufacturer.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manufacturer/Manufacturer.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manufacturer;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.article.Article;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "manufacturer")
-public class Manufacturer {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "man_id")
-    private Long manufacturerId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "man_name", nullable = false)
-    private String manufacturerName;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "man_adr", nullable = false)
-    private String manufacturerAddress;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "man_mobile", nullable = false)
-    private String manufacturerMobile;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "man_email", nullable = false)
-    private String manufacturerEmail;
-
-    @OneToMany(mappedBy = "manufacturer")
-    private List<Article> articles;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manufacturer/ManufacturerRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manufacturer/ManufacturerRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,65 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manufacturer;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.manufacturer.dto.ManufacturerDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface ManufacturerRepository extends JpaRepository<Manufacturer, Long> {
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select m.man_id as id,
-                           m.man_name as name,
-                           m.man_adr as address,
-                           m.man_mobile as phone,
-                           m.man_email as email
-                    from manufacturer m
-                    """
-    )
-    List<ManufacturerDto> listAll();
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into manufacturer(man_name, man_adr, man_mobile, man_email)
-                    values (?1,?2,?3,?4)
-                    """
-    )
-    Integer create(
-            @NonNull String name,
-            @NonNull String address,
-            @NonNull String mobile,
-            @NonNull String email);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update manufacturer
-                    set man_name=?2,man_adr=?3,man_mobile=?4,man_email=?5
-                    where man_id=?1
-                    """
-    )
-    Integer edit(
-            @NonNull Long id,
-            @NonNull String name,
-            @NonNull String address,
-            @NonNull String mobile,
-            @NonNull String email);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from manufacturer where man_id=?1"
-    )
-    void delete(@NonNull Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manufacturer/ManufacturerService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manufacturer/ManufacturerService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manufacturer;
-
-import mk.ukim.finki.db.distributorapp.manufacturer.dto.ManufacturerDto;
-
-import java.util.List;
-
-public interface ManufacturerService {
-    List<ManufacturerDto> getAllManufacturers();
-
-    Integer create(ManufacturerDto manufacturerDto);
-
-    Integer edit(ManufacturerDto manufacturerDto);
-
-    void deleteById(Long id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manufacturer/ManufacturerServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manufacturer/ManufacturerServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manufacturer;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.manufacturer.dto.ManufacturerDto;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class ManufacturerServiceImpl implements ManufacturerService {
-    private final ManufacturerRepository manufacturerRepository;
-
-    @Override
-    public List<ManufacturerDto> getAllManufacturers() {
-        return this.manufacturerRepository.listAll();
-    }
-
-    @Override
-    public Integer create(ManufacturerDto manufacturerDto) {
-        return this.manufacturerRepository.create(
-                manufacturerDto.getName(),
-                manufacturerDto.getAddress(),
-                manufacturerDto.getPhone(),
-                manufacturerDto.getEmail());
-    }
-
-    @Override
-    public Integer edit(ManufacturerDto manufacturerDto) {
-        return this.manufacturerRepository.edit(
-                manufacturerDto.getId(),
-                manufacturerDto.getName(),
-                manufacturerDto.getAddress(),
-                manufacturerDto.getPhone(),
-                manufacturerDto.getEmail());
-    }
-
-    @Override
-    public void deleteById(Long id) {
-
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/manufacturer/dto/ManufacturerDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/manufacturer/dto/ManufacturerDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package mk.ukim.finki.db.distributorapp.manufacturer.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class ManufacturerDto {
-    private Long id;
-    private String name;
-    private String address;
-    private String phone;
-    private String email;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/Orders.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/Orders.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,59 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.articleUnit.ArticleUnit;
-import mk.ukim.finki.db.distributorapp.customer.Customer;
-import mk.ukim.finki.db.distributorapp.delivery.Delivery;
-import mk.ukim.finki.db.distributorapp.orderStatus.OrderStatus;
-import mk.ukim.finki.db.distributorapp.proForma.ProForma;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "orders")
-public class Orders {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "ord_id", nullable = false)
-    private Long orderId;
-
-    @NotNull
-    @Column(name = "ord_date", nullable = false)
-    private LocalDate orderDate;
-
-    @NotNull
-    @Column(name = "ord_sum", nullable = false)
-    private Integer orderSum;
-
-    @Column(name = "ord_fulfillment_date")
-    private LocalDateTime orderFulfillmentDate;
-
-    @Column(name = "ord_comment")
-    private String orderComment;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "o_status_id", nullable = false)
-    private OrderStatus orderStatus;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "cust_id", nullable = false)
-    private Customer customer;
-
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "del_id", nullable = false)
-    private Delivery delivery;
-
-    @OneToOne
-    @JoinColumn(name = "pf_id", nullable = false, unique = true)
-    private ProForma proForma;
-
-    @OneToMany(mappedBy = "order")
-    private List<ArticleUnit> articleUnits;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/OrdersRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,312 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.order.dto.OrderSimpleDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrdersDeliveryDto;
-import mk.ukim.finki.db.distributorapp.order.dto.OrdersDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.List;
-
-public interface OrdersRepository extends JpaRepository<Orders, Long> {
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           os.o_status_name as statusName,
-                           o.cust_id as customerId,
-                           c.cust_company_name as customerName,
-                           u.user_mobile as customerPhone,
-                           u.user_email as customerEmail,
-                           o.del_id as deliveryId,
-                           d.user_id as driverId,
-                           u1.user_name as driverName,
-                           u1.user_mobile as driverPhone,
-                           u1.user_email as driverEmail,
-                           o.pf_id as pfId,
-                           pfs.pf_status_name as pfStatus
-                    from orders o
-                    join order_status os on o.o_status_id = os.o_status_id
-                    join customer c on c.user_id=o.cust_id
-                    join users u on c.user_id=u.user_id
-                    join delivery del on o.del_id = del.del_id
-                    join vehicle v on del.veh_id = v.veh_id
-                    join driver d on d.veh_id=v.veh_id
-                    join users u1 on d.user_id=u1.user_id
-                    join pro_forma pf on o.pf_id = pf.pf_id
-                    join pro_forma_status pfs on pfs.pf_status_id=pf.pf_status_id
-                    """
-    )
-    List<OrdersDto> listAll();
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           os.o_status_name as statusName,
-                           o.cust_id as customerId,
-                           c.cust_company_name as customerName,
-                           u.user_mobile as customerPhone,
-                           u.user_email as customerEmail,
-                           del.del_id as deliveryId,
-                           d.user_id as driverId,
-                           u1.user_name as driverName,
-                           u1.user_mobile as driverPhone,
-                           u1.user_email as driverEmail,
-                           pf.pf_id as pfId,
-                           pfs.pf_status_name as pfStatus
-                    from orders o
-                    join order_status os on o.o_status_id = os.o_status_id
-                    join customer c on o.cust_id = c.user_id
-                    join users u on c.user_id = u.user_id
-                    join delivery del on o.del_id = del.del_id
-                    join vehicle v on del.veh_id = v.veh_id
-                    join driver d on d.veh_id=v.veh_id
-                    join users u1 on d.user_id=u1.user_id
-                    join pro_forma pf on o.pf_id = pf.pf_id
-                    join pro_forma_status pfs on pfs.pf_status_id=pf.pf_status_id
-                    where o.cust_id = ?1
-                    """
-    )
-    List<OrdersDto> findOrdersByCustomer(@NonNull Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           o.cust_id as customerId,
-                           o.del_id as deliveryId,
-                           o.pf_id as pfId
-                    from orders o
-                    where o.cust_id = ?1
-                    """
-    )
-    List<OrderSimpleDto> findSimpleOrdersByCustomer(@NonNull Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = "select * from orders where ord_id=?1"
-    )
-    OrdersDto findOrderById(@NonNull Long id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into orders (ord_date, ord_sum, ord_fulfillment_date, ord_comment, o_status_id, cust_id, del_id, pf_id)
-                    values (?1,?2,?3,?4,?5,?6,?7,?8)
-                    """
-    )
-    Integer create(
-            @NonNull LocalDate ord_date,
-            @NonNull Integer ord_sum,
-            LocalDateTime ord_fulfillment_date,
-            String ord_comment,
-            @NonNull Short ord_status_id,
-            @NonNull Long cust_id,
-            Long del_id,
-            Long pf_id
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update orders
-                    set ord_date=?2,ord_sum=?3,ord_fulfillment_date=?4,ord_comment=?5,o_status_id=?6,cust_id=?7,del_id=?8,pf_id=?9
-                    where ord_id=?1
-                    """
-    )
-    Integer edit(
-            @NonNull Long id,
-            @NonNull LocalDate ord_date,
-            @NonNull Integer ord_sum,
-            LocalDateTime ord_fulfillment_date,
-            String ord_comment,
-            @NonNull Short ord_status_id,
-            @NonNull Long cust_id,
-            @NonNull Long del_id,
-            @NonNull Long pf_id
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from orders where ord_id=?1"
-    )
-    void delete(@NonNull Long id);
-    //----------------------------------------------------------------------------------------------------------------------------------
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           os.o_status_name as statusName,
-                           o.cust_id as customerId,
-                           c.cust_company_name as customerName,
-                           u.user_mobile as customerPhone,
-                           u.user_email as customerEmail,
-                           o.del_id as deliveryId,
-                           d.user_id as driverId,
-                           u1.user_name as driverName,
-                           u1.user_mobile as driverPhone,
-                           u1.user_email as driverEmail,
-                           o.pf_id as pfId,
-                           pfs.pf_status_name as pfStatus
-                    from orders o
-                    join order_status os on o.o_status_id = os.o_status_id
-                    join customer c on c.user_id=o.cust_id
-                    join users u on c.user_id=u.user_id
-                    join delivery del on o.del_id = del.del_id
-                    join vehicle v on del.veh_id = v.veh_id
-                    join driver d on d.veh_id=v.veh_id
-                    join users u1 on d.user_id=u1.user_id
-                    join pro_forma pf on o.pf_id = pf.pf_id
-                    join pro_forma_status pfs on pfs.pf_status_id=pf.pf_status_id
-                    where o.cust_id=:customer and o.o_status_id between 2 and 6
-                    """
-    )
-    List<OrdersDto> getCurrentOrdersByCustomer(@NonNull @Param("customer") Long customer_id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           o.cust_id as customerId,
-                           o.del_id as deliveryId,
-                           o.pf_id as pfId
-                    from warehouse w
-                        join manager m on w.wh_id= m.wh_id
-                        join article_unit au on au.wh_id = w.wh_id
-                        join orders o on au.ord_id = o.ord_id
-                        join order_status os on os.o_status_id = o.o_status_id
-                    where m.user_id = ?1
-                    """
-    )
-    List<OrderSimpleDto> getNewOrdersByManager(@NonNull Long manager_id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           o.cust_id as customerId,
-                           o.del_id as deliveryId,
-                           o.pf_id as pfId
-                    from orders o
-                    where o.ord_id = ?1
-                    """
-    )
-    OrderSimpleDto findSimpleOrdersById(Long orderId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           os.o_status_name as statusName,
-                           o.cust_id as customerId,
-                           c.cust_company_name as customerName,
-                           u.user_mobile as customerPhone,
-                           u.user_email as customerEmail,
-                           o.del_id as deliveryId,
-                           d.user_id as driverId,
-                           u1.user_name as driverName,
-                           u1.user_mobile as driverPhone,
-                           u1.user_email as driverEmail,
-                           o.pf_id as pfId,
-                           pfs.pf_status_name as pfStatus
-                    from orders o
-                        join order_status os on o.o_status_id = os.o_status_id
-                        join customer c on c.user_id=o.cust_id
-                        join users u on c.user_id=u.user_id
-                        join delivery del on o.del_id = del.del_id
-                        join vehicle v on del.veh_id = v.veh_id
-                        join driver d on d.veh_id=v.veh_id
-                        join users u1 on d.user_id=u1.user_id
-                        join pro_forma pf on o.pf_id = pf.pf_id
-                        join pro_forma_status pfs on pfs.pf_status_id=pf.pf_status_id
-                    where o.del_id=:delivery
-                    """
-    )
-    List<OrdersDto> findOrdersByDelivery(@Param("delivery") Long deliveryId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select o.ord_id as id,
-                           o.ord_date as ordDate,
-                           o.ord_sum as ordSum,
-                           o.ord_fulfillment_date as ordFulfillmentDate,
-                           o.ord_comment as ordComment,
-                           o.o_status_id as oStatusId,
-                           o.cust_id as customerId,
-                           o.del_id as deliveryId,
-                           c.cust_loc_latitude as latitude,
-                           c.cust_loc_longitude as longitude
-                    from orders o
-                        join customer c on c.user_id=o.cust_id
-                    where o.del_id=:delivery
-                    """
-    )
-    List<OrdersDeliveryDto> findDeliveryOrdersByDelivery(@Param("delivery") Long deliveryId);
-
-    @Query(nativeQuery = true,
-            value = """
-                    select distinct o
-                    from orders o
-                    join users u on o.cust_id = u.user_id
-                    join city c on u.city_id = c.city_id
-                    where c.city_id in (:cityIds)
-                        and o.o_status_id = 1
-                        and o.del_id is not null
-                    order by o.ord_date asc
-                    """
-    ) // TODO: correctly adjust select to the correct dto
-    List<OrderSimpleDto> findUnassignedOrdersByCitiesAndWarehouse(
-            @Param("cityIds") List<Integer> cityIds,
-            @Param("warehouseId") Integer warehouseId
-    );
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/OrdersService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,34 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order;
-
-import mk.ukim.finki.db.distributorapp.order.dto.*;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface OrdersService {
-
-    List<OrderSimpleDto> findSimpleOrdersByCustomer(Long customerId);
-
-    OrdersDto findById(Long id);
-
-    @Transactional
-    Integer create(CreateOrderDto createOrderDto, String userEmail);
-
-    Integer edit(OrdersDto ordersDto);
-
-    void deleteById(Long id);
-
-    List<OrdersDto> findCurrentOrdersByCustomer(Long customerId);
-
-    List<OrderSimpleDto> getNewOrdersByManager(Long managerId);
-
-    void addOrdersToDelivery(List<Long> orderIds, Long deliveryId);
-
-    OrderSimpleDto findSimpleOrderById(Long orderId);
-
-    List<OrdersDto> findOrdersByDelivery(Long deliveryId);
-
-    List<OrdersDeliveryDto> findDeliveryOrdersByDelivery(Long deliveryId);
-
-    List<OrderSimpleDto> getUnassignedOrdersByCitiesForWarehouse(List<Integer> cityIdList, Integer id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/OrdersServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/OrdersServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,154 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.customer.CustomerService;
-import mk.ukim.finki.db.distributorapp.customer.dto.CustomerDto;
-import mk.ukim.finki.db.distributorapp.delivery.DeliveryRepository;
-import mk.ukim.finki.db.distributorapp.order.dto.*;
-import mk.ukim.finki.db.distributorapp.proForma.ProFormaService;
-import mk.ukim.finki.db.distributorapp.proForma.dto.ProFormaDto;
-import mk.ukim.finki.db.distributorapp.users.UserService;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class OrdersServiceImpl implements OrdersService {
-    private final OrdersRepository ordersRepository;
-    private final UserService userService;
-    private final CustomerService customerService;
-    private final ProFormaService proFormaService;
-    private final DeliveryRepository deliveryRepository;
-
-    @Override
-    public List<OrderSimpleDto> findSimpleOrdersByCustomer(Long customerId) {
-        return this.ordersRepository.findSimpleOrdersByCustomer(customerId);
-    }
-
-    @Override
-    public OrdersDto findById(Long id) {
-        return this.ordersRepository.findOrderById(id);
-    }
-
-    @Override
-    @Transactional
-    public Integer create(CreateOrderDto createOrderDto, String userEmail) {
-        UserDto user = this.userService.findUserDtoByEmail(userEmail);
-        CustomerDto customer = this.customerService.findCustomerById(user.getId());
-
-        OrdersDto order = new OrdersDto();
-
-        if (createOrderDto.isProForma()) {
-            ProFormaDto pf = new ProFormaDto();
-            pf.setPfDeadline(LocalDate.now().plusWeeks(1));
-            pf.setPfDateCreated(LocalDate.now());
-            pf.setStatusId((short) 1);
-            this.proFormaService.create(pf);
-            List<ProFormaDto> proFormaList = this.proFormaService.getAllProForma();
-            ProFormaDto createdProForma = proFormaList.get(proFormaList.size() - 1);
-            order.setPfId(createdProForma.getId());
-        }
-
-        order.setCustomerId(customer.getId());
-        order.setOrdDate(LocalDate.now());
-        order.setOrdFulfillmentDate(null);
-        order.setOStatusId((short) 1);
-        order.setDeliveryId(null);
-        order.setPfId(null);
-        order.setOrdComment(null);
-
-        Integer sum = createOrderDto.getOrderItems()
-                .stream()
-                .map(i -> i.getArticle().getPrice().multiply(BigDecimal.valueOf(i.getQuantity())))
-                .reduce(BigDecimal.ZERO, BigDecimal::add)
-                .intValue();
-        order.setOrdSum(sum);
-
-        return this.ordersRepository.create(
-                order.getOrdDate(),
-                order.getOrdSum(),
-                order.getOrdFulfillmentDate(),
-                order.getOrdComment(),
-                order.getOStatusId(),
-                order.getCustomerId(),
-                order.getDeliveryId(),
-                order.getPfId()
-        );
-    }
-
-    @Override
-    public Integer edit(OrdersDto ordersDto) {
-        return this.ordersRepository.edit(
-                ordersDto.getId(),
-                ordersDto.getOrdDate(),
-                ordersDto.getOrdSum(),
-                ordersDto.getOrdFulfillmentDate(),
-                ordersDto.getOrdComment(),
-                ordersDto.getOStatusId(),
-                ordersDto.getCustomerId(),
-                ordersDto.getDeliveryId(),
-                ordersDto.getPfId()
-        );
-    }
-
-    @Override
-    public void deleteById(Long id) {
-        this.ordersRepository.deleteById(id);
-    }
-
-    @Override
-    public List<OrdersDto> findCurrentOrdersByCustomer(Long customerId) {
-        return this.ordersRepository.getCurrentOrdersByCustomer(customerId);
-    }
-
-    @Override
-    public List<OrderSimpleDto> getNewOrdersByManager(Long managerId) {
-        return this.ordersRepository.getNewOrdersByManager(managerId);
-    }
-
-    @Override
-    public void addOrdersToDelivery(List<Long> orderIds, Long deliveryId) {
-        for (Long i : orderIds) {
-            OrderSimpleDto order = this.ordersRepository.findSimpleOrdersById(i);
-            order.setDeliveryId(deliveryId);
-            this.ordersRepository.edit(
-                    order.getId(),
-                    order.getOrdDate().toLocalDate(),
-                    order.getOrdSum(),
-                    order.getOrdFulfillmentDate(),
-                    order.getOrdComment(),
-                    order.getOStatusId(),
-                    order.getCustomerId(),
-                    order.getDeliveryId(),
-                    order.getPfId()
-            );
-        }
-    }
-
-    @Override
-    public OrderSimpleDto findSimpleOrderById(Long orderId) {
-        return this.ordersRepository.findSimpleOrdersById(orderId);
-    }
-
-    @Override
-    public List<OrdersDto> findOrdersByDelivery(Long deliveryId) {
-        return this.ordersRepository.findOrdersByDelivery(deliveryId);
-    }
-
-    @Override
-    public List<OrdersDeliveryDto> findDeliveryOrdersByDelivery(Long deliveryId) {
-        return this.ordersRepository.findDeliveryOrdersByDelivery(deliveryId);
-    }
-
-    @Override
-    public List<OrderSimpleDto> getUnassignedOrdersByCitiesForWarehouse(List<Integer> cityIds, Integer warehouseId) {
-        return this.ordersRepository.findUnassignedOrdersByCitiesAndWarehouse(cityIds, warehouseId);
-    }
-
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/AndroidCreateOrderDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/AndroidCreateOrderDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-public class AndroidCreateOrderDto {
-    Long articleId;
-    BigDecimal unitPrice;
-    Integer quantity;
-    String userEmail;
-    Boolean proForma;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/CreateOrderDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/CreateOrderDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class CreateOrderDto {
-    private List<OrderItemDto> orderItems;
-    boolean proForma;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderItemDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderItemDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class OrderItemDto {
-    private ArticleDto article;
-    private Integer quantity;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderManagerDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderManagerDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDateTime;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class OrderManagerDto {
-    private Long id;
-    private java.sql.Date ordDate;
-    private Integer ordSum;
-    private LocalDateTime ordFulfillmentDate;
-    private String customerName;
-    private String ordComment;
-    private Short oStatusId;
-    private Long customerId;
-    private Long deliveryId;
-    private Long pfId;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderSimpleDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderSimpleDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,22 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDateTime;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class OrderSimpleDto {
-    private Long id;
-    private java.sql.Date ordDate;
-    private Integer ordSum;
-    private LocalDateTime ordFulfillmentDate;
-    private String ordComment;
-    private Short oStatusId;
-    private Long customerId;
-    private Long deliveryId;
-    private Long pfId;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderWithItemsDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrderWithItemsDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.article.dto.ArticleDto;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class OrderWithItemsDto {
-    private OrderSimpleDto order;
-    private List<ArticleDto> items;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrdersDeliveryDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrdersDeliveryDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-
-public class OrdersDeliveryDto {
-    private Long id;
-    private java.sql.Date ordDate;
-    private Integer ordSum;
-    private LocalDateTime ordFulfillmentDate;
-    private String ordComment;
-    private Short oStatusId;
-    private Long customerId;
-    private Long deliveryId;
-    private Double latitude;
-    private Double longitude;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrdersDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/order/dto/OrdersDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,32 +1,0 @@
-package mk.ukim.finki.db.distributorapp.order.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class OrdersDto {
-    private Long id;
-    private LocalDate ordDate;
-    private Integer ordSum;
-    private LocalDateTime ordFulfillmentDate;
-    private String ordComment;
-    private Short oStatusId;
-    private String statusName;
-    private Long customerId;
-    private String customerName;
-    private String customerPhone;
-    private String customerEmail;
-    private Long deliveryId;
-    private Long driverId;
-    private String driverName;
-    private String driverPhone;
-    private String driverEmail;
-    private Long pfId;
-    private String pfStatus;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatus.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatus.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.db.distributorapp.orderStatus;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.order.Orders;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "order_status", schema = "IND0_185022")
-public class OrderStatus {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "o_status_id")
-    private Short orderStatusId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "o_status_name", nullable = false)
-    private String orderStatusName;
-
-    @NotNull
-    @Column(name = "o_status_desc", nullable = false)
-    private String orderStatusDescription;
-
-    @OneToMany(mappedBy = "orderStatus")
-    private List<Orders> orders;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatusRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatusRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package mk.ukim.finki.db.distributorapp.orderStatus;
-
-import lombok.NonNull;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface OrderStatusRepository extends JpaRepository<OrderStatus, Short> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into order_status(o_status_name, o_status_desc) " +
-                    "values (?1,?2)"
-    )
-    Integer create(@NonNull String name, @NonNull String description);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update order_status " +
-                    "set o_status_name=?2,o_status_desc=?3 " +
-                    "where o_status_id=?1"
-    )
-    Integer edit(@NonNull Short id, @NonNull String name, @NonNull String description);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from order_status where o_status_id=?1"
-    )
-    void delete(@NonNull Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatusService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatusService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.orderStatus;
-
-import mk.ukim.finki.db.distributorapp.orderStatus.dto.OrderStatusDto;
-
-public interface OrderStatusService {
-
-    Integer create(OrderStatusDto orderStatusDto);
-
-    Integer edit(OrderStatusDto orderStatusDto);
-
-    void deleteById(Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatusServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/orderStatus/OrderStatusServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package mk.ukim.finki.db.distributorapp.orderStatus;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.orderStatus.dto.OrderStatusDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class OrderStatusServiceImpl implements OrderStatusService {
-    private final OrderStatusRepository orderStatusRepository;
-
-    @Override
-    public Integer create(OrderStatusDto orderStatusDto) {
-        return this.orderStatusRepository.create(
-                orderStatusDto.getStatusName(),
-                orderStatusDto.getStatusDescription()
-        );
-    }
-
-    @Override
-    public Integer edit(OrderStatusDto orderStatusDto) {
-        return this.orderStatusRepository.edit(
-                orderStatusDto.getId(),
-                orderStatusDto.getStatusName(),
-                orderStatusDto.getStatusDescription()
-        );
-    }
-
-    @Override
-    public void deleteById(Short id) {
-        this.orderStatusRepository.deleteById(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/orderStatus/dto/OrderStatusDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/orderStatus/dto/OrderStatusDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.orderStatus.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class OrderStatusDto {
-    private Short id;
-    private String statusName;
-    private String statusDescription;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/price/Price.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/price/Price.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,43 +1,0 @@
-package mk.ukim.finki.db.distributorapp.price;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.article.Article;
-import mk.ukim.finki.db.distributorapp.articleUnit.ArticleUnit;
-import org.hibernate.annotations.ColumnDefault;
-
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-@Entity
-@Data
-@Table(name = "price")
-public class Price {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "price_id")
-    private Integer priceId;
-
-    @NotNull
-    @Column(name = "price", nullable = false)
-    private BigDecimal price;
-
-    @NotNull
-    @ColumnDefault("CURRENT_TIMESTAMP")
-    @Column(name = "price_eff_date", nullable = false)
-    private LocalDateTime priceEffectiveDate;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "art_id", nullable = false)
-    private Article article;
-
-    @ManyToMany
-    @JoinTable(name = "unit_price",
-            joinColumns = @JoinColumn(name = "price_id"),
-            inverseJoinColumns = @JoinColumn(name = "unit_id"))
-    private Set<ArticleUnit> articleUnits = new LinkedHashSet<>();
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/price/PriceRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/price/PriceRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,48 +1,0 @@
-package mk.ukim.finki.db.distributorapp.price;
-
-import lombok.NonNull;
-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 org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-@Repository
-public interface PriceRepository extends JpaRepository<Price, Integer> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into price(price, price_eff_date, art_id) " +
-                    "values (?1,?2,?3)"
-    )
-    Integer create(
-            @NonNull BigDecimal price,
-            @NonNull LocalDateTime price_eff_date,
-            @NonNull Long art_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update price " +
-                    "set price=?2,price_eff_date=?3,art_id=?4 " +
-                    "where price_id=?1"
-    )
-    Integer edit(
-            @NonNull Integer id,
-            @NonNull BigDecimal price,
-            @NonNull LocalDateTime price_eff_date,
-            @NonNull Long art_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from price where price_id=?1"
-    )
-    void delete(@NonNull Integer id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/price/PriceService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/price/PriceService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package mk.ukim.finki.db.distributorapp.price;
-
-import mk.ukim.finki.db.distributorapp.price.dto.PriceDto;
-
-public interface PriceService {
-
-    Integer create(PriceDto priceDto);
-
-    Integer edit(PriceDto priceDto);
-
-    void deleteById(Integer id);
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/price/PriceServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/price/PriceServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,35 +1,0 @@
-package mk.ukim.finki.db.distributorapp.price;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.price.dto.PriceDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class PriceServiceImpl implements PriceService {
-    private final PriceRepository priceRepository;
-
-    @Override
-    public Integer create(PriceDto priceDto) {
-        return this.priceRepository.create(
-                priceDto.getPrice(),
-                priceDto.getDateEffective(),
-                priceDto.getArtId()
-        );
-    }
-
-    @Override
-    public Integer edit(PriceDto priceDto) {
-        return this.priceRepository.edit(
-                priceDto.getId(),
-                priceDto.getPrice(),
-                priceDto.getDateEffective(),
-                priceDto.getArtId()
-        );
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        this.priceRepository.delete(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/price/dto/PriceDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/price/dto/PriceDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp.price.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-@Data
-@AllArgsConstructor
-public class PriceDto {
-    private Integer id;
-    private BigDecimal price;
-    private LocalDateTime dateEffective;
-    private Long artId;
-    private String artName;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proForma/ProForma.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proForma/ProForma.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,44 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proForma;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.discount.Discount;
-import mk.ukim.finki.db.distributorapp.proFormaStatus.ProFormaStatus;
-import mk.ukim.finki.db.distributorapp.order.Orders;
-
-import java.time.LocalDate;
-
-@Entity
-@Data
-@Table(name = "pro_forma")
-public class ProForma {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "pf_id")
-    private Long proFormaId;
-
-    @NotNull
-    @Column(name = "pf_deadline", nullable = false)
-    private LocalDate proFormaDeadline;
-
-    @NotNull
-    @Column(name = "pf_date_created", nullable = false)
-    private LocalDate proFormaDateCreated;
-
-    @NotNull
-    @Column(name = "pf_total", nullable = false)
-    private Double total;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "pf_status_id", nullable = false)
-    private ProFormaStatus proFormaStatus;
-
-    @OneToOne(mappedBy = "proForma")
-    private Orders order;
-
-    @OneToOne
-    @JoinColumn(name = "pf_discount")
-    private Discount discount;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proForma/ProFormaRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proForma/ProFormaRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,102 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proForma;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.proForma.dto.ProFormaDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDate;
-import java.util.List;
-
-public interface ProFormaRepository extends JpaRepository<ProForma, Long> {
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select pf.pf_id as id,
-                           pf_deadline as pfDeadline,
-                           pf_date_created as pfDateCreated,
-                           pf_total as pfTotal,
-                           dsc.dsc_id as discountId,
-                           dsc.dsc_amount as discountAmount,
-                           pfs.pf_status_id as statusId,
-                           pfs.pf_status_name as statusName,
-                           o.ord_id as ordId,
-                           c.user_id as customerId,
-                           c.cust_company_name as customerName,
-                           u.user_email as customerEmail,
-                           u.user_mobile as customerPhone
-                    from pro_forma pf
-                    join discount dsc on pf.pf_discount = dsc.dsc_id
-                    join pro_forma_status pfs on pf.pf_status_id=pfs.pf_status_id
-                    join orders o on pf.pf_id = o.pf_id
-                    join customer c on o.cust_id = c.user_id
-                    join users u on c.user_id = u.user_id
-                    """
-    )
-    List<ProFormaDto> listAll();
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into pro_forma(pf_deadline, pf_date_created, pf_status_id)
-                    values (?1,?2,?3)
-                    """
-    )
-    Integer create(
-            @NonNull LocalDate pf_deadline,
-            @NonNull LocalDate pf_create_date,
-            @NonNull Short pf_status_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update pro_forma " +
-                    "set pf_deadline=?2,pf_date_created=?3,pf_status_id=?4 " +
-                    "where pf_id=?1"
-    )
-    Integer edit(
-            @NonNull Long pf_id,
-            @NonNull LocalDate pf_deadline,
-            @NonNull LocalDate pf_create_date,
-            @NonNull Short pf_status_id);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from pro_forma where pf_id=?1"
-    )
-    void delete(@NonNull Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select pf.pf_id as id,
-                           pf_deadline as pfDeadline,
-                           pf_date_created as pfDateCreated,
-                           pf_total as pfTotal,
-                           dsc.dsc_id as discountId,
-                           dsc.dsc_amount as discountAmount,
-                           pfs.pf_status_id as statusId,
-                           pfs.pf_status_name as statusName,
-                           o.ord_id as ordId,
-                           c.user_id as customerId,
-                           c.cust_company_name as customerName,
-                           u.user_email as customerEmail,
-                           u.user_mobile as customerPhone
-                    from pro_forma pf
-                    join discount dsc on pf.pf_discount = dsc.dsc_id
-                    join pro_forma_status pfs on pf.pf_status_id=pfs.pf_status_id
-                    join orders o on pf.pf_id = o.pf_id
-                    join customer c on o.cust_id = c.user_id
-                    join users u on c.user_id = u.user_id
-                    where c.user_id = ?1
-                    """
-    )
-    List<ProFormaDto> getCurrentProFormasByCustomer(Long customerId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proForma/ProFormaService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proForma/ProFormaService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proForma;
-
-import mk.ukim.finki.db.distributorapp.proForma.dto.ProFormaDto;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface ProFormaService {
-    @Transactional
-    List<ProFormaDto> getAllProForma();
-
-    Integer create(ProFormaDto proFormaDto);
-
-    Integer edit(ProFormaDto proFormaDto);
-
-    void deleteById(Long id);
-
-    List<ProFormaDto> getCurentProFormasByCustomer(Long customerId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proForma/ProFormaServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proForma/ProFormaServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,49 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proForma;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.proForma.dto.ProFormaDto;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class ProFormaServiceImpl implements ProFormaService {
-    private final ProFormaRepository proFormaRepository;
-
-    @Override
-    @Transactional
-    public List<ProFormaDto> getAllProForma() {
-        return this.proFormaRepository.listAll();
-    }
-
-    @Override
-    public Integer create(ProFormaDto proFormaDto) {
-        return this.proFormaRepository.create(
-                proFormaDto.getPfDeadline(),
-                proFormaDto.getPfDateCreated(),
-                proFormaDto.getStatusId()
-        );
-    }
-
-    @Override
-    public Integer edit(ProFormaDto proFormaDto) {
-        return this.proFormaRepository.edit(
-                proFormaDto.getId(),
-                proFormaDto.getPfDeadline(),
-                proFormaDto.getPfDateCreated(),
-                proFormaDto.getStatusId()
-        );
-    }
-
-    @Override
-    public void deleteById(Long id) {
-        this.proFormaRepository.deleteById(id);
-    }
-
-    @Override
-    public List<ProFormaDto> getCurentProFormasByCustomer(Long customerId) {
-        return this.proFormaRepository.getCurrentProFormasByCustomer(customerId);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proForma/dto/ProFormaDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proForma/dto/ProFormaDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,26 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proForma.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDate;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class ProFormaDto {
-    private Long id;
-    private LocalDate pfDeadline;
-    private LocalDate pfDateCreated;
-    private Double pfTotal;
-    private Long discountId;
-    private Integer discountAmount;
-    private Short statusId;
-    private String statusName;
-    private Long ordId;
-    private Long customerId;
-    private String customerName;
-    private String customerEmail;
-    private String customerPhone;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatus.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatus.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proFormaStatus;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.proForma.ProForma;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "pro_forma_status", schema = "IND0_185022")
-public class ProFormaStatus {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "pf_status_id")
-    private Short proFormaStatusId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "pf_status_name", nullable = false)
-    private String proFormaStatusName;
-
-    @NotNull
-    @Column(name = "pf_status_desc", nullable = false)
-    private String proFormaStatusDescription;
-
-    @OneToMany(mappedBy = "proFormaStatus")
-    private List<ProForma> pro_formas;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatusRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatusRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proFormaStatus;
-
-import lombok.NonNull;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface ProFormaStatusRepository extends JpaRepository<ProFormaStatus, Short> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into pro_forma_status(pf_status_name, pf_status_desc) " +
-                    "values (?1,?2)"
-    )
-    Integer create(@NonNull String name, @NonNull String description);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update pro_forma_status " +
-                    "set pf_status_name=?2,pf_status_desc=?3 " +
-                    "where pf_status_id=?1"
-    )
-    Integer edit(@NonNull Short id, @NonNull String name, @NonNull String description);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from pro_forma_status where pf_status_id=?1"
-    )
-    void delete(@NonNull Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatusService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatusService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proFormaStatus;
-
-import mk.ukim.finki.db.distributorapp.proFormaStatus.dto.ProFormaStatusDto;
-
-public interface ProFormaStatusService {
-
-    Integer create(ProFormaStatusDto proFormaStatusDto);
-
-    Integer edit(ProFormaStatusDto proFormaStatusDto);
-
-    void deleteById(Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatusServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/ProFormaStatusServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proFormaStatus;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.proFormaStatus.dto.ProFormaStatusDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class ProFormaStatusServiceImpl implements ProFormaStatusService {
-    private final ProFormaStatusRepository proFormaStatusRepository;
-
-    @Override
-    public Integer create(ProFormaStatusDto proFormaStatusDto) {
-        return this.proFormaStatusRepository.create(
-                proFormaStatusDto.getStatusName(),
-                proFormaStatusDto.getStatusDescription()
-        );
-    }
-
-    @Override
-    public Integer edit(ProFormaStatusDto proFormaStatusDto) {
-        return this.proFormaStatusRepository.edit(
-                proFormaStatusDto.getId(),
-                proFormaStatusDto.getStatusName(),
-                proFormaStatusDto.getStatusDescription()
-        );
-    }
-
-    @Override
-    public void deleteById(Short id) {
-        this.proFormaStatusRepository.deleteById(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/dto/ProFormaStatusDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/proFormaStatus/dto/ProFormaStatusDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.proFormaStatus.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class ProFormaStatusDto {
-    private Short id;
-    private String statusName;
-    private String statusDescription;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/region/Region.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/region/Region.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,28 +1,0 @@
-package mk.ukim.finki.db.distributorapp.region;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.city.City;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "region")
-public class Region {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "region_id", nullable = false)
-    private Integer regionId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "region_name", nullable = false)
-    private String regionName;
-
-    @OneToMany(mappedBy = "region")
-    private List<City> cities;
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/region/RegionRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/region/RegionRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,54 +1,0 @@
-package mk.ukim.finki.db.distributorapp.region;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.region.dto.RegionDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface RegionRepository extends JpaRepository<Region, Integer> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into region(region_name) " +
-                    "values (?1)"
-    )
-    Integer create(
-            @NonNull String name);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update region " +
-                    "set region_name=?2 " +
-                    "where region_id=?1"
-    )
-    Integer edit(
-            @NonNull Integer id,
-            @NonNull String name);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from region " +
-                    "where region_id=?1"
-    )
-    void deleteById(@NonNull Integer id);
-
-//    -------------------------------------------------------------------------
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select r.region_id as id, r.region_name as name
-                    from region r join city c on r.region_id = c.region_id
-                    where c.city_id = :city
-                    """
-    )
-    RegionDto getRegionByCityId(@NonNull @Param("city") Integer cityId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/region/RegionService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/region/RegionService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.region;
-
-import mk.ukim.finki.db.distributorapp.region.dto.RegionDto;
-
-public interface RegionService {
-
-    Integer create(RegionDto regionDto);
-
-    Integer edit(RegionDto regionDto);
-
-    void deleteById(Integer id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/region/RegionServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/region/RegionServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.db.distributorapp.region;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.region.dto.RegionDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class RegionServiceImpl implements RegionService {
-    private final RegionRepository regionRepository;
-
-    @Override
-    public Integer create(RegionDto regionDto) {
-        return this.regionRepository.create(
-                regionDto.getName()
-        );
-    }
-
-    @Override
-    public Integer edit(RegionDto regionDto) {
-        return this.regionRepository.edit(
-                regionDto.getId(),
-                regionDto.getName()
-        );
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        this.regionRepository.deleteById(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/region/dto/RegionDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/region/dto/RegionDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package mk.ukim.finki.db.distributorapp.region.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class RegionDto {
-    public Integer id;
-    public String name;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/reports/ReportsRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/ReportsRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,57 +1,0 @@
-package mk.ukim.finki.db.distributorapp.reports;
-
-import mk.ukim.finki.db.distributorapp.article.Article;
-import mk.ukim.finki.db.distributorapp.reports.dto.*;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-
-import java.util.List;
-
-public interface ReportsRepository extends JpaRepository<Article, Long> {
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * from ArticleSalesChangeOnPriceChange()")
-    List<ArticleSalesChange> getArticleSalesChangeOnPriceChange();
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * FROM SalesComparisonByCategoryAndRegionInQuantityAndIncome()")
-    List<RegionCategorySales> getSalesComparisonByCategoryAndRegion();
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * FROM SalesPrognosingOnArticlesAccToSalesInPreviousWeeks()")
-    List<SalesForecast> getSalesForecasts();
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * FROM ArticleSalesInWarehouseByQuarters()")
-    List<WarehouseQuarterlySales> getWarehouseQuarterlySales();
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * FROM ArticleSalesInWarehouseByQuarters() WHERE warehouseId = :warehouseId")
-    List<WarehouseQuarterlySales> getWarehouseQuarterlySalesByWarehouseId(@Param("warehouseId") Long warehouseId);
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * FROM YearlyIncomeProfitAndExpensesByWarehouses()")
-    List<WarehouseYearlyFinancials> getWarehouseYearlyFinancials();
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * FROM YearlyIncomeProfitAndExpensesByWarehouses() WHERE warehouseId = :warehouseId")
-    List<WarehouseYearlyFinancials> getWarehouseYearlyFinancialsByWarehouseId(@Param("warehouseId") Long warehouseId);
-
-    @Query(
-            nativeQuery = true,
-            value = "SELECT * FROM AnalyticsOfProductsByIncomeExpensesAndProfit()")
-    List<ProductAnalytics> getProductAnalytics();
-
-    @Query(
-            nativeQuery = true,
-            value = "select * from AnalyticsOfProductsByIncomeExpensesAndProfit() WHERE category = :category")
-    List<ProductAnalytics> getProductAnalyticsByCategory(@Param("category") String category);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ArticleSalesChange.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ArticleSalesChange.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.db.distributorapp.reports.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.RequiredArgsConstructor;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@RequiredArgsConstructor
-public class ArticleSalesChange {
-    private String articleName;
-    private BigDecimal unitPrice;
-    private Date priceEffectiveDate;
-    private Long unitsSold;
-    private BigDecimal revenue;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ProductAnalytics.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/ProductAnalytics.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package mk.ukim.finki.db.distributorapp.reports.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class ProductAnalytics {
-    private Long articleId;
-    private String articleName;
-    private String category;
-    private Long totalUnitsSold;
-    private BigDecimal totalIncome;
-    private BigDecimal totalCost;
-    private BigDecimal totalProfit;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/reports/dto/RegionCategorySales.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/RegionCategorySales.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp.reports.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class RegionCategorySales {
-    private String region;
-    private String category;
-    private Long totalUnitsSold;
-    private BigDecimal totalIncome;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/reports/dto/SalesForecast.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/SalesForecast.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package mk.ukim.finki.db.distributorapp.reports.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class SalesForecast {
-    private Long articleId;
-    private String articleName;
-    private Long currentStock;
-    private BigDecimal averageUnitsSold;
-    private BigDecimal remainingAfterForecast;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseQuarterlySales.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseQuarterlySales.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.db.distributorapp.reports.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class WarehouseQuarterlySales {
-    private Integer warehouseId;
-    private String warehouseAddress;
-    private String warehouseCity;
-    private String warehouseRegion;
-    private Double year;
-    private Double quarter;
-    private Long totalArticlesSold;
-    private BigDecimal totalSales;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseYearlyFinancials.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/reports/dto/WarehouseYearlyFinancials.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package mk.ukim.finki.db.distributorapp.reports.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class WarehouseYearlyFinancials {
-    private Long warehouseId;
-    private String warehouseCity;
-    private String warehouseRegion;
-    private Double year;
-    private BigDecimal totalIncome;
-    private BigDecimal totalProfit;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/token/Token.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/token/Token.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package mk.ukim.finki.db.distributorapp.token;
-
-
-import jakarta.persistence.*;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.users.User;
-
-import java.time.LocalDateTime;
-
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Entity
-@Table(name = "token_")
-public class Token {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "t_id")
-    private Long tokenId;
-
-    @Column(name = "t_value", unique = true, nullable = false)
-    private String tokenValue;
-
-    @Column(name = "t_date")
-    private LocalDateTime createdDate;
-
-    @Enumerated(EnumType.STRING)
-    @Column(name = "t_type")
-    private TokenType tokenType;
-
-    @Column(name = "t_expiry")
-    private LocalDateTime tokenExpiryDate;
-
-    @Column(name = "t_validated_at")
-    private LocalDateTime tokenValidatedAt;
-
-    @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "t_user", referencedColumnName = "user_id", nullable = false, unique = true)
-    private User user;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/token/TokenRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/token/TokenRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,58 +1,0 @@
-package mk.ukim.finki.db.distributorapp.token;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.token.dto.TokenDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDateTime;
-
-public interface TokenRepository extends JpaRepository<Token, Long> {
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select
-                    from token
-                    where t_value = ?1
-                    """
-    )
-    TokenDto findTokenByValue(@NonNull String token);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into token(t_value, t_type, t_expiry, t_user)
-                    values (:value, :type, :expiry, :user)
-                    """
-    )
-    Integer create(
-            @NonNull @Param("value") String t_value,
-            @NonNull @Param("expiry") LocalDateTime t_expiry,
-            @NonNull @Param("user") Long user_id,
-            @NonNull @Param("type") String t_type
-    );
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update token
-                    set t_expiry = :expiry, t_user = :user, t_value = :value, t_type = :type, t_validated_at = :validated_at
-                    where t_id = :id
-                    """
-    )
-    Integer edit(
-            @NonNull @Param("id") Long t_id,
-            @NonNull @Param("value") String t_value,
-            @NonNull @Param("expiry") LocalDateTime t_expiry,
-            @NonNull @Param("user") Long user_id,
-            @NonNull @Param("validated_at") LocalDateTime validated_at,
-            @NonNull @Param("type") String t_type
-    );
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/token/TokenType.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/token/TokenType.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,5 +1,0 @@
-package mk.ukim.finki.db.distributorapp.token;
-
-public enum TokenType {
-    TOKEN_VERIFICATION, TOKEN_RESET
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/token/dto/TokenDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/token/dto/TokenDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package mk.ukim.finki.db.distributorapp.token.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDateTime;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class TokenDto {
-    Long t_id;
-    String t_value;
-    LocalDateTime t_date;
-    String t_type;
-    LocalDateTime t_expiry;
-    LocalDateTime t_validated_at;
-    Long user_id;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/unitPrice/UnitPrice.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/unitPrice/UnitPrice.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package mk.ukim.finki.db.distributorapp.unitPrice;
-
-import jakarta.persistence.*;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.articleUnit.ArticleUnit;
-import mk.ukim.finki.db.distributorapp.price.Price;
-
-@Data
-@Entity
-@Table(name = "unit_price", schema = "IND0_185022")
-public class UnitPrice {
-    @EmbeddedId
-    private UnitPriceId id;
-
-    @MapsId("unitId")
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "unit_id", nullable = false)
-    private ArticleUnit unit;
-
-    @MapsId("priceId")
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "price_id", nullable = false)
-    private Price price;
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/unitPrice/UnitPriceId.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/unitPrice/UnitPriceId.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package mk.ukim.finki.db.distributorapp.unitPrice;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Embeddable;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@Embeddable
-@NoArgsConstructor
-@AllArgsConstructor
-@EqualsAndHashCode
-public class UnitPriceId implements Serializable {
-    @Column(name = "unit_id", nullable = false)
-    private Long unitId;
-    @Column(name = "price_id", nullable = false)
-    private Long priceId;
-
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/unitPrice/UnitPriceRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/unitPrice/UnitPriceRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,24 +1,0 @@
-package mk.ukim.finki.db.distributorapp.unitPrice;
-
-import lombok.NonNull;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface UnitPriceRepository extends JpaRepository<UnitPrice, UnitPriceId> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = """
-                    insert into unit_price(unit_id, price_id)
-                    values (:unitId, :priceId)
-                    """
-    )
-    Integer create(
-            @Param("unitId") @NonNull Long unitId,
-            @Param("priceId") @NonNull Long priceId
-    );
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/unitPrice/dto/UnitPriceDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/unitPrice/dto/UnitPriceDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package mk.ukim.finki.db.distributorapp.unitPrice.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class UnitPriceDto {
-    private Long unitId;
-    private Long priceId;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/users/Role.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/users/Role.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.users;
-
-import org.springframework.security.core.GrantedAuthority;
-
-public enum Role implements GrantedAuthority {
-    ROLE_CUSTOMER, ROLE_MANAGER, ROLE_DRIVER, ROLE_ADMIN;
-
-    @Override
-    public String getAuthority() {
-        return "";
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/users/User.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/users/User.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,140 +1,0 @@
-package mk.ukim.finki.db.distributorapp.users;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.city.City;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-import mk.ukim.finki.db.distributorapp.token.Token;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.userdetails.UserDetails;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-@Entity
-@AllArgsConstructor
-@NoArgsConstructor
-@Inheritance(strategy = InheritanceType.JOINED)
-@DiscriminatorColumn(
-        name = "clazz_",
-        discriminatorType = DiscriminatorType.STRING
-)
-@Data
-@Table(name = "users")
-public class User implements UserDetails {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "user_id")
-    private Long userId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "user_name", nullable = false)
-    private String userName;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "user_surname", nullable = false)
-    private String userSurname;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "user_pass", nullable = false)
-    private String userPassword;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "user_email", nullable = false)
-    private String userEmail;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "user_mobile", nullable = false)
-    private String userMobile;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "user_salt", nullable = false)
-    private String userSalt;
-
-    @NotNull
-    @Column(name = "user_active", nullable = false)
-    private Boolean userActive;
-
-    @Size(max = 255)
-    @Column(name = "user_image")
-    private String userImage;
-
-    @Enumerated(EnumType.STRING)
-    @Column(name = "user_role")
-    private Role userRole;
-
-    @Column(name = "clazz_", insertable = false, updatable = false)
-    private String clazz_;
-
-    @OneToMany(mappedBy = "user")
-    private List<Token> tokens;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "city_id", nullable = false)
-    private City city;
-
-    public User(UsersLoadingDto dto) {
-        this.userRole = Role.valueOf(dto.getUserRole());
-        this.userId = dto.getUserId();
-        this.userName = dto.getUserName();
-        this.userSurname = dto.getUserSurname();
-        this.userPassword = dto.getUserPassword();
-        this.userEmail = dto.getUserEmail();
-        this.userMobile = dto.getUserMobile();
-        this.userSalt = dto.getUserSalt();
-        this.userActive = dto.getUserActive();
-        this.userImage = dto.getUserImage();
-        this.tokens = null;
-        this.city = null;
-    }
-
-    @Override
-    public String getUsername() {
-        return userEmail;
-    }
-
-    @Override
-    public String getPassword() {
-        return userPassword;
-    }
-
-    @Override
-    public Collection<? extends GrantedAuthority> getAuthorities() {
-        List<GrantedAuthority> authorities = new ArrayList<>();
-        authorities.add(new SimpleGrantedAuthority(this.getUserRole().name()));
-        return authorities;
-    }
-
-    @Override
-    public boolean isAccountNonExpired() {
-        return true;
-    }
-
-    @Override
-    public boolean isAccountNonLocked() {
-        return true;
-    }
-
-    @Override
-    public boolean isCredentialsNonExpired() {
-        return true;
-    }
-
-    @Override
-    public boolean isEnabled() {
-        return userActive;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/users/UserRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/users/UserRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,163 +1,0 @@
-package mk.ukim.finki.db.distributorapp.users;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface UserRepository extends JpaRepository<User, Long> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into users(user_name,user_surname,user_pass,user_salt,user_email,user_mobile,user_active,user_image,city_id,user_role,clazz_) " +
-                    "values (:name,:sur,:pass,:salt,:email,:mob,:active,:img,:cty,:role,:clazz_)"
-    )
-    Integer create(
-            @NonNull @Param("name") String name,
-            @NonNull @Param("sur") String surname,
-            @NonNull @Param("pass") String password,
-            @NonNull @Param("email") String email,
-            @NonNull @Param("mob") String mobile,
-            @NonNull @Param("salt") String salt,
-            @NonNull @Param("active") Boolean active,
-            @Param("img") String image,
-            @NonNull @Param("cty") Integer city_id,
-            @NonNull @Param("role") String role,
-            @NonNull @Param("clazz_") String clazz_);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update users " +
-                    "set user_name=:name,user_surname=:sur,user_pass=:pass,user_email=:email,user_mobile=:mob,user_salt=:salt,user_active=:active,user_image=:img,city_id=:cty,user_role=:role,clazz_=:clazz_ " +
-                    "where user_id=:id"
-    )
-    Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("name") String name,
-            @NonNull @Param("sur") String surname,
-            @NonNull @Param("pass") String password,
-            @NonNull @Param("email") String email,
-            @NonNull @Param("mob") String mobile,
-            @NonNull @Param("salt") String salt,
-            @NonNull @Param("active") Boolean active,
-            @NonNull @Param("img") String image,
-            @NonNull @Param("cty") Integer city_id,
-            @NonNull @Param("role") String role,
-            @NonNull @Param("clazz_") String clazz_);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from users where user_id=:id"
-    )
-    void delete(@NonNull @Param("id") Long id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select user_id as userId,
-                           user_name as userName,
-                           user_surname as userSurname,
-                           user_pass as userPassword,
-                           user_email as userEmail,
-                           user_mobile as userMobile,
-                           user_salt as userSalt,
-                           user_active as userActive,
-                           user_image as userImage,
-                           user_role as userRole,
-                           clazz_
-                    from users
-                    where user_email = ?1
-                    """
-    )
-    UsersLoadingDto findUsersByUserEmailIgnoreCaseDto(String email);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select u.user_id as id,
-                           u.user_name as firstName,
-                           u.user_surname as lastName,
-                           u.user_email as email,
-                           u.user_mobile as phone,
-                           u.user_image as image,
-                           u.city_id as cityId,
-                           c.city_name as cityName,
-                           r.region_name as regionName,
-                           u.user_role as role,
-                           clazz_ as clazz_,
-                           u.user_active as userActive
-                    from users u
-                    join city c on u.city_id = c.city_id
-                    join region r on c.region_id = r.region_id
-                    where user_email = ?1
-                    """
-    )
-    UserDto findUserDtoByEmail(String userEmail);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select u.user_id as userId,
-                           u.user_name as userName,
-                           u.user_surname as userSurname,
-                           u.user_pass as userPassword,
-                           u.user_email as userEmail,
-                           u.user_mobile as userMobile,
-                           u.user_salt as userSalt,
-                           u.user_active as userActive,
-                           u.user_image as userImage,
-                           u.user_role as userRole,
-                           u.clazz_ as clazz_
-                    from users u
-                    join token_ t on u.user_id=t.t_user
-                    where t.t_value = :token
-                    """
-    )
-    UsersLoadingDto findUserByResetToken(@NonNull @Param("token") String token);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update users
-                    set user_name=?2, user_surname=?3,user_email=?4,user_mobile=?5,user_image=?6,city_id=?7
-                    where user_id=?1
-                    """
-    )
-    @Transactional
-    @Modifying
-    void updateUser(
-            @NonNull @Param("id") Long id,
-            @Param(value = "name") String firstName,
-            @Param(value = "surname") String lastName,
-            @Param(value = "email") String email,
-            @Param(value = "phone") String phone,
-            @Param(value = "image") String image,
-            @Param(value = "cityId") Integer cityId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    update users
-                    set user_name=?2, user_surname=?3,user_email=?4,user_mobile=?5,city_id=?6
-                    where user_id=?1
-                    """
-    )
-    @Transactional
-    @Modifying
-    void updateUserDetails(
-            @NonNull @Param("id") Long id,
-            @Param(value = "name") String firstName,
-            @Param(value = "surname") String lastName,
-            @Param(value = "email") String email,
-            @Param(value = "phone") String phone,
-            @Param(value = "cityId") Integer cityId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/users/UserService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/users/UserService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package mk.ukim.finki.db.distributorapp.users;
-
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-
-public interface UserService {
-    Integer edit(UserDto userDto);
-
-    void deleteUserById(Long id);
-
-    UsersLoadingDto findUserByResetToken(String token);
-
-    UserDto findUserDtoByEmail(String userEmail);
-
-    UsersLoadingDto findFullUserDtoByEmail(String userEmail);
-
-    void updateUser(Long id, String firstName, String lastName, String email, String phone, String image, Integer cityId);
-
-    void updateUserDetails(Long id, String firstName, String lastName, String email, String phone, Integer cityId);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/users/UserServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/users/UserServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,80 +1,0 @@
-package mk.ukim.finki.db.distributorapp.users;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.users.dto.UserDto;
-import mk.ukim.finki.db.distributorapp.users.dto.UsersLoadingDto;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-@Service
-@RequiredArgsConstructor
-public class UserServiceImpl implements UserService {
-
-    private final UserRepository userRepository;
-
-    @Override
-    public Integer edit(UserDto userDto) {
-        UsersLoadingDto user = this.userRepository.findUsersByUserEmailIgnoreCaseDto(userDto.getEmail());
-        return this.userRepository.edit(
-                userDto.getId(),
-                userDto.getFirstName(),
-                userDto.getLastName(),
-                user.getUserPassword(),
-                userDto.getEmail(),
-                userDto.getPhone(),
-                user.getUserSalt(),
-                userDto.getUserActive(),
-                userDto.getImage(),
-                userDto.getCityId(),
-                userDto.getRole(),
-                userDto.getClazz_()
-        );
-    }
-
-    @Override
-    public UsersLoadingDto findUserByResetToken(String token) {
-        return this.userRepository.findUserByResetToken(token);
-    }
-
-    @Override
-    public UserDto findUserDtoByEmail(String userEmail) {
-        return this.userRepository.findUserDtoByEmail(userEmail);
-    }
-
-    @Override
-    public UsersLoadingDto findFullUserDtoByEmail(String userEmail) {
-        return this.userRepository.findUsersByUserEmailIgnoreCaseDto(userEmail);
-    }
-
-    @Override
-    @Transactional
-    public void updateUser(Long id,String firstName, String lastName, String email, String phone, String image, Integer cityId) {
-        this.userRepository.updateUser(
-                id,
-                firstName,
-                lastName,
-                email,
-                phone,
-                image,
-                cityId
-        );
-    }
-
-    @Override
-    @Transactional
-    public void updateUserDetails(Long id, String firstName, String lastName, String email, String phone, Integer cityId) {
-        this.userRepository.updateUserDetails(
-                id,
-                firstName,
-                lastName,
-                email,
-                phone,
-                cityId
-        );
-    }
-
-    @Override
-    public void deleteUserById(Long id) {
-        this.userRepository.delete(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/users/dto/UserDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/users/dto/UserDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package mk.ukim.finki.db.distributorapp.users.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class UserDto {
-    private Long id;
-    private String firstName;
-    private String lastName;
-    private String email;
-    private String phone;
-    private String image;
-    private Integer cityId;
-    private String cityName;
-    private String regionName;
-    private String role;
-    private String clazz_;
-    Boolean userActive;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/users/dto/UsersLoadingDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/users/dto/UsersLoadingDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package mk.ukim.finki.db.distributorapp.users.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class UsersLoadingDto {
-    Long userId;
-    String userName;
-    String userSurname;
-    String userPassword;
-    String userEmail;
-    String userMobile;
-    String userSalt;
-    Boolean userActive;
-    String userImage;
-    String userRole;
-    String clazz_;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/vehicle/Vehicle.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/Vehicle.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,65 +1,0 @@
-package mk.ukim.finki.db.distributorapp.vehicle;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.delivery.Delivery;
-import mk.ukim.finki.db.distributorapp.driver.Driver;
-import mk.ukim.finki.db.distributorapp.warehouse.Warehouse;
-
-import java.util.Date;
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "vehicle")
-public class Vehicle {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "veh_id")
-    private Integer vehicleId;
-
-    @NotNull
-    @Column(name = "veh_carry_weight", nullable = false)
-    private Integer vehicleCarryWeight;
-
-    @NotNull
-    @Column(name = "veh_service_interval", nullable = false)
-    private Short vehicleServiceInterval;
-
-    @NotNull
-    @Column(name = "veh_kilometers", nullable = false)
-    private Integer vehicleKilometers;
-
-    @Column(name = "veh_last_service")
-    private Date vehicleLastService;
-
-    @Column(name = "veh_last_service_km")
-    private Integer vehicleLastServiceKm;
-
-    @Size(max = 8)
-    @NotNull
-    @Column(name = "veh_plate", nullable = false, length = 8)
-    private String vehiclePlate;
-
-    @Size(max = 17)
-    @NotNull
-    @Column(name = "veh_vin", nullable = false, length = 17)
-    private String vehicleVin;
-
-    @NotNull
-    @Column(name = "veh_reg_date", nullable = false)
-    private Date vehicleRegDate;
-
-    @NotNull
-    @ManyToOne(fetch = FetchType.LAZY, optional = false)
-    @JoinColumn(name = "wh_id", nullable = false)
-    private Warehouse warehouse;
-
-    @OneToOne(mappedBy = "vehicle")
-    private Driver driver;
-
-    @OneToMany(mappedBy = "vehicle")
-    private List<Delivery> deliveries;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,151 +1,0 @@
-package mk.ukim.finki.db.distributorapp.vehicle;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalDate;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-public interface VehicleRepository extends JpaRepository<Vehicle, Integer> {
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select veh_id as id,
-                           wh_id as warehouseId,
-                           veh_plate as plateNumber
-                    from vehicle
-                    where wh_id = ?1
-                    """
-    )
-    List<VehicleBasicDto> findAllByWarehouseDto(@NonNull Integer warehouseId);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into vehicle(veh_carry_weight, veh_service_interval, veh_kilometers, veh_last_service, veh_last_service_km, veh_plate, veh_vin, veh_reg_date, wh_id) " +
-                    "values (?1,?2,?3,?4,?5,?6,?7,?8,?9)"
-    )
-    Integer create(
-            @NonNull Integer vehicleCarryWeight,
-            @NonNull Short vehicleServiceInterval,
-            @NonNull Integer vehicleKilometers,
-            @NonNull Date vehicleLastService,
-            @NonNull Integer vehicleLastServiceKm,
-            @NonNull String vehiclePlate,
-            @NonNull String vehicleVIN,
-            @NonNull Date vehicleRegDate,
-            @NonNull Integer whId);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update vehicle " +
-                    "set veh_carry_weight=?2,veh_service_interval=?3,veh_kilometers=?4," +
-                    "veh_last_service=?5,veh_last_service_km=?6,veh_plate=?7,veh_vin=?8,veh_reg_date=?9,wh_id=?10 " +
-                    "where veh_id=?1"
-    )
-    Integer edit(
-            @NonNull Integer id,
-            @NonNull Integer vehicleCarryWeight,
-            @NonNull Short vehicleServiceInterval,
-            @NonNull Integer vehicleKilometers,
-            @NonNull Date vehicleLastService,
-            @NonNull Integer vehicleLastServiceKm,
-            @NonNull String vehiclePlate,
-            @NonNull String vehicleVIN,
-            @NonNull Date vehicleRegDate,
-            @NonNull Integer whId);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from vehicle where veh_id=?1"
-    )
-    void delete(@NonNull Integer id);
-
-    //----------------------------------------------------------------------------------------------------------------------
-    @Query(
-            nativeQuery = true,
-            value = """
-                     select v.veh_id as id,
-                           v.veh_carry_weight as carryWeight,
-                           v.veh_service_interval as serviceInterval,
-                           v.veh_kilometers as kilometers,
-                           v.veh_last_service as lastServiceDate,
-                           v.veh_last_service_km as lastServiceKm,
-                           v.veh_plate as plate,
-                           v.veh_vin as vin,
-                           v.veh_reg_date as registrationDate,
-                           d.user_id as driverId,
-                           u1.user_name as driverName,
-                           u1.user_email as driverEmail,
-                           u1.user_mobile as driverPhone,
-                           u1.user_image as driverImg
-                     from warehouse w
-                     join city c on w.city_id = c.city_id
-                     join region r on c.region_id = r.region_id
-                     join manager m on w.wh_id = m.wh_id
-                     join users u on m.user_id = u.user_id
-                     join vehicle v on w.wh_id=v.wh_id
-                     join driver d on d.veh_id=v.veh_id
-                     join users u1 on d.user_id=u1.user_id
-                     where m.user_id = :manager
-                     group by v.veh_id, v.veh_carry_weight, v.veh_service_interval, v.veh_kilometers, v.veh_last_service, v.veh_last_service_km, v.veh_plate, v.veh_vin, v.veh_reg_date, w.wh_id, c.city_name, r.region_name, d.user_id, u1.user_name, u1.user_email, u1.user_mobile, u1.user_image
-                     order by v.veh_reg_date
-                    """
-    )
-    List<Map<String, Object>> getVehiclesByManager(@NonNull @Param("manager") Long managerId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select v.veh_id as id,
-                        wh.wh_id as whId,
-                        v.veh_plate as plateNumber
-                    from vehicle v
-                        join warehouse wh on v.wh_id=wh.wh_id
-                        join manager m on v.wh_id=m.wh_id
-                    where m.user_id = :manager
-                    """
-    )
-    List<VehicleBasicDto> getBasicVehiclesByManager(@Param("manager") Long managerId);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select v.veh_id as id,
-                           v.veh_carry_weight as carryWeight,
-                           v.veh_service_interval as serviceInterval,
-                           v.veh_kilometers as kilometers,
-                           v.veh_last_service as lastServiceDate,
-                           v.veh_last_service_km as lastServiceKm,
-                           v.veh_plate as plate,
-                           v.veh_vin as vin,
-                           v.veh_reg_date as registrationDate,
-                           d.user_id as driverId,
-                           u.user_name as driverName,
-                           u.user_email as driverEmail,
-                           u.user_mobile as driverPhone,
-                           u.user_image as driverImg
-                    from vehicle v
-                        left join driver d on d.veh_id=v.veh_id
-                        left join users u on d.user_id=u.user_id
-                        join delivery de on v.veh_id = de.veh_id
-                        join warehouse wh on v.wh_id = wh.wh_id
-                        join manager m on wh.wh_id = m.wh_id
-                    where (de.del_date<>(:date)) and (m.user_id = :manager)
-                    """
-    )
-    List<Map<String, Object>> getAvailableVehiclesForDateByManager(@Param("manager")Long id, @Param("date")LocalDate date);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package mk.ukim.finki.db.distributorapp.vehicle;
-
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleWithDriverDto;
-
-import java.time.LocalDate;
-import java.util.List;
-
-public interface VehicleService {
-
-    List<VehicleBasicDto> getVehiclesByWarehouse(Integer warehouseId);
-
-    Integer create(VehicleDto vehicleDto);
-
-    Integer edit(VehicleDto vehicleDto);
-
-    void deleteById(Integer id);
-
-    List<VehicleWithDriverDto> getVehiclesByManager(Long managerId);
-
-    List<VehicleBasicDto> getBasicVehiclesByManagerId(Long managerId);
-
-    List<VehicleWithDriverDto> getAvailableVehiclesForDateByManager(Long id, LocalDate date);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/VehicleServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,147 +1,0 @@
-package mk.ukim.finki.db.distributorapp.vehicle;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleBasicDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleDto;
-import mk.ukim.finki.db.distributorapp.vehicle.dto.VehicleWithDriverDto;
-import org.springframework.stereotype.Service;
-
-import java.sql.Date;
-import java.time.LocalDate;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-@Service
-@RequiredArgsConstructor
-public class VehicleServiceImpl implements VehicleService {
-
-    private final VehicleRepository vehicleRepository;
-
-    @Override
-    public List<VehicleBasicDto> getVehiclesByWarehouse(Integer warehouseId) {
-        return this.vehicleRepository.findAllByWarehouseDto(warehouseId);
-    }
-
-    @Override
-    public Integer create(VehicleDto vehicleDto) {
-        return this.vehicleRepository.create(
-                vehicleDto.getCarryWeight(),
-                vehicleDto.getServiceInterval(),
-                vehicleDto.getKilometers(),
-                vehicleDto.getLastServiceDate(),
-                vehicleDto.getLastServiceKm(),
-                vehicleDto.getPlate(),
-                vehicleDto.getVin(),
-                vehicleDto.getRegistrationDate(),
-                vehicleDto.getWhId());
-    }
-
-    @Override
-    public Integer edit(VehicleDto vehicleDto) {
-
-        return this.vehicleRepository.edit(
-                vehicleDto.getId(),
-                vehicleDto.getCarryWeight(),
-                vehicleDto.getServiceInterval(),
-                vehicleDto.getKilometers(),
-                vehicleDto.getLastServiceDate(),
-                vehicleDto.getLastServiceKm(),
-                vehicleDto.getPlate(),
-                vehicleDto.getVin(),
-                vehicleDto.getRegistrationDate(),
-                vehicleDto.getWhId()
-        );
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        this.vehicleRepository.delete(id);
-    }
-    //------------------------------------------------------------------------------------------------------------------
-
-    @Override
-    public List<VehicleWithDriverDto> getVehiclesByManager(Long managerId) {
-        List<Map<String, Object>> results = this.vehicleRepository.getVehiclesByManager(managerId);
-
-        return results.stream()
-                .map(this::mapToVehicleWithDriverDto)
-                .collect(Collectors.toList());
-    }
-
-    @Override
-    public List<VehicleBasicDto> getBasicVehiclesByManagerId(Long managerId) {
-        return this.vehicleRepository.getBasicVehiclesByManager(managerId);
-    }
-
-    @Override
-    public List<VehicleWithDriverDto> getAvailableVehiclesForDateByManager(Long id, LocalDate date) {
-        List<Map<String, Object>> results = this.vehicleRepository.getAvailableVehiclesForDateByManager(id, date);
-
-        return results.stream()
-                .map(this::mapToVehicleWithDriverDto)
-                .collect(Collectors.toList());
-    }
-
-    private VehicleWithDriverDto mapToVehicleWithDriverDto(Map<String, Object> row) {
-        VehicleWithDriverDto dto = new VehicleWithDriverDto();
-
-        dto.setId(getInteger(row, "id"));
-        dto.setCarryWeight(getInteger(row, "carryWeight"));
-        dto.setKilometers(getInteger(row, "kilometers"));
-        dto.setServiceInterval(getShort(row, "serviceInterval"));
-
-        Date sqlDate = (java.sql.Date) row.get("lastServiceDate");
-        if (sqlDate != null) {
-            dto.setLastServiceDate(new java.util.Date(sqlDate.getTime()));
-        }
-        dto.setLastServiceKm(getInteger(row, "lastServiceKm"));
-        dto.setVin(getString(row, "vin"));
-        dto.setPlate(getString(row, "plate"));
-
-        Date sqlRegDate = (java.sql.Date) row.get("registrationDate");
-        if(sqlRegDate != null) {
-            dto.setRegistrationDate(new java.util.Date(sqlRegDate.getTime()));
-        }
-
-        Long driverId = getLong(row, "driverId");
-        if(driverId!=null){
-            DriverDto driverDto = new DriverDto();
-            driverDto.setId(driverId);
-            driverDto.setName(getString(row, "name"));
-            driverDto.setEmail(getString(row, "email"));
-            driverDto.setPhone(getString(row, "phone"));
-            driverDto.setImage(getString(row, "img"));
-            driverDto.setVehId(getInteger(row, "id"));
-            dto.setDriver(driverDto);
-        }
-
-        return dto;
-    }
-
-    private Long getLong(Map<String, Object> row, String key) {
-        Object value = row.get(key);
-        return (value != null) ? ((Number) value).longValue() : null;
-    }
-
-    private Double getDouble(Map<String, Object> row, String key) {
-        Object value = row.get(key);
-        return (value != null) ? ((Number) value).doubleValue() : null;
-    }
-
-    private Integer getInteger(Map<String, Object> row, String key) {
-        Object value = row.get(key);
-        return (value != null) ? ((Number) value).intValue() : null;
-    }
-
-    private String getString(Map<String, Object> row, String key) {
-        Object value = row.get(key);
-        return (value != null) ? value.toString() : null;
-    }
-
-    private Short getShort(Map<String, Object> row, String key) {
-        Object value = row.get(key);
-        return (value != null) ? ((Number) value).shortValue() : null;
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleBasicDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleBasicDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.vehicle.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class VehicleBasicDto {
-    private Integer id;
-    private Integer warehouseId;
-    private String plateNumber;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,28 +1,0 @@
-package mk.ukim.finki.db.distributorapp.vehicle.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-public class VehicleDto {
-    private Integer id;
-    private Integer carryWeight;
-    private Short serviceInterval;
-    private Integer kilometers;
-    private Date lastServiceDate;
-    private Integer lastServiceKm;
-    private String plate;
-    private String vin;
-    private Date registrationDate;
-    private Integer whId;
-    private String city;
-    private String region;
-    private Long driverId;
-    private String driverName;
-    private String driverEmail;
-    private String driverPhone;
-    private String driverImg;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleWithDriverDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/vehicle/dto/VehicleWithDriverDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package mk.ukim.finki.db.distributorapp.vehicle.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.db.distributorapp.driver.dto.DriverDto;
-
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class VehicleWithDriverDto {
-    private Integer id;
-    private Integer carryWeight;
-    private Short serviceInterval;
-    private Integer kilometers;
-    private Date lastServiceDate;
-    private Integer lastServiceKm;
-    private String plate;
-    private String vin;
-    private Date registrationDate;
-
-    DriverDto driver;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/warehouse/Warehouse.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/Warehouse.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,40 +1,0 @@
-package mk.ukim.finki.db.distributorapp.warehouse;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.articleUnit.ArticleUnit;
-import mk.ukim.finki.db.distributorapp.city.City;
-import mk.ukim.finki.db.distributorapp.manager.Manager;
-import mk.ukim.finki.db.distributorapp.vehicle.Vehicle;
-
-import java.util.List;
-
-@Entity
-@Data
-@Table(name = "warehouse")
-public class Warehouse {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "wh_id")
-    private Integer warehouseId;
-
-    @Size(max = 255)
-    @NotNull
-    @Column(name = "wh_adr", nullable = false)
-    private String warehouseAddress;
-
-    @OneToOne
-    @JoinColumn(name = "city_id", unique = true, nullable = false)
-    private City city;
-
-    @OneToOne(mappedBy = "warehouse")
-    private Manager manager;
-
-    @OneToMany(mappedBy = "warehouse")
-    private List<Vehicle> vehicles;
-
-    @OneToMany(mappedBy = "warehouse")
-    private List<ArticleUnit> articleUnits;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,137 +1,0 @@
-package mk.ukim.finki.db.distributorapp.warehouse;
-
-import lombok.NonNull;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseInventoryDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface WarehouseRepository extends JpaRepository<Warehouse, Integer> {
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select w.wh_id as id,
-                            w.wh_adr as address,
-                            w.city_id as cityid,
-                            c.city_name as cityName,
-                            c.region_id as regionId,
-                            r.region_name as regionName
-                    from warehouse w join city c on w.city_id = c.city_id join region r on c.region_id = r.region_id
-                    """
-    )
-    List<WarehouseDto> findAllDTO();
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into warehouse(wh_adr, city_id) " +
-                    "values (?1,?2)"
-    )
-    Integer create(
-            @NonNull String whAddress,
-            @NonNull Integer city);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update warehouse " +
-                    "set wh_adr = ?2,city_id = ?3 " +
-                    "where wh_id = ?1"
-    )
-    Integer edit(
-            @NonNull Integer id,
-            @NonNull String whAddress,
-            @NonNull Integer city);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from warehouse where wh_id = ?1"
-    )
-    void delete(@NonNull Integer id);
-    //-------------------------------------------------------------------------------------------------------------------
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select a.art_name as articleName,
-                           man.man_name as manufacturerName,
-                           count(au.unit_id) as totalUnits
-                    from warehouse w
-                        join manager m on m.wh_id = w.wh_id
-                        join article_unit au on au.wh_id = w.wh_id
-                        join unit_price up on au.unit_id = up.unit_id
-                        join price p on p.price_id=up.price_id
-                        join article a on p.art_id=a.art_id
-                        join manufacturer man on a.man_id = man.man_id
-                    where m.user_id = :manager
-                    group by a.art_name, man.man_name
-                    order by totalUnits
-                    """
-    )
-    List<WarehouseInventoryDto> getInventoryByManager(@NonNull @Param("manager") Long manager_id);
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                     with reg as (
-                         select r.*
-                         from city c1 join region r on c1.region_id = r.region_id
-                         where c1.city_id = :city
-                     )
-                     select w.wh_id as id,
-                            w.wh_adr as address,
-                            c.city_id as cityId,
-                            c.city_name as cityName,
-                            r1.region_id as regionId,
-                            r1.region_name as regionName
-                     from warehouse w
-                     join city c on c.city_id = w.city_id
-                     join reg r1 on r1.region_id = c.region_id
-                     where c.region_id = r1.region_id
-                    """
-    )
-    WarehouseDto findWarehouseDtoByCityId(@NonNull @Param("city") Integer cityId);
-
-
-    @Query(
-            nativeQuery = true,
-            value = """
-                    select art.art_id as articleId,
-                        art.art_name as articleName,
-                        art.art_image as articleImage,
-                        art.art_weight as articleWeight,
-                        count(au.unit_id) as quantity,
-                        min(au.unit_expiration_date) as nearestExpirationDate,
-                        p.price as sellingPrice,
-                        au.unit_cost_price as costPrice,
-                        m.man_name as manufacturerName,
-                        c.ctg_name as categoryName
-                    from article art
-                        left join price p on p.art_id = art.art_id and p.price_eff_date = (
-                                                select max(p2.price_eff_date)
-                                                from price p2
-                                                where p2.art_id = art.art_id
-                                                    and p2.price_eff_date<= current_date
-                                            )
-                        join unit_price up on up.price_id = p.price_id
-                        join article_unit au on au.unit_id = up.unit_id
-                        join manufacturer m on art.man_id = m.man_id
-                        join category c on art.ctg_id = c.ctg_id
-                    where au.wh_id = :warehouseId
-                    group by art.art_id, art.art_name, art.art_image, art.art_weight, p.price, au.unit_cost_price, m.man_name, c.ctg_name 
-                    order by art.art_name
-                    """
-    )
-    List<WarehouseStockDto> getWarehouseStock(@Param("warehouseId") Integer id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package mk.ukim.finki.db.distributorapp.warehouse;
-
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseInventoryDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
-
-import java.util.List;
-
-public interface WarehouseService {
-
-    WarehouseDto findById(Integer id);
-
-    WarehouseDto findByCityId(Integer id);
-
-    Integer create(WarehouseDto warehouseDto);
-
-    Integer edit(WarehouseDto warehouseDto);
-
-    void deleteById(Integer id);
-
-    List<WarehouseInventoryDto> getInventoryByManager(Long managerId);
-
-
-    WarehouseDto findByUserId(Integer cityId);
-
-    List<WarehouseDto> findAll();
-
-    List<WarehouseStockDto> getWarehouseStock(Integer id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/WarehouseServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,75 +1,0 @@
-package mk.ukim.finki.db.distributorapp.warehouse;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseInventoryDto;
-import mk.ukim.finki.db.distributorapp.warehouse.dto.WarehouseStockDto;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-@RequiredArgsConstructor
-public class WarehouseServiceImpl implements WarehouseService {
-    private final WarehouseRepository warehouseRepository;
-
-    @Override
-    public WarehouseDto findById(Integer id) {
-        Warehouse wh = this.warehouseRepository.findById(id).get();
-        return new WarehouseDto(
-                wh.getWarehouseId(),
-                wh.getWarehouseAddress(),
-                wh.getCity().getCityId(),
-                wh.getCity().getCityName(),
-                wh.getCity().getRegion().getRegionId(),
-                wh.getCity().getRegion().getRegionName()
-        );
-    }
-
-    @Override
-    public WarehouseDto findByCityId(Integer id) {
-        return this.warehouseRepository.findWarehouseDtoByCityId(id);
-    }
-
-    @Override
-    public Integer create(WarehouseDto warehouseDto) {
-        return this.warehouseRepository.create(
-                warehouseDto.getAddress(),
-                warehouseDto.getCityId()
-        );
-    }
-
-    @Override
-    public Integer edit(WarehouseDto warehouseDto) {
-        return this.warehouseRepository.edit(
-                warehouseDto.getId(),
-                warehouseDto.getAddress(),
-                warehouseDto.getCityId()
-        );
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        this.warehouseRepository.findById(id);
-    }
-
-    @Override
-    public List<WarehouseInventoryDto> getInventoryByManager(Long managerId) {
-        return this.warehouseRepository.getInventoryByManager(managerId);
-    }
-
-    @Override
-    public WarehouseDto findByUserId(Integer cityId) {
-        return this.warehouseRepository.findWarehouseDtoByCityId(cityId);
-    }
-
-    @Override
-    public List<WarehouseDto> findAll() {
-        return this.warehouseRepository.findAllDTO();
-    }
-
-    @Override
-    public List<WarehouseStockDto> getWarehouseStock(Integer id) {
-        return this.warehouseRepository.getWarehouseStock(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package mk.ukim.finki.db.distributorapp.warehouse.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class WarehouseDto {
-    private Integer id;
-    private String address;
-    private Integer cityId;
-    private String cityName;
-    private Integer regionId;
-    private String regionName;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseInventoryDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseInventoryDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.warehouse.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class WarehouseInventoryDto {
-    String articleName;
-    String manufacturerName;
-    Long totalUnits;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseStockDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/warehouse/dto/WarehouseStockDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,24 +1,0 @@
-package mk.ukim.finki.db.distributorapp.warehouse.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class WarehouseStockDto {
-    private Long articleId;
-    private String articleName;
-    private String articleImage;
-    private Integer articleWeight;
-    private Long quantity;
-    private Date nearestExpirationDate;
-    private BigDecimal sellingPrice;
-    private BigDecimal costPrice;
-    private String manufacturerName;
-    private String categoryName;
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/weekday/Weekday.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/weekday/Weekday.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,28 +1,0 @@
-package mk.ukim.finki.db.distributorapp.weekday;
-
-import jakarta.persistence.*;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import lombok.Data;
-import mk.ukim.finki.db.distributorapp.customerWeekday.CustomerWeekday;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-@Data
-@Entity
-@Table(name = "weekday")
-public class Weekday {
-    @Id
-    @Column(name = "day_id", nullable = false)
-    private Short weekdayId;
-
-    @Size(max = 20)
-    @NotNull
-    @Column(name = "day_name", nullable = false, length = 20)
-    private String dayName;
-
-    @OneToMany(mappedBy = "day")
-    private Set<CustomerWeekday> customerWeekdays = new LinkedHashSet<>();
-    // ? Set<CustomerWeekday> or List<CustomerWeekday>
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/weekday/WeekdayRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/weekday/WeekdayRepository.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,37 +1,0 @@
-package mk.ukim.finki.db.distributorapp.weekday;
-
-import lombok.NonNull;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-public interface WeekdayRepository extends JpaRepository<Weekday, Short> {
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "insert into weekday(day_id,day_name) " +
-                    "values (?1,?2)"
-    )
-    Integer create(@NonNull String dayName);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "update weekday " +
-                    "set day_name=?2 " +
-                    "where day_id=?1"
-    )
-    Integer edit(@NonNull Short id, @NonNull String dayName);
-
-    @Modifying
-    @Transactional
-    @Query(
-            nativeQuery = true,
-            value = "delete from weekday " +
-                    "where day_id=?1"
-    )
-    void deleteById(@NonNull Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/weekday/WeekdayService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/weekday/WeekdayService.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package mk.ukim.finki.db.distributorapp.weekday;
-
-import mk.ukim.finki.db.distributorapp.weekday.dto.WeekdayDto;
-
-public interface WeekdayService {
-
-    Integer create(WeekdayDto weekdayDto);
-
-    Integer edit(WeekdayDto weekdayDto);
-
-    void deleteById(Short id);
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/weekday/WeekdayServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/weekday/WeekdayServiceImpl.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.db.distributorapp.weekday;
-
-import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.db.distributorapp.weekday.dto.WeekdayDto;
-import org.springframework.stereotype.Service;
-
-@Service
-@RequiredArgsConstructor
-public class WeekdayServiceImpl implements WeekdayService {
-    private final WeekdayRepository weekdayRepository;
-
-    @Override
-    public Integer create(WeekdayDto weekdayDto) {
-        return this.weekdayRepository.create(
-                weekdayDto.getDayName()
-        );
-    }
-
-    @Override
-    public Integer edit(WeekdayDto weekdayDto) {
-        return this.weekdayRepository.edit(
-                weekdayDto.getId(),
-                weekdayDto.getDayName()
-        );
-    }
-
-    @Override
-    public void deleteById(Short id) {
-        this.weekdayRepository.deleteById(id);
-    }
-}
Index: c/main/java/mk/ukim/finki/db/distributorapp/weekday/dto/WeekdayDto.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/weekday/dto/WeekdayDto.java	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package mk.ukim.finki.db.distributorapp.weekday.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-@Data
-@AllArgsConstructor
-public class WeekdayDto {
-    private Short id;
-    private String dayName;
-}
Index: c/main/resources/application-local.properties
===================================================================
--- src/main/resources/application-local.properties	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,53 +1,0 @@
-server.port=8443
-
-## CORS Configuration
-management.endpoints.web.cors.allowed-origins=${ALLOWED_ORIGINS}
-
-## -------------------POSTGRESQL & JPA-------------------
-spring.datasource.url=${DB_LOCAL_URL}
-spring.datasource.username=${DB_LOCAL_USERNAME}
-spring.datasource.password=${DB_LOCAL_PASSWORD}
-
-spring.datasource.hikari.connectionTimeout=20000
-spring.datasource.hikari.maximumPoolSize=5
-
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
-
-spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
-spring.jpa.show-sql=true
-
-spring.datasource.hikari.schema=IND0_185022
-
-spring.jpa.properties.hibernate.format_sql=true
-spring.jpa.properties.hibernate.use_sql_comments=true
-spring.datasource.driver-class-name=org.postgresql.Driver
-
-## -------------------Image Uploads-------------------
-app.upload.dir=uploads
-app.image.url-predix=/images/
-
-spring.web.resources.static-locations=file:uploads/
-spring.web.resources.add-mappings=true
-
-## -------------------HTTPS Configuration-------------------
-server.ssl.key-store=classpath:keystore.p12
-server.ssl.key-store-password=${KS_PASSWORD}
-server.ssl.key-store-type=PKCS12
-server.ssl.key-alias=${KEY_ALIAS}
-server.ssl.enabled=true
-
-## -------------------JWT Configuration-------------------
-jwt.secret=${JWT_SECRET}
-jwt.validity=3600000
-
-## -------------------Email properties-------------------
-spring.mail.host=smtp.gmail.com
-spring.mail.port=587
-spring.mail.username=${SMTP_USERNAME}
-spring.mail.password=${SMTP_PASSWORD}
-spring.mail.properties.mail.smtp.auth=true
-spring.mail.properties.mail.smtp.starttls.enable=true
-
-## Logging/Debugging:
-logging.level.org.springframework.jdbc=DEBUG
-logging.level.org.hibernate.SQL=DEBUG
Index: c/main/resources/application-prod.properties
===================================================================
--- src/main/resources/application-prod.properties	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,46 +1,0 @@
-server.port=8443
-
-## CORS Configuration
-management.endpoints.web.cors.allowed-origins=${ALLOWED_ORIGINS}
-
-## -------------------POSTGRESQL & JPA-------------------
-spring.datasource.url=${DB_URL}
-spring.datasource.username=${DB_USERNAME}
-spring.datasource.password=${DB_PASSWORD}
-
-spring.datasource.hikari.connectionTimeout=20000
-spring.datasource.hikari.maximumPoolSize=5
-
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
-
-spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
-spring.jpa.show-sql=true
-
-spring.datasource.hikari.schema=IND0_185022
-
-spring.jpa.properties.hibernate.format_sql=true
-spring.jpa.properties.hibernate.use_sql_comments=true
-spring.datasource.driver-class-name=org.postgresql.Driver
-
-## -------------------HTTPS Configuration-------------------
-server.ssl.key-store=classpath:keystore.p12
-server.ssl.key-store-password=${KS_PASSWORD}
-server.ssl.key-store-type=PKCS12
-server.ssl.key-alias=${KEY_ALIAS}
-server.ssl.enabled=true
-
-## -------------------JWT Configuration-------------------
-jwt.secret=${JWT_SECRET}
-jwt.validity=3600000
-
-## -------------------Email properties-------------------
-spring.mail.host=smtp.gmail.com
-spring.mail.port=587
-spring.mail.username=${SMTP_USERNAME}
-spring.mail.password=${SMTP_PASSWORD}
-spring.mail.properties.mail.smtp.auth=true
-spring.mail.properties.mail.smtp.starttls.enable=true
-
-## Logging/Debugging:
-logging.level.org.springframework.jdbc=DEBUG
-logging.level.org.hibernate.SQL=DEBUG
Index: c/main/resources/application.properties
===================================================================
--- src/main/resources/application.properties	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,3 +1,0 @@
-spring.application.name=DistributorApp
-
-spring.profiles.active=local
Index: c/main/resources/templates/all-drivers.html
===================================================================
--- src/main/resources/templates/all-drivers.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-
-</body>
-</html>
Index: c/main/resources/templates/all-managers.html
===================================================================
--- src/main/resources/templates/all-managers.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-
-</body>
-</html>
Index: c/main/resources/templates/authentication/access_denied.html
===================================================================
--- src/main/resources/templates/authentication/access_denied.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-Error
-</body>
-</html>
Index: c/main/resources/templates/authentication/changePass.html
===================================================================
--- src/main/resources/templates/authentication/changePass.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,36 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Change Password</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div class="change-password-container">
-    <h1 class="text-center mb-4">Change Password</h1>
-    <form method="POST" th:action="@{/rest/auth/changePass}">
-        <div class="form-group">
-            <label for="oldPassword" class="form-label">Old Password</label>
-            <input type="password" class="form-control" id="oldPassword" name="oldPassword" required>
-        </div>
-
-        <div class="form-group">
-            <label for="newPassword" class="form-label">New Password</label>
-            <input type="password" class="form-control" id="newPassword" name="newPassword" required>
-        </div>
-
-        <div class="form-group">
-            <label for="confirmPassword" class="form-label">Confirm Password</label>
-            <input type="password" class="form-control" id="confirmPassword" name="confirmPassword" required>
-        </div>
-
-        <button type="submit" class="btn btn-primary">Change Password</button>
-    </form>
-
-    <div th:if="${error}" class="alert alert-danger mt-3" th:text="${error}"></div>
-
-    <div th:if="${success}" class="alert alert-success mt-3" th:text="${success}"></div>
-</div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/authentication/login.html
===================================================================
--- src/main/resources/templates/authentication/login.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,53 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Login</title>
-    <link rel="stylesheet" th:href="@{/css/style.css}">
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/header :: header}"></div>
-<main>
-    <div class="container">
-        <form class="form-signin mt-xl-5" method="post" th:action="@{/auth/login}">
-            <h2 class="form-signin-heading">Sign in</h2>
-            <p>
-                <!--                <label for="username" class="sr-only">Email</label>-->
-                <label>
-                    <input type="email" name="email" placeholder="Email" required>
-                </label>
-            </p>
-            <p>
-                <!--                <label for="password" class="sr-only">Password</label>-->
-                <label>
-                    <input type="password" name="password" placeholder="Password" required>
-                </label>
-            </p>
-
-            <div th:if="${param.error}" th:text="${param.error}" class="text-danger">
-                <p style="color: red;">Invalid username or password</p>
-            </div>
-
-            <div class="row">
-                <div class="col-md-3">
-                    <button id="submit" class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-3">
-                    <a href="/reset-password/request" class="btn btn-lg btn-block btn-light">Change your password</a>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-3">
-                    <a href="/auth/register" class="btn btn-lg btn-block btn-light">Register here</a>
-                </div>
-            </div>
-        </form>
-    </div>
-</main>
-<div th:replace="~{fragments/footer :: footer}"></div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/authentication/register.html
===================================================================
--- src/main/resources/templates/authentication/register.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,134 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Register</title>
-    <link rel="stylesheet" th:href="@{/css/style.css}">
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/header :: header}"></div>
-<main>
-    <div class="container mb-4">
-        <form class="form-signin mt-xl-5" th:action="@{/auth/register}" method="post">
-            <h2 class="form-signin-heading">Register as a Customer</h2>
-            <div class="container">
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="email" class="sr-only">Email: </label>
-                            <input type="email" id="email" name="email" class="form-control"
-                                   placeholder="Email" required="" autofocus="">
-                        </div>
-                    </div>
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="compName" class="sr-only">Company Name:</label>
-                            <input type="text" id="compName" name="compName" class="form-control"
-                            placeholder="Company Name" required="" autofocus="">
-                        </div>
-                    </div>
-
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="password" class="sr-only">Password: </label>
-                            <input type="password" id="password" name="password" class="form-control"
-                                   placeholder="Password" required="" autofocus="">
-                        </div>
-                    </div>
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="edb" class="sr-only">EDB: </label>
-                            <input type="text" id="edb" name="edb" class="form-control"
-                                   placeholder="Email" required="" autofocus="">
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="repeatedPassword" class="sr-only">Repeat Password: </label>
-                            <input type="password" id="repeatedPassword" name="repeatedPassword" class="form-control"
-                                   placeholder="Repeat Password" required="" autofocus="">
-                        </div>
-                    </div>
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="address" class="sr-only">Address: </label>
-                            <input type="text" id="address" name="address" class="form-control"
-                                   placeholder="Address" required="" autofocus="">
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="name" class="sr-only">First Name: </label>
-                            <input type="text" id="name" name="name" class="form-control"
-                                   placeholder="First Name" required="" autofocus="">
-                        </div>
-                    </div>
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="repImage" class="sr-only">Representative Image: </label>
-                            <input type="file" id="repImage" name="repImage" class="form-control" accept="image/*">
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="surname" class="sr-only">Last Name: </label>
-                            <input type="text" id="surname" name="surname" class="form-control"
-                                   placeholder="Last Name" required="" autofocus="">
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="mobile" class="sr-only">Mobile: </label>
-                            <input type="tel" id="mobile" name="mobile" class="form-control"
-                                   placeholder="Mobile" required="" autofocus="">
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="profileImage" class="sr-only">Profile Picture: </label>
-                            <input type="file" id="profileImage" name="profileImage" class="form-control" accept="image/*">
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <label for="city" class="sr-only">City the company is located in: </label>
-                            <select id="city" name="city" required class="form-control">
-                                <option value="" disabled selected>Select your city</option>
-                                <option th:each="city : ${cities}"
-                                        th:value="${city.getId()}"
-                                        th:text="${city.getName()}">
-                                </option>
-                            </select>
-                        </div>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-md-6">
-                        <div class="form-group">
-                            <button type="submit" class="btn btn-primary mt-3">Register</button>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </form>
-    </div>
-</main>
-<div th:replace="~{fragments/footer :: footer}"></div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/authentication/reset-password-request.html
===================================================================
--- src/main/resources/templates/authentication/reset-password-request.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,43 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Reset Password</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-    <style>
-        body {
-            background-color: #f8f9fa;
-        }
-        .reset-password-container {
-            max-width: 500px;
-            margin: 50px auto;
-            padding: 20px;
-            background: #fff;
-            border-radius: 8px;
-            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
-        }
-        .btn-primary {
-            width: 100%;
-            padding: 10px;
-        }
-    </style>
-</head>
-<body>
-<div class="reset-password-container">
-    <h1 class="text-center mb-4">Reset Password</h1>
-    <form th:action="@{/rest/auth/reset-password-request}" method="post">
-        <div class="form-group">
-            <label for="email" class="form-label">Email</label>
-            <input type="email" class="form-control" id="email" name="email" required>
-        </div>
-
-        <div class="form-group">
-            <button type="submit" class="btn btn-primary">Submit</button>
-            <a href="/static" class="btn btn-secondary mt-2 w-100">Cancel</a>
-        </div>
-    </form>
-    <div th:if="${error}" class="alert alert-danger mt-3" th:text="${error}"></div>
-</div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/authentication/reset-password.html
===================================================================
--- src/main/resources/templates/authentication/reset-password.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,51 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Reset Password</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-    <style>
-        body {
-            background-color: #f8f9fa;
-        }
-        .reset-password-container {
-            max-width: 500px;
-            margin: 50px auto;
-            padding: 20px;
-            background: #fff;
-            border-radius: 8px;
-            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
-        }
-        .btn-primary {
-            width: 100%;
-            padding: 10px;
-        }
-    </style>
-</head>
-<body>
-<div class="reset-password-container">
-    <h1 class="text-center mb-4">Reset Password</h1>
-    <form th:action="@{/reset-password}" method="post">
-        <input type="hidden" name="token" th:value="${token}">
-
-        <div class="form-group">
-            <label for="newPassword" class="form-label">New Password</label>
-            <input type="password" class="form-control" id="newPassword"
-                   name="newPassword" placeholder="New Password" required>
-        </div>
-
-        <div class="form-group">
-            <label for="confirmPassword" class="form-label">Confirm Password</label>
-            <input type="password" class="form-control" id="confirmPassword"
-                   name="confirmPassword" placeholder="Confirm Password" required>
-        </div>
-
-        <button type="submit" class="btn btn-primary">Reset Password</button>
-    </form>
-
-    <div th:if="${error}" class="alert alert-danger mt-3" th:text="${error}"></div>
-
-    <div th:if="${success}" class="alert alert-success mt-3" th:text="${success}"></div>
-</div>
-</body>
-</html>
Index: c/main/resources/templates/create-delivery.html
===================================================================
--- src/main/resources/templates/create-delivery.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,87 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Create Delivery</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-    <style>
-        .scrollable-table {
-            height: 300px;
-            overflow-y: auto;
-        }
-    </style>
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-<div class="container mt-4">
-    <h1>Create Delivery from Undelivered Orders</h1>
-
-    <form th:action="@{/manager/create-delivery}" method="post" th:object="${newDelivery}">
-        <div class="row">
-            <div class="col-md-8">
-                <h2>Undelivered Orders</h2>
-                <div class="scrollable-table">
-                    <table class="table table-striped">
-                        <thead>
-                        <tr>
-                            <th>Select</th>
-                            <th>Order ID</th>
-                            <th>Order Date</th>
-                            <th>Order Sum</th>
-                            <th>Customer Name</th>
-                        </tr>
-                        </thead>
-                        <tbody>
-                        <tr th:each="order : ${newOrders}">
-                            <td>
-                                <input type="checkbox" name="orderIds" th:field="*{orders}" th:value="${order.id}"/>
-                            </td>
-                            <td th:text="${order.id}"></td>
-                            <td th:text="${order.ordDate}"></td>
-                            <td th:text="${order.ordSum}"></td>
-                            <td th:text="${order.customerName}"></td>
-                        </tr>
-                        </tbody>
-                    </table>
-                </div>
-            </div>
-            <div class="col-md-4">
-                <div class="mb-3">
-                    <label for="deliveryDate" class="form-label">Delivery Date:</label>
-                    <input type="date" id="deliveryDate" name="deliveryDate" class="form-control" th:field="*{delDate}" required>
-                </div>
-                <h2>Select Vehicle</h2>
-                <div class="scrollable-table">
-                    <table class="table table-striped">
-                        <thead>
-                        <tr>
-                            <th>Select</th>
-                            <th>Plate</th>
-                            <th>Load Capacity</th>
-                            <th>Driver name</th>
-                        </tr>
-                        </thead>
-                        <tbody>
-                        <tr th:each="vehicle : ${vehicles}">
-                            <td>
-                                <input type="radio" name="vehicleId" th:value="${vehicle.id}" th:field="*{vehId}"/>
-                            </td>
-                            <td th:text="${vehicle.getPlate()}"></td>
-                            <td th:text="${vehicle.getCarryWeight()}"></td>
-                            <td th:text="${vehicle.getDriverName()}"></td>
-                        </tr>
-                        </tbody>
-                    </table>
-                </div>
-            </div>
-        </div>
-
-        <!-- Submit Button -->
-        <div class="mt-3">
-            <button type="submit" class="btn btn-primary">Create Delivery</button>
-        </div>
-    </form>
-</div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/create-driver.html
===================================================================
--- src/main/resources/templates/create-driver.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,153 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Create a Driver</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-<div class="container mb-4">
-    <form class="form-signin mt-xl-5" th:action="@{/admin/create-driver}" method="post" th:object="${driver}">
-        <h2 class="form-signin-heading">Create a Driver</h2>
-        <div class="container">
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="email" class="sr-only">Email: </label>
-                        <input type="email" id="email" name="email" class="form-control"
-                               placeholder="Email address" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="password" class="sr-only">Password:</label>
-                        <input type="password" id="password" name="password" class="form-control"
-                               placeholder="Password" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="repeatedPassword" class="sr-only">Repeat Password: </label>
-                        <input type="password" id="repeatedPassword" name="repeatedPassword" class="form-control"
-                               placeholder="Repeat Password" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="name" class="sr-only">First Name: </label>
-                        <input type="text" id="name" name="name" class="form-control"
-                               placeholder="First Name" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="surname" class="sr-only">Last Name: </label>
-                        <input type="text" id="surname" name="surname" class="form-control"
-                               placeholder="Last Name" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="mobile" class="sr-only">Mobile: </label>
-                        <input type="tel" id="mobile" name="mobile" class="form-control"
-                               placeholder="Mobile" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="profileImage" class="sr-only">Profile Picture: </label>
-                        <input type="file" id="profileImage" name="profileImage" class="form-control" accept="image/*">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="city" class="sr-only">City the company is located in: </label>
-                        <select id="city" name="city" required class="form-control">
-                            <option value="" disabled selected>Select your city</option>
-                            <option th:each="city : ${cities}"
-                                    th:value="${city.getId()}"
-                                    th:text="${city.getName()}">
-                            </option>
-                        </select>
-                    </div>
-                </div>
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="vehicle" class="sr-only">Assign a vehicle to the driver: </label>
-                        <select id="vehicle" name="vehicle" required class="form-control">
-                            <option value="" disabled selected>Choose a vehicle</option>
-                        </select>
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <button type="submit" class="btn btn-primary mt-3">Submit</button>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </form>
-</div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-<script>
-    document.addEventListener("DOMContentLoaded", function () {
-        var citySelect = document.getElementById("city");
-        var vehicleSelect = document.getElementById("vehicle");
-
-        if (citySelect) {
-            citySelect.addEventListener("change", function () {
-                let selectedCityId = this.value;
-                console.log("City changed, value:", selectedCityId);
-
-                // Clear current vehicle options
-                vehicleSelect.innerHTML = '<option value="">Select a vehicle</option>';
-
-                // Only fetch if a valid city is selected
-                if (selectedCityId) {
-                    fetch("/admin/vehicle-by-city?cityId=" + selectedCityId)
-                        .then(response => {
-                            if (!response.ok) {
-                                throw new Error("Network response was not ok " + response.statusText);
-                            }
-                            return response.json();
-                        })
-                        .then(data => {
-                            console.log("Fetched vehicles:", data);
-                            // Populate the vehicles dropdown
-                            data.forEach(function (vehicle) {
-                                // Adjust property names as needed – here we assume:
-                                // - vehicle.id: the vehicle's unique id
-                                // - vehicle.name: the vehicle's display name (or plate)
-                                var option = document.createElement("option");
-                                option.value = vehicle.id;
-                                option.text = vehicle.plateNumber;  // or use another property like vehicle.plate if available
-                                vehicleSelect.appendChild(option);
-                            });
-                        })
-                        .catch(error => {
-                            console.error("Fetch error:", error);
-                        });
-                }
-            });
-        }
-    });
-</script>
-</body>
-</html>
Index: c/main/resources/templates/create-manager.html
===================================================================
--- src/main/resources/templates/create-manager.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,136 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Create a Manager</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-<div class="container mb-4">
-    <form class="form-signin mt-xl-5" th:action="@{/admin/create-manager}" method="post" th:object="${manager}">
-        <h2 class="form-signin-heading">Create a Manager</h2>
-        <div class="container">
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="email" class="sr-only">Email: </label>
-                        <input type="email" id="email" name="email" class="form-control"
-                               placeholder="Email address" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="password" class="sr-only">Password:</label>
-                        <input type="password" id="password" name="password" class="form-control"
-                               placeholder="Password" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="repeatedPassword" class="sr-only">Repeat Password: </label>
-                        <input type="password" id="repeatedPassword" name="repeatedPassword" class="form-control"
-                               placeholder="Repeat Password" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="name" class="sr-only">First Name: </label>
-                        <input type="text" id="name" name="name" class="form-control"
-                               placeholder="First Name" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="surname" class="sr-only">Last Name: </label>
-                        <input type="text" id="surname" name="surname" class="form-control"
-                               placeholder="Last Name" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="mobile" class="sr-only">Mobile: </label>
-                        <input type="tel" id="mobile" name="mobile" class="form-control"
-                               placeholder="Mobile" required="" autofocus="">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="profileImage" class="sr-only">Profile Picture: </label>
-                        <input type="file" id="profileImage" name="profileImage" class="form-control" accept="image/*">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <label for="city" class="sr-only">City the company is located in: </label>
-                        <select id="city" name="city" required class="form-control">
-                            <option value="" disabled selected>Select your city</option>
-                            <option th:each="city:${cities}"
-                                    th:value="${city.getId()}"
-                                    th:text="${city.getName()}">
-                            </option>
-                        </select>
-                        <label for="warehouse"> Warehouse:</label>
-                        <input id="warehouse" type="text" name="warehouse" class="form-control" readonly/>
-                        <input type="hidden" id="warehouseId" name="warehouse">
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-md-6">
-                    <div class="form-group">
-                        <button type="submit" class="btn btn-primary mt-3">Submit</button>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </form>
-</div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-<script>
-    document.addEventListener("DOMContentLoaded", function () {
-        var citySelect = document.getElementById("city");
-        var warehouseField = document.getElementById("warehouse");
-        var warehouseId = document.getElementById("warehouseId");
-
-        if (citySelect) {
-            citySelect.addEventListener("change", function () {
-                let selectedCityId = this.value;
-                console.log("City changed, value:", selectedCityId);
-
-                fetch("/admin/warehouse-by-city?cityId=" + selectedCityId)
-                    .then(response => {
-                        if (!response.ok) {
-                            throw new Error("Network response was not ok " + response.statusText);
-                        }
-                        return response.json();
-                    })
-                    .then(data => {
-                        console.log("Fetched warehouse:", data);
-                        warehouseField.value = data.address || "";
-                        warehouseId.value = data.id;
-                    })
-                    .catch(error => {
-                        console.error("Fetch error:", error);
-                    });
-            });
-        }
-    });
-</script>
-
-</body>
-</html>
Index: c/main/resources/templates/create-order.html
===================================================================
--- src/main/resources/templates/create-order.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,195 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Place an Order</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-    <style>
-        .scrollable-cards {
-            max-height: 400px;
-            overflow-y: auto;
-        }
-    </style>
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-<div class="container mt-4">
-    <h1>Place Your Order</h1>
-
-    <div class="row mb-3">
-        <div class="col-md-4">
-            <label for="filterCategory" class="form-label">Category</label>
-            <select id="filterCategory" class="form-select">
-                <option value="">All</option>
-                <option th:each="cat : ${categories}"
-                        th:value="${cat.id}"
-                        th:text="${cat.name}">Category</option>
-            </select>
-        </div>
-        <div class="col-md-4">
-            <label for="filterManufacturer" class="form-label">Manufacturer</label>
-            <select id="filterManufacturer" class="form-select">
-                <option value="">All</option>
-                <option th:each="manu : ${manufacturers}"
-                        th:value="${manu.id}"
-                        th:text="${manu.name}">Manufacturer</option>
-            </select>
-        </div>
-        <div class="col-md-4">
-            <label for="filterSearch" class="form-label">Article Name</label>
-            <input type="text" id="filterSearch" class="form-control" placeholder="Search article">
-        </div>
-    </div>
-
-    <div class="scrollable-cards row row-cols-1 row-cols-md-2 row-cols-lg-3 g-3" id="articleContainer">
-        <div class="col" th:each="art : ${articles}"
-             th:attr="data-category=${art.categoryId}, data-manufacturer=${art.manufacturerId}, data-article-name=${art.name}, data-manufacturer-name=${art.manufacturer}">
-            <div class="card h-100">
-                <img th:src="@{${art.image}}" class="card-img-top" alt="Article Image" onerror="this.style.display='none'">
-                <div class="card-body">
-                    <h5 class="card-title" th:text="${art.name}">Article Name</h5>
-                    <p class="card-text">
-                        Manufacturer: <span th:text="${art.manufacturer}">Manufacturer</span><br>
-                        Price: $<span th:text="${art.price}">0.00</span><br>
-                        In Stock: <span th:text="${art.quantity}">0</span>
-                    </p>
-                </div>
-                <div class="card-footer">
-                    <button type="button" class="btn btn-primary btn-sm add-article"
-                            th:data-article-id="${art.id}"
-                            th:data-article-name="${art.name}"
-                            th:data-unit-price="${art.price}"
-                            th:data-available="${art.quantity}">
-                        Add to Order
-                    </button>
-                </div>
-            </div>
-        </div>
-    </div>
-
-    <h3 class="mt-4">Order Summary</h3>
-    <table class="table table-bordered" id="orderSummaryTable">
-        <thead>
-        <tr>
-            <th>Article</th>
-            <th>Unit Price</th>
-            <th>Manufacturer</th>
-            <th>Quantity</th>
-            <th>Line Total</th>
-            <th>Action</th>
-        </tr>
-        </thead>
-        <tbody>
-        </tbody>
-    </table>
-    <div class="mb-3">
-        <label for="totalSum" class="form-label">Total Sum:</label>
-        <span id="totalSum">0.00</span>
-    </div>
-    <div class="mb-3 form-check">
-        <input type="checkbox" class="form-check-input" id="proForma" name="proForma">
-        <label class="form-check-label" for="proForma">Request Pro Forma</label>
-    </div>
-
-    <form id="orderForm" th:action="@{/customer/create-order}" method="post">
-        <input type="hidden" id="orderItems" name="orderItems">
-        <button type="submit" class="btn btn-success">Place Order</button>
-    </form>
-</div>
-
-<div th:replace="~{fragments/footer :: footer}"></div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-<script>
-    const orderItems = [];
-
-    function updateOrderSummary() {
-        const tbody = document.querySelector('#orderSummaryTable tbody');
-        tbody.innerHTML = '';
-
-        let totalSum = 0;
-        orderItems.forEach((item, index) => {
-            const row = document.createElement('tr');
-            row.innerHTML = `
-        <td>${item.articleName}</td>
-        <td>${item.unitPrice.toFixed(2)}</td>
-        <td>${item.manufacturerName}</td>
-        <td>${item.quantity}</td>
-        <td>${(item.unitPrice * item.quantity).toFixed(2)}</td>
-        <td><button type="button" class="btn btn-danger btn-sm" data-index="${index}">Remove</button></td>
-      `;
-            tbody.appendChild(row);
-            totalSum += item.unitPrice * item.quantity;
-        });
-        document.getElementById('totalSum').textContent = totalSum.toFixed(2);
-        document.getElementById('orderItems').value = JSON.stringify(orderItems);
-    }
-
-    document.querySelectorAll('.add-article').forEach(function(button) {
-        button.addEventListener('click', function() {
-            const articleId = this.getAttribute('data-article-id');
-            const articleName = this.getAttribute('data-article-name');
-            const manufacturerName = this.getAttribute('data-manufacturer-name');
-            const unitPrice = parseFloat(this.getAttribute('data-unit-price'));
-            const available = parseInt(this.getAttribute('data-available'), 10);
-
-            let quantity = prompt("Enter quantity for " + articleName, "1");
-            quantity = parseInt(quantity, 10);
-            if (isNaN(quantity) || quantity <= 0) {
-                alert("Invalid quantity. Item not added.");
-                return;
-            }
-            if (quantity > available) {
-                alert("Quantity exceeds available stock.");
-                return;
-            }
-
-            const orderItem = {
-                articleId: articleId,
-                articleName: articleName,
-                manufacturerName: manufacturerName,
-                unitPrice: unitPrice,
-                quantity: quantity
-            };
-            orderItems.push(orderItem);
-            updateOrderSummary();
-        });
-    });
-
-    document.getElementById('orderSummaryTable').addEventListener('click', function(event) {
-        if (event.target.matches('button')) {
-            const index = event.target.getAttribute('data-index');
-            orderItems.splice(index, 1);
-            updateOrderSummary();
-        }
-    });
-
-    function filterArticles() {
-        const categoryFilter = document.getElementById('filterCategory').value;
-        const manufacturerFilter = document.getElementById('filterManufacturer').value;
-        const searchFilter = document.getElementById('filterSearch').value.toLowerCase();
-
-        document.querySelectorAll('#articleContainer > .col').forEach(function(card) {
-            const cardCategory = card.getAttribute('data-category');
-            const cardManufacturer = card.getAttribute('data-manufacturer');
-            const cardArticleName = card.getAttribute('data-article-name').toLowerCase();
-
-            let matches = true;
-            if (categoryFilter && cardCategory !== categoryFilter) {
-                matches = false;
-            }
-            if (manufacturerFilter && cardManufacturer !== manufacturerFilter) {
-                matches = false;
-            }
-            if (searchFilter && !cardArticleName.includes(searchFilter)) {
-                matches = false;
-            }
-            card.style.display = matches ? 'block' : 'none';
-        });
-    }
-
-    document.getElementById('filterCategory').addEventListener('change', filterArticles);
-    document.getElementById('filterManufacturer').addEventListener('change', filterArticles);
-    document.getElementById('filterSearch').addEventListener('keyup', filterArticles);
-</script>
-</body>
-</html>
Index: c/main/resources/templates/create-warehouse.html
===================================================================
--- src/main/resources/templates/create-warehouse.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Create Warehouse</title>
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/edit-driver.html
===================================================================
--- src/main/resources/templates/edit-driver.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/edit-manager.html
===================================================================
--- src/main/resources/templates/edit-manager.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,11 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-
-</body>
-</html>
Index: c/main/resources/templates/edit-warehouse.html
===================================================================
--- src/main/resources/templates/edit-warehouse.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,13 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Edit Warehouse</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/fragments/footer.html
===================================================================
--- src/main/resources/templates/fragments/footer.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,3 +1,0 @@
-<footer>
-    <p>&copy; 2024 Distributor App</p>
-</footer>
Index: c/main/resources/templates/fragments/header.html
===================================================================
--- src/main/resources/templates/fragments/header.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,41 +1,0 @@
-<header>
-    <nav>
-        <ul>
-            <li><a th:href="@{/}">Home</a></li>
-
-            <!--Customer-Specific Navigation-->
-            <li th:if="${userType == 'Customer'}">
-                <a th:href="@{/customer/orders}">My Orders</a>
-            </li>
-            <li th:if="${userType == 'Customer'}">
-                <a>Account details</a>
-            </li>
-
-            <!--Manager-Specific Navigation-->
-            <li th:if="${userType == 'Manager'}">
-                <a>Assign Deliveries</a>
-            </li>
-            <li th:if="${userType == 'Manager'}">
-                <a>Monitor Progress</a>
-            </li>
-
-            <!--Driver-Specific Navigation-->
-            <li th:if="${userType == 'Driver'}">
-                <a>Assigned Deliveries</a>
-            </li>
-            <li th:if="${userType == 'Driver'}">
-                <a>My Schedule</a>
-            </li>
-
-            <li th:if="${#authorization.expression('isAuthenticated()')}">
-                <a th:href="@{/logout}">Logout</a>
-            </li>
-            <li th:if="${#authorization.expression('!isAuthenticated()')}">
-                <a th:href="@{/login}">Login</a>
-            </li>
-            <li th:if="${#authorization.expression('!isAuthenticated()')}">
-                <a th:href="@{/register}">Register</a>
-            </li>
-        </ul>
-    </nav>
-</header>
Index: c/main/resources/templates/fragments/messages.html
===================================================================
--- src/main/resources/templates/fragments/messages.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<div th:if="${message}" class="alert alert-info">
-  <p th:text="${message}"></p>
-</div>
-<div th:if="${error}" class="alert alert-danger">
-  <p th:text="${error}"></p>
-</div>
Index: c/main/resources/templates/fragments/navbar.html
===================================================================
--- src/main/resources/templates/fragments/navbar.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,73 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org"
-      xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<nav th:fragment="navbar" class="navbar navbar-expand-lg navbar-light bg-light">
-    <div class="container-fluid">
-        <a class="navbar-brand" th:href="@{/}">Distributor App</a>
-        <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
-                data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false"
-                aria-label="Toggle navigation">
-            <span class="navbar-toggler-icon"></span>
-        </button>
-        <div class="collapse navbar-collapse" id="navbarNav">
-            <ul class="navbar-nav me-auto">
-                <!--    Links for authenticated users:    -->
-                <li class="nav-item" sec:authorize="isAuthenticated()">
-                    <a class="nav-link" href="/">Profile</a>
-                </li>
-
-                <!--    Links for specific roles:    -->
-                <!--    CUSTOMER    -->
-                <li class="nav-item" sec:authorize="hasRole('CUSTOMER')">
-                    <a class="nav-link" href="/customer/dashboard">Home</a>
-                </li>
-                <li class="nav-item" sec:authorize="hasRole('CUSTOMER')">
-                    <a class="nav-link" href="/customer/create-order">Create an order</a>
-                </li>
-                <!--    MANAGER    -->
-                <li class="nav-item" sec:authorize="hasRole('MANAGER')">
-                    <a class="nav-link" href="/manager/dashboard">Home</a>
-                </li>
-                <li class="nav-item" sec:authorize="hasRole('MANAGER')">
-                    <a class="nav-link" href="/manager/create-delivery">Create a delivery</a>
-                </li>
-                <!--    DRIVER    -->
-                <li class="nav-item" sec:authorize="hasRole('DRIVER')">
-                    <a class="nav-link" href="/driver/dashboard">Home</a>
-                </li>
-                <!--                <li class="nav-item" sec:authorize="hasRole('ADMIN')">-->
-                <!--                    <a class="nav-link" href="/home/admin">Admin Dashboard</a>-->
-                <!--                </li>-->
-                <li class="nav-item" sec:authorize="hasRole('ADMIN')">
-                    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button"
-                       data-bs-toggle="dropdown" aria-expanded="false">Create</a>
-                    <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
-                        <li><a class="dropdown-item" href="/admin/create-driver">Create a Driver</a></li>
-                        <li><a class="dropdown-item" href="/admin/create-manager">Create a Manager</a></li>
-                    </ul>
-                </li>
-            </ul>
-
-            <!--    Login/Logout Links:    -->
-            <ul class="navbar-nav ms-auto">
-                <li class="nav-item" sec:authorize="!isAuthenticated()">
-                    <a class="nav-link" href="/auth/login">Login</a>
-                </li>
-                <li class="nav-item" sec:authorize="isAuthenticated()">
-                    <form th:action="@{/auth/logout}" method="post">
-                        <button type="submit" class="nav-link btn btn-primary">Logout</button>
-                    </form>
-                </li>
-            </ul>
-        </div>
-    </div>
-</nav>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/home/admin.html
===================================================================
--- src/main/resources/templates/home/admin.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,18 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-
-<div class="container mt-4">
-    <h1>Welcome to the Home Page</h1>
-    <p th:text="'Welcome Admin!'"></p>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/home/customer.html
===================================================================
--- src/main/resources/templates/home/customer.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,58 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Customer Home</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-
-<div class="container mt-4">
-    <h1 th:text="'Here is your dashboard '+${customer.getCompName()}" class="mb-4"></h1>
-    <div class="row">
-        <div class="col-md-6">
-            <h2>Your Current Orders</h2>
-            <table class="table table-striped">
-                <thead>
-                <tr>
-                    <th>Order Date</th>
-                    <th>Order Sum</th>
-                    <th>Order Status</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="order : ${currentOrders}">
-                    <td th:text="${order.getOrdDate()}"></td>
-                    <td th:text="${order.getOrdSum()}"></td>
-                    <td th:text="${order.getStatusName()}"></td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-
-        <div class="col-md-6">
-            <h2>Your Current Deliveries</h2>
-            <table class="table table-striped">
-                <thead>
-                <tr>
-                    <th>Delivery Date</th>
-                    <th>Driver Name</th>
-                    <th>Delivery Status</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="delivery : ${currentDeliveries}">
-                    <td th:text="${delivery.getDelDate()}"></td>
-                    <td th:text="${delivery.getDriverName()}"></td>
-                    <td th:text="${delivery.getDelStatus()}"></td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/home/driver.html
===================================================================
--- src/main/resources/templates/home/driver.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,166 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Driver Home</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-    <style>
-        .scrollable-table {
-            max-height: 300px;
-            overflow-y: auto;
-        }
-    </style>
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-<div class="container mt-4">
-    <h1 th:text="'Here is your dashboard '+${user.getFirstName()}" class="mb-4"></h1>
-
-    <div class="row">
-        <div class="col-md-6">
-            <h2>New Deliveries</h2>
-            <div class="scrollable-table">
-                <table class="table table-striped">
-                    <thead>
-                    <tr>
-                        <th>Delivery ID</th>
-                        <th>Driver Name</th>
-                        <th>Delivery Date</th>
-                        <th>Action</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr th:each="delivery : ${newDeliveries}">
-                        <td th:text="${delivery.deliveryId}">1</td>
-                        <td th:text="${delivery.driverName}">Driver Name</td>
-                        <td th:text="${delivery.deliveryDate}">2025-02-14</td>
-                        <td>
-                            <button type="button"
-                                    class="btn btn-primary btn-sm start-delivery-btn"
-                                    data-bs-toggle="modal"
-                                    data-bs-target="#startDeliveryModal"
-                                    th:attr="data-delivery-id=${delivery.deliveryId},
-                                    data-driver-name=${delivery.driverName},
-                                    data-delivery-date=${delivery.deliveryDate}">
-                                Start Delivery
-                            </button>
-
-                        </td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-
-        <div class="col-md-6">
-            <h2>Ongoing Deliveries</h2>
-            <div class="scrollable-table">
-                <table class="table table-striped">
-                    <thead>
-                    <tr>
-                        <th>Delivery ID</th>
-                        <th>Driver Name</th>
-                        <th>Delivery Date</th>
-                        <th>Action</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr th:each="delivery : ${ongoingDeliveries}">
-                        <td th:text="${delivery.deliveryId}">1</td>
-                        <td th:text="${delivery.driverName}">Driver Name</td>
-                        <td th:text="${delivery.deliveryDate}">2025-02-14</td>
-                        <td>
-                            <button type="button"
-                                    class="btn btn-danger btn-sm end-delivery-btn"
-                                    data-bs-toggle="modal"
-                                    data-bs-target="#endDeliveryModal"
-                                    th:attr="data-delivery-id=${delivery.deliveryId}">
-                                End Delivery
-                            </button>
-                        </td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-    </div>
-</div>
-
-<div class="modal fade" id="startDeliveryModal" tabindex="-1" aria-labelledby="startDeliveryModalLabel"
-     aria-hidden="true">
-    <div class="modal-dialog">
-        <div class="modal-content">
-            <form th:action="@{/driver/start-delivery}" method="post" th:object="${startDelivery}">
-                <div class="modal-header">
-                    <h5 class="modal-title" id="startDeliveryModalLabel">Enter Delivery Details</h5>
-                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
-                </div>
-                <div class="modal-body">
-                    <!-- Hidden input for the delivery ID -->
-                    <input type="hidden" name="deliveryId" th:field="*{id}" id="modalDeliveryId"/>
-
-                    <!-- Odometer Reading at Start (maps to delStartKm) -->
-                    <div class="mb-3">
-                        <label for="delStartKm" class="form-label">Odometer Start (Km)</label>
-                        <input type="number" name="delStartKm" id="delStartKm" class="form-control" required>
-                    </div>
-
-                    <div class="mb-3">
-                        <p id="modalDeliveryInfo"></p>
-                    </div>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
-                    <button type="submit" class="btn btn-primary">Start Delivery</button>
-                </div>
-            </form>
-        </div>
-    </div>
-</div>
-
-<div class="modal fade" id="endDeliveryModal" tabindex="-1" aria-labelledby="endDeliveryModalLabel" aria-hidden="true">
-    <div class="modal-dialog">
-        <div class="modal-content">
-            <form th:action="@{/driver/end-delivery}" method="post" th:object="${endDelivery}">
-                <div class="modal-header">
-                    <h5 class="modal-title" id="endDeliveryModalLabel">Finish Delivery</h5>
-                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
-                </div>
-                <div class="modal-body">
-                    <input type="hidden" th:field="*{id}" id="endDeliveryId" />
-
-                    <div class="mb-3">
-                        <label for="delEndKm" class="form-label">Odometer End (Km)</label>
-                        <input type="number" th:field="*{delEndKm}" id="delEndKm" class="form-control" required>
-                    </div>
-
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
-                    <button type="submit" class="btn btn-primary">Finish Delivery</button>
-                </div>
-            </form>
-        </div>
-    </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-<script>
-    document.querySelectorAll('.start-delivery-btn').forEach(function (button) {
-        button.addEventListener('click', function () {
-            const deliveryId = this.getAttribute('data-delivery-id');
-            const driverName = this.getAttribute('data-driver-name');
-            const deliveryDate = this.getAttribute('data-delivery-date');
-            document.getElementById('modalDeliveryId').value = deliveryId;
-            document.getElementById('modalDeliveryInfo').textContent =
-                "Delivery Date: " + deliveryDate + " | Driver: " + driverName;
-        });
-    });
-    document.querySelectorAll('.end-delivery-btn').forEach(function(button) {
-        button.addEventListener('click', function() {
-            document.getElementById('endDeliveryId').value = this.getAttribute('data-delivery-id');
-        });
-    });
-</script>
-</body>
-</html>
Index: c/main/resources/templates/home/manager.html
===================================================================
--- src/main/resources/templates/home/manager.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,113 +1,0 @@
-<!DOCTYPE html>
-<html lang="en" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <title>Manager Home</title>
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet">
-    <style>
-        .scrollable-table {
-            max-height: 300px;
-            overflow-y: auto;
-        }
-    </style>
-</head>
-<body>
-<div th:replace="~{fragments/navbar :: navbar}"></div>
-
-<div class="container mt-4">
-    <h1 th:text="'Here is your dashboard '+${user.getFirstName()}"></h1>
-    <div class="row">
-        <div class="col-md-6">
-            <h2> Current inventory</h2>
-            <div class="scrollable-table">
-                <table class="table table-striped">
-                    <thead>
-                    <tr>
-                        <th>Article</th>
-                        <th>Manufacturer</th>
-                        <th>Quantity</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr th:each="inventory : ${currentInventory}">
-                        <td th:text="${inventory.getArticleName()}"></td>
-                        <td th:text="${inventory.getManufacturerName()}"></td>
-                        <td th:text="${inventory.getTotalUnits()}"></td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-        <div class="col-md-6">
-            <h2>Vehicle Status</h2>
-            <div class="scrollable-table">
-                <table class="table table-striped">
-                    <thead>
-                    <tr>
-                        <th>Vehicle plate</th>
-                        <th>Registration Date</th>
-                        <th>Driver Name</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr th:each="vehicle : ${vehicleStatus}">
-                        <td th:text="${vehicle.getPlate()}"></td>
-                        <td th:text="${vehicle.getRegistrationDate()}"></td>
-                        <td th:text="${vehicle.getDriverName()}"></td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-    </div>
-
-    <div class="row mt-4">
-        <div class="col-md-6">
-            <h2>New Orders</h2>
-            <div class="scrollable-table">
-                <table class="table table-striped">
-                    <thead>
-                    <tr>
-                        <th>Customer</th>
-                        <th>Order Date</th>
-                        <th>Order Sum</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr th:each="order : ${newOrders}">
-                        <td th:text="${order.getCustomerName()}"></td>
-                        <td th:text="${order.getOrdDate()}"></td>
-                        <td th:text="${order.getOrdSum()}"></td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-
-        <div class="col-md-6">
-            <h2>Current Deliveries</h2>
-            <div class="scrollable-table">
-                <table class="table table-striped">
-                    <thead>
-                    <tr>
-                        <th>Delivery Driver</th>
-                        <th>Delivery Start Time</th>
-                        <th>Delivery Status</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    <tr th:each="delivery : ${currentDeliveries}">
-                        <td th:text="${delivery.getDriverName()}"></td>
-                        <td th:text="${delivery.getDelStartTime()}"></td>
-                        <td th:text="${delivery.getDelStatus()}"></td>
-                    </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-    </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/start-delivery-1.html
===================================================================
--- src/main/resources/templates/start-delivery-1.html	(revision 8e28279e4f21d15a4ee1a6e1b42be914aa81bde5)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-
-</body>
-</html>
