Index: pom.xml
===================================================================
--- pom.xml	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ pom.xml	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -82,9 +82,4 @@
             <version>6.5.1</version>
         </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-context</artifactId>
-            <version>6.2.6</version>
-        </dependency>
         <!--        <dependency>-->
 <!--            <groupId>org.springframework.security</groupId>-->
Index: src/main/java/com/example/domify/DomifyApplication.java
===================================================================
--- src/main/java/com/example/domify/DomifyApplication.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/DomifyApplication.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -4,10 +4,8 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
-import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.security.crypto.password.PasswordEncoder;
 
 @SpringBootApplication
-@EnableScheduling
 public class DomifyApplication {
 
Index: src/main/java/com/example/domify/config/CustomUsernamePasswordAuthenticationProvider.java
===================================================================
--- src/main/java/com/example/domify/config/CustomUsernamePasswordAuthenticationProvider.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/config/CustomUsernamePasswordAuthenticationProvider.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -0,0 +1,113 @@
+//package com.example.domify.config;
+//
+//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.security.crypto.password.PasswordEncoder;
+//import org.springframework.stereotype.Component;
+//
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.security.authentication.AuthenticationManager;
+//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.config.annotation.web.configurers.HeadersConfigurer;
+//import org.springframework.security.core.userdetails.User;
+//import org.springframework.security.core.userdetails.UserDetails;
+//import org.springframework.security.core.userdetails.UserDetailsService;
+//import org.springframework.security.crypto.password.PasswordEncoder;
+//import org.springframework.security.provisioning.InMemoryUserDetailsManager;
+//import org.springframework.security.web.SecurityFilterChain;
+//
+//
+//@Configuration
+//@EnableWebSecurity
+//@EnableMethodSecurity
+//public class WebSecurityConfig {
+//
+//    private final PasswordEncoder passwordEncoder;
+//    private final CustomUsernamePasswordAuthenticationProvider authProvider;
+//
+//    public WebSecurityConfig(PasswordEncoder passwordEncoder, CustomUsernamePasswordAuthenticationProvider authProvider) {
+//        this.passwordEncoder = passwordEncoder;
+//        this.authProvider = authProvider;
+//    }
+//
+//    @Bean
+//    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
+//
+//        http
+//                .csrf(AbstractHttpConfigurer::disable)
+//                .headers((headers) -> headers
+//                        .frameOptions(HeadersConfigurer.FrameOptionsConfig::sameOrigin)
+//                )
+//                .authorizeHttpRequests((requests) -> requests
+//                        .requestMatchers("/", "/home", "/assets/**", "/register")
+//                        .permitAll()
+//                        .requestMatchers("/admin/**").hasRole("ADMIN")
+//                        .anyRequest()
+//                        .authenticated()
+//                )
+//                .formLogin((form) -> form
+//                        .loginPage("/login")
+//                        .permitAll()
+//                        .failureUrl("/login?error=BadCredentials")
+//                        .defaultSuccessUrl("/products", true)
+//                )
+//                .logout((logout) -> logout
+//                        .logoutUrl("/logout")
+//                        .clearAuthentication(true)
+//                        .invalidateHttpSession(true)
+//                        .deleteCookies("JSESSIONID")
+//                        .logoutSuccessUrl("/login")
+//                )
+//                .exceptionHandling((ex) -> ex
+//                        .accessDeniedPage("/access_denied")
+//                );
+//
+//        return http.build();
+//    }
+//
+//    // In Memory Authentication
+//    //    @Bean
+//    public UserDetailsService userDetailsService() {
+//        UserDetails user1 = User.builder()
+//                .username("elena.atanasoska")
+//                .password(passwordEncoder.encode("ea"))
+//                .roles("USER")
+//                .build();
+//        UserDetails user2 = User.builder()
+//                .username("darko.sasanski")
+//                .password(passwordEncoder.encode("ds"))
+//                .roles("USER")
+//                .build();
+//        UserDetails user3 = User.builder()
+//                .username("ana.todorovska")
+//                .password(passwordEncoder.encode("at"))
+//                .roles("USER")
+//                .build();
+//        UserDetails admin = User.builder()
+//                .username("admin")
+//                .password(passwordEncoder.encode("admin"))
+//                .roles("ADMIN")
+//                .build();
+//
+//        return new InMemoryUserDetailsManager(user1, user2, user3, admin);
+//    }
+//
+//    @Bean
+//    public AuthenticationManager authManager(HttpSecurity http) throws Exception {
+//        AuthenticationManagerBuilder authenticationManagerBuilder =
+//                http.getSharedObject(AuthenticationManagerBuilder.class);
+//        authenticationManagerBuilder.authenticationProvider(authProvider);
+//        return authenticationManagerBuilder.build();
+//    }
+//}
+//
+//
Index: c/main/java/com/example/domify/config/WebConfig.java
===================================================================
--- src/main/java/com/example/domify/config/WebConfig.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package com.example.domify.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@Configuration
-public class WebConfig implements WebMvcConfigurer {
-
-    @Override
-    public void addResourceHandlers(ResourceHandlerRegistry registry) {
-        registry.addResourceHandler("/uploads/**")
-                .addResourceLocations("file:uploads/");
-
-        registry.addResourceHandler("/static/**")
-                .addResourceLocations("classpath:/static/");
-    }
-}
Index: src/main/java/com/example/domify/config/WebSecurityConfig.java
===================================================================
--- src/main/java/com/example/domify/config/WebSecurityConfig.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/config/WebSecurityConfig.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -0,0 +1,4 @@
+//package com.example.domify.config;
+//
+//public class WebSecurityConfig {
+//}
Index: c/main/java/com/example/domify/jobs/PaymentScheduledJobs.java
===================================================================
--- src/main/java/com/example/domify/jobs/PaymentScheduledJobs.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,45 +1,0 @@
-package com.example.domify.jobs;
-
-import jakarta.persistence.EntityManager;
-import jakarta.persistence.PersistenceContext;
-import jakarta.transaction.Transactional;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-@Component
-public class PaymentScheduledJobs {
-
-    @PersistenceContext
-    private EntityManager entityManager;
-
-    @Scheduled(cron = "0 0 15 3-5 * *")
-    @Transactional
-    public void callReminderProcedure() {
-        entityManager
-                .createNativeQuery("CALL domify.send_monthly_payment_reminders2()")
-                .executeUpdate();
-    }
-
-    @Scheduled(cron = "0 0 18 * * *")
-    @Transactional
-    public void callUnresolvedServiceReminderProcedure() {
-        entityManager
-                .createNativeQuery("CALL domify.send_unresolved_service_request_reminders()")
-                .executeUpdate();
-    }
-    @Scheduled(cron = "0 0 12 * * *")
-    @Transactional
-    public void callOverdueMaintenanceFlagProcedure() {
-        entityManager
-                .createNativeQuery("CALL domify.flag_landlords_with_overdue_maintenance()")
-                .executeUpdate();
-    }
-
-    @Scheduled(cron = "0 0  * * *")
-    @Transactional
-    public void callUpdateListingStatusesProcedure() {
-        entityManager
-                .createNativeQuery("CALL domify.update_listing_statuses()")
-                .executeUpdate();
-    }
-}
Index: c/main/java/com/example/domify/model/exceptions/PropertyIdNotFoundException.java
===================================================================
--- src/main/java/com/example/domify/model/exceptions/PropertyIdNotFoundException.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package com.example.domify.model.exceptions;
-
-public class PropertyIdNotFoundException extends RuntimeException {
-    public PropertyIdNotFoundException(){
-        super("Property with that Id was not found in the database!");
-    }
-}
Index: c/main/java/com/example/domify/repository/InterestedRepository.java
===================================================================
--- src/main/java/com/example/domify/repository/InterestedRepository.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package com.example.domify.repository;
-
-import com.example.domify.model.Interested;
-import com.example.domify.model.InterestedId;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Repository
-public interface InterestedRepository extends JpaRepository<Interested, InterestedId> {
-    @Query("SELECT i FROM Interested i WHERE i.listing.id = :listingId")
-    List<Interested> findByListingId(@Param("listingId") Long listingId);
-
-    boolean existsByListingIdAndTenantProfileUserId(Long listingId, Long userId);
-}
Index: src/main/java/com/example/domify/repository/LandlordProfileRepository.java
===================================================================
--- src/main/java/com/example/domify/repository/LandlordProfileRepository.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/repository/LandlordProfileRepository.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -6,8 +6,5 @@
 import org.springframework.stereotype.Repository;
 
-import java.util.Optional;
-
 @Repository
 public interface LandlordProfileRepository extends JpaRepository<LandlordProfile,Long> {
-    Optional<LandlordProfile> findByUserId(Long id);
 }
Index: c/main/java/com/example/domify/repository/LeaseRepository.java
===================================================================
--- src/main/java/com/example/domify/repository/LeaseRepository.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package com.example.domify.repository;
-
-import com.example.domify.model.Lease;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Repository
-public interface LeaseRepository extends JpaRepository<Lease, Long> {
-    @Query("SELECT l FROM Lease l WHERE l.landlord.id = :landlordId")
-    List<Lease> findByLandlordId(Long landlordId);
-
-    @Query("SELECT l FROM Lease l WHERE l.tenant.id = :tenantId")
-    List<Lease> findByTenantId(Long tenantId);
-}
Index: src/main/java/com/example/domify/repository/TenantProfileRepository.java
===================================================================
--- src/main/java/com/example/domify/repository/TenantProfileRepository.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/repository/TenantProfileRepository.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -5,8 +5,5 @@
 import org.springframework.stereotype.Repository;
 
-import java.util.Optional;
-
 @Repository
 public interface TenantProfileRepository extends JpaRepository<TenantProfile,Long> {
-    Optional<TenantProfile> findByUserId(Long userId);
 }
Index: c/main/java/com/example/domify/repository/UnitImageRepository.java
===================================================================
--- src/main/java/com/example/domify/repository/UnitImageRepository.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,9 +1,0 @@
-package com.example.domify.repository;
-
-import com.example.domify.model.UnitImage;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface UnitImageRepository extends JpaRepository<UnitImage, Long> {
-}
Index: c/main/java/com/example/domify/repository/UnitRepository.java
===================================================================
--- src/main/java/com/example/domify/repository/UnitRepository.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,10 +1,0 @@
-package com.example.domify.repository;
-
-
-import com.example.domify.model.Unit;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface UnitRepository extends JpaRepository<Unit,Long> {
-}
Index: c/main/java/com/example/domify/service/InterestedService.java
===================================================================
--- src/main/java/com/example/domify/service/InterestedService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package com.example.domify.service;
-
-import com.example.domify.model.Interested;
-
-import java.util.List;
-
-public interface InterestedService {
-    List<Interested> findByListingId(Long id);
-    Interested save(Interested interested);
-    boolean existsByListingAndTenant(Long listingId, Long userId);
-
-}
Index: c/main/java/com/example/domify/service/LandlordProfileService.java
===================================================================
--- src/main/java/com/example/domify/service/LandlordProfileService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package com.example.domify.service;
-
-import com.example.domify.model.LandlordProfile;
-
-public interface LandlordProfileService {
-    LandlordProfile findByUserId(Long userId);
-}
Index: c/main/java/com/example/domify/service/LeaseService.java
===================================================================
--- src/main/java/com/example/domify/service/LeaseService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,22 +1,0 @@
-package com.example.domify.service;
-
-import com.example.domify.model.LandlordProfile;
-import com.example.domify.model.Lease;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.List;
-
-public interface LeaseService {
-    Lease save(Long listingId,
-               Long tenantId,
-               Long landlordUserId,
-               LocalDate startDate,
-               LocalDate endDate,
-               BigDecimal rentAmount,
-               BigDecimal depositAmount);
-    List<Lease> findByLandlord(Long landlordId);
-    List<Lease> findByTenant(Long tenantId);
-    Lease findById(Long leaseId);
-    void rateUser(Long leaseId, Long raterId, Integer rating, boolean isRatingTenant);
-}
Index: src/main/java/com/example/domify/service/ListingService.java
===================================================================
--- src/main/java/com/example/domify/service/ListingService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/service/ListingService.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -2,12 +2,9 @@
 
 import com.example.domify.model.Listing;
-import org.springframework.web.multipart.MultipartFile;
 
-import java.io.IOException;
 import java.util.List;
 
 public interface ListingService {
+
     List<Listing> findAll();
-    Listing save(Listing listing);
-    Listing findById(Long id);
 }
Index: src/main/java/com/example/domify/service/PropertiesService.java
===================================================================
--- src/main/java/com/example/domify/service/PropertiesService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/service/PropertiesService.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -18,4 +18,3 @@
                                       String city, String country, MultipartFile[] images,
                                       UserD owner) throws IOException;
-    Property findById(Long id);
 }
Index: c/main/java/com/example/domify/service/TenantProfileService.java
===================================================================
--- src/main/java/com/example/domify/service/TenantProfileService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package com.example.domify.service;
-
-import com.example.domify.model.TenantProfile;
-
-public interface TenantProfileService {
-    TenantProfile findByUserId(Long userId);
-}
Index: c/main/java/com/example/domify/service/UnitService.java
===================================================================
--- src/main/java/com/example/domify/service/UnitService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,13 +1,0 @@
-package com.example.domify.service;
-
-import com.example.domify.model.Unit;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.util.Optional;
-
-public interface UnitService {
-    Optional<Unit> findDetails(Long unitDetails);
-    Unit save(Unit unit, MultipartFile[] images) throws IOException;
-    Unit findById(Long id);
-}
Index: src/main/java/com/example/domify/service/UserService.java
===================================================================
--- src/main/java/com/example/domify/service/UserService.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/service/UserService.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -4,5 +4,4 @@
 import com.example.domify.model.UserD;
 
-import java.math.BigDecimal;
 import java.time.LocalDate;
 
@@ -22,15 +21,3 @@
 
     Boolean isLandlord(Long userId);
-    UserD findById(Long userId);
-    void updateUserRating(Long userId, BigDecimal newRating);
-
-    UserD updateUserProfile(Long userId,
-                            String firstName,
-                            String lastName,
-                            String street,
-                            String number,
-                            String municipality,
-                            String city,
-                            String country,
-                            String bio);
 }
Index: c/main/java/com/example/domify/service/impl/InterestedServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/InterestedServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,30 +1,0 @@
-package com.example.domify.service.impl;
-
-import com.example.domify.model.Interested;
-import com.example.domify.repository.InterestedRepository;
-import com.example.domify.service.InterestedService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-public class InterestedServiceImpl implements InterestedService {
-    private final InterestedRepository interestedRepository;
-
-    public InterestedServiceImpl(InterestedRepository interestedRepository) {
-        this.interestedRepository = interestedRepository;
-    }
-
-    @Override
-    public List<Interested> findByListingId(Long id) {
-        return interestedRepository.findByListingId(id);
-    }
-
-    public Interested save(Interested interested) {
-        return interestedRepository.save(interested);
-    }
-
-    public boolean existsByListingAndTenant(Long listingId, Long userId) {
-        return interestedRepository.existsByListingIdAndTenantProfileUserId(listingId, userId);
-    }
-}
Index: c/main/java/com/example/domify/service/impl/LandlordProfileServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/LandlordProfileServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package com.example.domify.service.impl;
-
-import com.example.domify.model.LandlordProfile;
-import com.example.domify.repository.LandlordProfileRepository;
-import com.example.domify.service.LandlordProfileService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class LandlordProfileServiceImpl implements LandlordProfileService {
-    private final LandlordProfileRepository landlordProfileRepository;
-
-    public LandlordProfileServiceImpl(LandlordProfileRepository landlordProfileRepository) {
-        this.landlordProfileRepository = landlordProfileRepository;
-    }
-
-    @Override
-    public LandlordProfile findByUserId(Long userId) {
-        return landlordProfileRepository.findByUserId(userId).orElseThrow(RuntimeException::new);
-    }
-}
Index: c/main/java/com/example/domify/service/impl/LeaseServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/LeaseServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,123 +1,0 @@
-package com.example.domify.service.impl;
-
-import com.example.domify.model.*;
-import com.example.domify.repository.LeaseRepository;
-import com.example.domify.service.*;
-//import jakarta.transaction.Transactional;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.List;
-import org.springframework.transaction.annotation.Transactional;
-
-
-@Service
-public class LeaseServiceImpl implements LeaseService {
-    private final LeaseRepository leaseRepository;
-    private final ListingService listingService;
-    private final UserService userService;
-    private final TenantProfileService tenantProfileService;
-    private final LandlordProfileService landlordProfileService;
-
-    public LeaseServiceImpl(LeaseRepository leaseRepository,
-                            ListingService listingService,
-                            UserService userService,
-                            TenantProfileService tenantProfileService,
-                            LandlordProfileService landlordProfileService) {
-        this.leaseRepository = leaseRepository;
-        this.listingService = listingService;
-        this.userService = userService;
-        this.tenantProfileService = tenantProfileService;
-        this.landlordProfileService = landlordProfileService;
-    }
-
-    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-    public Lease save(Long listingId,
-                                        Long tenantId,
-                                        Long landlordUserId,
-                                        LocalDate startDate,
-                                        LocalDate endDate,
-                                        BigDecimal rentAmount,
-                                        BigDecimal depositAmount) {
-        try {
-            System.out.println("=== ЗАПОЧНУВАЊЕ НА ТРАНСАКЦИЈА ЗА КРЕИРАЊЕ ДОГОВОР ===");
-            Listing listing = listingService.findById(listingId);
-
-            if (!"available".equals(listing.getStatus())) {
-                throw new IllegalStateException("Огласот не е достапен за изнајмување. Статус: " + listing.getStatus());
-            }
-
-            TenantProfile tenant = tenantProfileService.findByUserId(tenantId);
-            if (tenant == null) {
-                throw new IllegalArgumentException("Изнајмувачот не е пронајден со ID: " + tenantId);
-            }
-
-            LandlordProfile landlord = landlordProfileService.findByUserId(landlordUserId);
-            if (landlord == null) {
-                throw new IllegalArgumentException("Издавачот не е пронајден со ID: " + landlordUserId);
-            }
-
-            System.out.println("TENANT ID: " + tenant.getId());
-            System.out.println("LANDLORD ID: " + landlord.getId());
-
-            Lease lease = new Lease(
-                    startDate,
-                    endDate,
-                    rentAmount,
-                    depositAmount,
-                    listing,
-                    tenant,
-                    landlord
-            );
-
-            Lease savedLease = leaseRepository.save(lease);
-            listing.setStatus("изнајмено");
-            listingService.save(listing);
-            return savedLease;
-
-        } catch (Exception e) {
-            System.err.println("ГРЕШКА ВО ТРАНСАКЦИЈАТА: " + e.getMessage());
-            throw new RuntimeException("Грешка при креирање на договор за изнајмување: " + e.getMessage(), e);
-        }
-    }
-
-    public List<Lease> findByLandlord(Long landlordId) {
-        return leaseRepository.findByLandlordId(landlordId);
-    }
-
-    public List<Lease> findByTenant(Long tenantId) {
-        return leaseRepository.findByTenantId(tenantId);
-    }
-
-    @Override
-    public Lease findById(Long leaseId) {
-        return leaseRepository.findById(leaseId).orElseThrow(RuntimeException::new);
-    }
-
-    @Transactional
-    public void rateUser(Long leaseId, Long raterProfileId, Integer rating, boolean isRatingTenant) {
-        Lease lease = leaseRepository.findById(leaseId)
-                .orElseThrow(() -> new IllegalArgumentException("Lease not found"));
-
-        boolean isRaterLandlord = lease.getLandlord().getId().equals(raterProfileId);
-        boolean isRaterTenant = lease.getTenant().getId().equals(raterProfileId);
-
-        if (!isRaterLandlord && !isRaterTenant) {
-            throw new IllegalArgumentException("User is not part of this lease");
-        }
-
-        if (isRatingTenant && !isRaterLandlord) {
-            throw new IllegalArgumentException("Only landlord can rate tenant");
-        }
-
-        if (!isRatingTenant && !isRaterTenant) {
-            throw new IllegalArgumentException("Only tenant can rate landlord");
-        }
-
-        UserD userToRate = isRatingTenant ? lease.getTenant().getUser() : lease.getLandlord().getUser();
-
-        userService.updateUserRating(userToRate.getId(), BigDecimal.valueOf(rating));
-    }
-}
Index: src/main/java/com/example/domify/service/impl/ListingServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/ListingServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/service/impl/ListingServiceImpl.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -21,13 +21,3 @@
         return listingRepository.findAll();
     }
-
-    @Override
-    public Listing save(Listing listing) {
-        return listingRepository.save(listing);
-    }
-
-    @Override
-    public Listing findById(Long id) {
-        return listingRepository.findById(id).orElseThrow(RuntimeException::new);
-    }
 }
Index: src/main/java/com/example/domify/service/impl/PropertiesServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/PropertiesServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/service/impl/PropertiesServiceImpl.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -5,5 +5,4 @@
 import com.example.domify.model.PropertyImage;
 import com.example.domify.model.UserD;
-import com.example.domify.model.exceptions.PropertyIdNotFoundException;
 import com.example.domify.repository.AddressRepository;
 import com.example.domify.repository.PropertyImageRepository;
@@ -11,15 +10,10 @@
 import com.example.domify.repository.PropertyTypeRepository;
 import com.example.domify.service.PropertiesService;
-import org.springframework.transaction.annotation.Isolation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
 import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.time.LocalDateTime;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
@@ -32,14 +26,5 @@
     private final AddressRepository addressRepository;
 
-    @Value("${app.upload.dir:static/uploads/properties/}")
-    private String uploadDir;
-
-    private static final List<String> ALLOWED_EXTENSIONS = Arrays.asList("jpg", "jpeg", "png", "gif", "webp");
-    private static final long MAX_FILE_SIZE = 5 * 1024 * 1024;
-
-    public PropertiesServiceImpl(PropertyRepository propertyRepository,
-                                 PropertyTypeRepository propertyTypeRepository,
-                                 PropertyImageRepository propertyImageRepository,
-                                 AddressRepository addressRepository) {
+    public PropertiesServiceImpl(PropertyRepository propertyRepository, PropertyTypeRepository propertyTypeRepository, PropertyImageRepository propertyImageRepository, AddressRepository addressRepository) {
         this.propertyRepository = propertyRepository;
         this.propertyTypeRepository = propertyTypeRepository;
@@ -59,95 +44,40 @@
 
     @Override
-    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public Property createPropertyWithImages(Long propertyTypeId, String name, String description,
                                              String street, String streetNumber, String municipality,
                                              String city, String country, MultipartFile[] images,
                                              UserD owner) throws IOException {
-        try {
-            System.out.println("=== ЗАПОЧНУВАЊЕ НА ТРАНСАКЦИЈА ЗА КРЕИРАЊЕ НА ИМОТ ===");
 
-            if (name == null || name.trim().isEmpty()) {
-                throw new IllegalArgumentException("Property name cannot be empty");
+        var propertyType = propertyTypeRepository.findById(propertyTypeId)
+                .orElseThrow(() -> new RuntimeException("Property type not found with ID: " + propertyTypeId));
+
+        Address address = new Address(street, streetNumber, municipality, city, country);
+        addressRepository.save(address);
+        Property property = new Property(name, description, LocalDateTime.now(), owner,
+                propertyType, address);
+        property = propertyRepository.save(property);
+        if (images != null && images.length > 0) {
+            String uploadBaseDir = "src/main/resources/static/uploads/properties/";
+            for (int i = 0; i < images.length; i++) {
+                MultipartFile image = images[i];
+                if (!image.isEmpty()) {
+                    String filename = String.format("property_%d_img_%03d.jpg", property.getId(), i + 1);
+
+                    File uploadDir = new File(uploadBaseDir);
+                    if (!uploadDir.exists()) {
+                        uploadDir.mkdirs();
+                    }
+
+                    File destinationFile = new File(uploadDir, filename);
+                    image.transferTo(destinationFile);
+
+                    String imagePath = "/uploads/properties/" + filename;
+                    PropertyImage propertyImage = new PropertyImage(imagePath, property);
+                    propertyImageRepository.save(propertyImage);
+                }
             }
-
-            var propertyType = propertyTypeRepository.findById(propertyTypeId)
-                    .orElseThrow(() -> new RuntimeException("Property type not found with ID: " + propertyTypeId));
-
-            Address address = new Address(street, streetNumber, municipality, city, country);
-            address = addressRepository.save(address);
-
-            Property property = new Property(name, description, LocalDateTime.now(), owner, propertyType, address);
-            property = propertyRepository.save(property);
-
-            if (images != null && images.length > 0) {
-                processImageUploads(images, property);
-            }
-            return property;
-
-        } catch (Exception e) {
-            System.err.println("ГРЕШКА ВО ТРАНСАКЦИЈА ЗА КРЕИРАЊЕ НА ИМОТ: " + e.getMessage());
-            throw new RuntimeException("Грешка при креирање на имот со слики: " + e.getMessage(), e);
-        }
-    }
-
-    @Override
-    public Property findById(Long id) {
-        return propertyRepository.findById(id).orElseThrow(PropertyIdNotFoundException::new);
-    }
-
-    private void processImageUploads(MultipartFile[] images, Property property) throws IOException {
-        String uploadDir = "uploads/properties/";
-        Path uploadPath = Paths.get(uploadDir);
-
-        if (!Files.exists(uploadPath)) {
-            Files.createDirectories(uploadPath);
         }
 
-        for (int i = 0; i < images.length; i++) {
-            MultipartFile image = images[i];
-            if (image.isEmpty()) {
-                continue;
-            }
-            validateImageFile(image);
-            String originalFilename = image.getOriginalFilename();
-            String extension = getFileExtension(originalFilename);
-            String filename = String.format("property_%d_img_%03d.%s",
-                    property.getId(), i + 1, extension);
-
-            Path destinationPath = uploadPath.resolve(filename);
-            Files.copy(image.getInputStream(), destinationPath);
-
-            String imagePath = "/uploads/properties/" + filename;
-            PropertyImage propertyImage = new PropertyImage(imagePath, property);
-            propertyImageRepository.save(propertyImage);
-        }
-    }
-
-    private void validateImageFile(MultipartFile file) throws IOException {
-        if (file.getSize() > MAX_FILE_SIZE) {
-            throw new IOException("File size exceeds maximum allowed size of 5MB");
-        }
-
-        String filename = file.getOriginalFilename();
-        if (filename == null || filename.isEmpty()) {
-            throw new IOException("Invalid filename");
-        }
-
-        String extension = getFileExtension(filename).toLowerCase();
-        if (!ALLOWED_EXTENSIONS.contains(extension)) {
-            throw new IOException("File type not allowed. Allowed types: " + ALLOWED_EXTENSIONS);
-        }
-        String contentType = file.getContentType();
-        if (contentType == null || !contentType.startsWith("image/")) {
-            throw new IOException("File is not a valid image");
-        }
-    }
-
-    private String getFileExtension(String filename) {
-        if (filename == null || filename.isEmpty()) {
-            return "";
-        }
-        int lastDot = filename.lastIndexOf('.');
-        return lastDot == -1 ? "" : filename.substring(lastDot + 1);
+        return property;
     }
 }
Index: c/main/java/com/example/domify/service/impl/TenantProfileServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/TenantProfileServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,19 +1,0 @@
-package com.example.domify.service.impl;
-
-import com.example.domify.model.TenantProfile;
-import com.example.domify.repository.TenantProfileRepository;
-import com.example.domify.service.TenantProfileService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class TenantProfileServiceImpl implements TenantProfileService {
-    private final TenantProfileRepository tenantProfileRepository;
-
-    public TenantProfileServiceImpl(TenantProfileRepository tenantProfileRepository) {
-        this.tenantProfileRepository = tenantProfileRepository;
-    }
-
-    public TenantProfile findByUserId(Long userId) {
-        return tenantProfileRepository.findByUserId(userId).orElseThrow(RuntimeException::new);
-    }
-}
Index: c/main/java/com/example/domify/service/impl/UnitServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/UnitServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,111 +1,0 @@
-package com.example.domify.service.impl;
-import com.example.domify.model.Property;
-import com.example.domify.model.PropertyImage;
-import com.example.domify.model.Unit;
-import com.example.domify.model.UnitImage;
-import com.example.domify.repository.UnitImageRepository;
-import com.example.domify.repository.UnitRepository;
-import com.example.domify.service.UnitService;
-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.Arrays;
-import java.util.List;
-import java.util.Optional;
-
-@Service
-public class UnitServiceImpl implements UnitService {
-    private final UnitRepository unitRepository;
-    private final UnitImageRepository unitImageRepository;
-
-    @Value("${app.upload.dir:static/uploads/properties/}")
-    private String uploadDir;
-    private static final List<String> ALLOWED_EXTENSIONS = Arrays.asList("jpg", "jpeg", "png", "gif", "webp");
-    private static final long MAX_FILE_SIZE = 5 * 1024 * 1024;
-    public UnitServiceImpl(UnitRepository unitRepository, UnitImageRepository unitImageRepository) {
-        this.unitRepository = unitRepository;
-        this.unitImageRepository = unitImageRepository;
-    }
-    @Override
-    public Optional<Unit> findDetails(Long unitDetails) {
-        return unitRepository.findById(unitDetails);
-    }
-
-    @Override
-    public Unit save(Unit unit, MultipartFile[] images) throws IOException {
-        Unit savedUnit = unitRepository.save(unit);
-        if (images != null && images.length > 0) {
-            processImageUploads(images, unit);
-        }
-
-        return savedUnit;
-    }
-
-    @Override
-    public Unit findById(Long id) {
-        return unitRepository.findById(id).orElseThrow(RuntimeException::new);
-    }
-
-    private void processImageUploads(MultipartFile[] images, Unit unit) throws IOException {
-        String uploadDir = "uploads/units/";
-        Path uploadPath = Paths.get(uploadDir);
-
-        if (!Files.exists(uploadPath)) {
-            Files.createDirectories(uploadPath);
-        }
-
-        for (int i = 0; i < images.length; i++) {
-            MultipartFile image = images[i];
-            if (image.isEmpty()) {
-                continue;
-            }
-            validateImageFile(image);
-            String originalFilename = image.getOriginalFilename();
-            String extension = getFileExtension(originalFilename);
-            String filename = String.format("property_%d_img_%03d.%s",
-                    unit.getId(), i + 1, extension);
-
-            Path destinationPath = uploadPath.resolve(filename);
-            Files.copy(image.getInputStream(), destinationPath);
-
-            String imagePath = "/uploads/units/" + filename;
-            UnitImage propertyImage = new UnitImage(imagePath, unit);
-            unitImageRepository.save(propertyImage);
-        }
-
-    }
-
-    private void validateImageFile(MultipartFile file) throws IOException {
-        if (file.getSize() > MAX_FILE_SIZE) {
-            throw new IOException("File size exceeds maximum allowed size of 5MB");
-        }
-
-        String filename = file.getOriginalFilename();
-        if (filename == null || filename.isEmpty()) {
-            throw new IOException("Invalid filename");
-        }
-
-        String extension = getFileExtension(filename).toLowerCase();
-        if (!ALLOWED_EXTENSIONS.contains(extension)) {
-            throw new IOException("File type not allowed. Allowed types: " + ALLOWED_EXTENSIONS);
-        }
-        String contentType = file.getContentType();
-        if (contentType == null || !contentType.startsWith("image/")) {
-            throw new IOException("File is not a valid image");
-        }
-    }
-
-    private String getFileExtension(String filename) {
-        if (filename == null || filename.isEmpty()) {
-            return "";
-        }
-        int lastDot = filename.lastIndexOf('.');
-        return lastDot == -1 ? "" : filename.substring(lastDot + 1);
-    }
-
-}
Index: src/main/java/com/example/domify/service/impl/UserServiceImpl.java
===================================================================
--- src/main/java/com/example/domify/service/impl/UserServiceImpl.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/service/impl/UserServiceImpl.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -6,11 +6,8 @@
 import com.example.domify.repository.*;
 import com.example.domify.service.UserService;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.time.LocalDate;
 
@@ -86,64 +83,3 @@
         return landlordProfileRepository.findById(userId).isPresent();
     }
-
-    @Override
-    public UserD findById(Long userId) {
-        return userRepository.findById(userId).orElseThrow(RuntimeException::new);
-    }
-
-    @Transactional
-    public void updateUserRating(Long userId, BigDecimal newRating) {
-        UserD user = userRepository.findById(userId)
-                .orElseThrow(() -> new IllegalArgumentException("User not found"));
-
-        if (user.getRating().compareTo(BigDecimal.ZERO) == 0) {
-            user.setRating(newRating);
-        } else {
-            BigDecimal average = user.getRating()
-                    .add(newRating)
-                    .divide(BigDecimal.valueOf(2), 2, RoundingMode.HALF_UP);
-            user.setRating(average);
-        }
-        userRepository.save(user);
-    }
-
-    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-    public UserD updateUserProfile(Long userId,
-                                   String firstName,
-                                   String lastName,
-                                   String street,
-                                   String number,
-                                   String municipality,
-                                   String city,
-                                   String country,
-                                   String bio) {
-        try {
-            System.out.println("=== ЗАПОЧНУВАЊЕ НА ТРАНСАКЦИЈА ЗА ПРОФИЛ ===");
-
-            UserD user = userRepository.findById(userId)
-                    .orElseThrow(() -> new IllegalArgumentException("Корисник не е пронајден со ID: " + userId));
-
-            user.setFirstName(firstName);
-            user.setLastName(lastName);
-            user.setBio(bio);
-
-            Address address = user.getAddress();
-            address.setStreet(street);
-            address.setNumber(number);
-            address.setMunicipality(municipality);
-            address.setCity(city);
-            address.setCountry(country);
-
-            addressRepository.save(address);
-            UserD savedUser = userRepository.save(user);
-
-            System.out.println("ПРОФИЛ АЖУРИРАН ЗА КОРИСНИК: " + firstName + " " + lastName);
-            return savedUser;
-
-        } catch (Exception e) {
-            System.err.println("ГРЕШКА ВО ТРАНСАКЦИЈА ЗА ПРОФИЛ: " + e.getMessage());
-            throw new RuntimeException("Грешка при ажурирање на профил: " + e.getMessage(), e);
-        }
-    }
-
 }
Index: c/main/java/com/example/domify/web/DocumentsController.java
===================================================================
--- src/main/java/com/example/domify/web/DocumentsController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,14 +1,0 @@
-package com.example.domify.web;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-@Controller
-@RequestMapping("/documents")
-public class DocumentsController {
-    @GetMapping
-    public String getDocuments() {
-        return "documents";
-    }
-}
Index: c/main/java/com/example/domify/web/GlobalControllerAdvice.java
===================================================================
--- src/main/java/com/example/domify/web/GlobalControllerAdvice.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package com.example.domify.web;
-
-import com.example.domify.model.UserD;
-import com.example.domify.service.UserService;
-import jakarta.servlet.http.HttpServletRequest;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.ui.Model;
-
-@ControllerAdvice
-public class GlobalControllerAdvice {
-
-    private final UserService userService;
-
-    public GlobalControllerAdvice(UserService userService) {
-        this.userService = userService;
-    }
-
-    @ModelAttribute
-    public void addCommonAttributes(HttpServletRequest request, Model model) {
-        UserD user = (UserD) request.getSession().getAttribute("user");
-        model.addAttribute("user", user);
-
-        if (user != null) {
-            boolean isLandlord = userService.isLandlord(user.getId());
-            model.addAttribute("isLandlord", isLandlord);
-        } else {
-            model.addAttribute("isLandlord", false);
-        }
-    }
-}
Index: c/main/java/com/example/domify/web/LeaseController.java
===================================================================
--- src/main/java/com/example/domify/web/LeaseController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,158 +1,0 @@
-package com.example.domify.web;
-
-import com.example.domify.model.*;
-import com.example.domify.service.*;
-import jakarta.servlet.http.HttpServletRequest;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.List;
-import java.util.Map;
-
-@Controller
-@RequestMapping("/lease")
-public class LeaseController {
-    private final LeaseService leaseService;
-    private final ListingService listingService;
-    private final TenantProfileService tenantProfileService;
-    private final LandlordProfileService landlordProfileService;
-    private final UserService userService;
-
-    public LeaseController(LeaseService leaseService,
-                           ListingService listingService,
-                           TenantProfileService tenantProfileService,
-                           LandlordProfileService landlordProfileService,
-                           UserService userService) {
-        this.leaseService = leaseService;
-        this.listingService = listingService;
-        this.tenantProfileService = tenantProfileService;
-        this.landlordProfileService = landlordProfileService;
-        this.userService = userService;
-    }
-
-    @GetMapping("/create")
-    public String showCreateForm(@RequestParam Long listingId,
-                                 @RequestParam Long tenantId,
-                                 Model model
-                                 ) {
-        model.addAttribute("listingId", listingId);
-        model.addAttribute("tenantId", tenantId);
-        return "create-lease";
-    }
-
-    @PostMapping("/create")
-    public String createLease(@RequestParam Long listingId,
-                              @RequestParam Long tenantId,
-                              @RequestParam LocalDate startDate,
-                              @RequestParam LocalDate endDate,
-                              @RequestParam BigDecimal rentAmount,
-                              @RequestParam BigDecimal depositAmount,
-                              HttpServletRequest request) {
-
-        try {
-            UserD landlordUser = (UserD) request.getSession().getAttribute("user");
-            if (landlordUser == null || !userService.isLandlord(landlordUser.getId())) {
-                return "redirect:/login";
-            }
-
-            leaseService.save(
-                    listingId,
-                    tenantId,
-                    landlordUser.getId(),
-                    startDate,
-                    endDate,
-                    rentAmount,
-                    depositAmount
-            );
-
-            return "redirect:/lease";
-
-        } catch (Exception e) {
-            return "redirect:/lease/create?listingId=" + listingId + "&tenantId=" + tenantId + "&error=true";
-        }
-    }
-
-    @GetMapping
-    public String getUserLeases(Model model, HttpServletRequest request) {
-        UserD user = (UserD) request.getSession().getAttribute("user");
-        List<Lease> leases;
-        if (userService.isLandlord(user.getId())) {
-            leases = leaseService.findByLandlord(user.getId());
-        } else {
-            leases = leaseService.findByTenant(user.getId());
-        }
-
-        model.addAttribute("isLandlord",userService.isLandlord(user.getId()));
-        model.addAttribute("user", user);
-        model.addAttribute("leases", leases);
-        return "leases";
-    }
-
-    @GetMapping("/{id}/details")
-    public String getLeaseDetails(@PathVariable Long id,
-                                  Model model
-                                  ) {
-        Lease lease = leaseService.findById(id);
-        model.addAttribute("lease", lease);
-        return "lease";
-    }
-
-    @PostMapping("/{id}/rate-landlord")
-    @ResponseBody
-    public String rateLandlord(@PathVariable Long id,
-                               @RequestParam Integer rating,
-                               HttpServletRequest request) {
-        UserD user = (UserD) request.getSession().getAttribute("user");
-        if (user == null) {
-            return "{\"status\":\"error\",\"message\":\"Not authenticated\"}";
-        }
-
-        try {
-            // Tenant rates landlord
-            leaseService.rateUser(id, user.getId(), rating, false);
-            return "{\"status\":\"success\",\"message\":\"Landlord rating saved\"}";
-        } catch (Exception e) {
-            return "{\"status\":\"error\",\"message\":\"" + e.getMessage() + "\"}";
-        }
-    }
-
-    @PostMapping("/api/leases/{id}/rate")
-    @ResponseBody
-    public String rateUser(@PathVariable Long id,
-                           @RequestBody Map<String, Object> request,
-                           HttpServletRequest httpRequest) {
-        UserD user = (UserD) httpRequest.getSession().getAttribute("user");
-        if (user == null) {
-            return "{\"status\":\"error\",\"message\":\"Not authenticated\"}";
-        }
-
-        try {
-            Integer rating = (Integer) request.get("rating");
-            if (rating == null || rating < 1 || rating > 5) {
-                return "{\"status\":\"error\",\"message\":\"Invalid rating\"}";
-            }
-
-            Lease lease = leaseService.findById(id);
-
-            boolean isLandlord = lease.getLandlord().getUser().getId().equals(user.getId());
-            boolean isTenant = lease.getTenant().getUser().getId().equals(user.getId());
-
-            if (!isLandlord && !isTenant) {
-                return "{\"status\":\"error\",\"message\":\"User not part of this lease\"}";
-            }
-
-            if (isLandlord) {
-                leaseService.rateUser(id, lease.getLandlord().getId(), rating, true);
-            } else {
-                leaseService.rateUser(id, lease.getTenant().getId(), rating, false);
-            }
-
-            return "{\"status\":\"success\",\"message\":\"Rating saved successfully\"}";
-        } catch (Exception e) {
-            return "{\"status\":\"error\",\"message\":\"" + e.getMessage() + "\"}";
-        }
-    }
-}
Index: src/main/java/com/example/domify/web/ListingController.java
===================================================================
--- src/main/java/com/example/domify/web/ListingController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/web/ListingController.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -1,130 +1,44 @@
 package com.example.domify.web;
 
-import com.example.domify.model.*;
-import com.example.domify.service.*;
+import com.example.domify.model.UserD;
+import com.example.domify.service.AddressService;
+import com.example.domify.service.ListingService;
+import com.example.domify.service.UserService;
 import jakarta.servlet.http.HttpServletRequest;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-
-import java.time.LocalDate;
-import java.util.List;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
 
 @Controller
 @RequestMapping(value = {"/", "/listings"})
 public class ListingController {
+    private final AddressService addressService;
     private final ListingService listingService;
+
     private final UserService userService;
-    private final UnitService unitService;
-    private final InterestedService interestedService;
-    private final TenantProfileService tenantProfileService;
 
-    public ListingController(ListingService listingService, UserService userService, UnitService unitService, InterestedService interestedService, TenantProfileService tenantProfileService) {
+    public ListingController(AddressService addressService, ListingService listingService, UserService userService) {
+        this.addressService = addressService;
         this.listingService = listingService;
         this.userService = userService;
-        this.unitService = unitService;
-        this.interestedService = interestedService;
-        this.tenantProfileService = tenantProfileService;
     }
 
     @GetMapping
     public String getListings(HttpServletRequest request,Model model) {
+        UserD user = (UserD) request.getSession().getAttribute("user");
+        if (user != null)
+        {
+            model.addAttribute("user",user);
+            model.addAttribute("isLandlord",userService.isLandlord(user.getId()));
+        }else {
+            model.addAttribute("user", null);
+            model.addAttribute("isLandlord", false);
+        }
+
         model.addAttribute("listings",listingService.findAll());
         return "index";
     }
-
-    @GetMapping("/create")
-    public String showCreateForm(@RequestParam Long unitId, Model model, HttpServletRequest request) {
-        model.addAttribute("unitId", unitId);
-        return "create-listing";
-    }
-
-    @PostMapping("/save")
-    public String saveListing(
-            @RequestParam String title,
-            @RequestParam String status,
-            @RequestParam LocalDate availableFrom,
-            @RequestParam LocalDate availableTo,
-            @RequestParam(required = false) String description,
-            @RequestParam Long unitId,
-            HttpServletRequest request) {
-
-        try {
-            UserD user = (UserD) request.getSession().getAttribute("user");
-            if (user == null || !userService.isLandlord(user.getId())) {
-                return "redirect:/listings";
-            }
-
-            Unit unit = unitService.findById(unitId);
-
-            Listing listing = new Listing(
-                    title,
-                    availableFrom,
-                    availableTo,
-                    status,
-                    description,
-                    unit
-            );
-
-            listingService.save(listing);
-
-            return "redirect:/listings";
-
-        } catch (Exception e) {
-            return "redirect:/listings/create?unitId=" + unitId;
-        }
-    }
-
-    @GetMapping("/listings/{id}")
-    public String getListingDetails(@PathVariable Long id,
-                                    Model model,
-                                    HttpServletRequest request) {
-        UserD user = (UserD) request.getSession().getAttribute("user");
-        if (user == null)
-            return "redirect:/login";
-        boolean isLandlord = userService.isLandlord(user.getId());
-        Listing listing = listingService.findById(id);
-        model.addAttribute("listing", listing);
-        model.addAttribute("isLandlord", isLandlord);
-        return "listing";
-    }
-
-    @GetMapping("/{id}/applications")
-    public String getInterestedTenants(@PathVariable Long id, Model model, HttpServletRequest request) {
-        Listing listing = listingService.findById(id);
-
-        List<Interested> interestedList = interestedService.findByListingId(id);
-
-        model.addAttribute("listing", listing);
-        model.addAttribute("interestedList", interestedList);
-        return "interested";
-    }
-
-    @GetMapping("/{id}/apply")
-    public String submitApplication(@PathVariable Long id,
-                                    HttpServletRequest request) {
-        UserD user = (UserD) request.getSession().getAttribute("user");
-        if (user == null) {
-            return "redirect:/login";
-        }
-
-        try {
-            Listing listing = listingService.findById(id);
-
-            TenantProfile tenantProfile = tenantProfileService.findByUserId(user.getId());
-
-            if (interestedService.existsByListingAndTenant(id, user.getId())) {
-                return "redirect:/listings/" + id;
-            }
-
-            Interested application = new Interested(listing, tenantProfile);
-            interestedService.save(application);
-
-            return "redirect:/listings/" + id;
-
-        } catch (Exception e) {
-            return "redirect:/listings/" + id + "/apply";
-        }
-    }
-
 }
Index: src/main/java/com/example/domify/web/LoginController.java
===================================================================
--- src/main/java/com/example/domify/web/LoginController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/web/LoginController.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -45,3 +45,4 @@
     }
 
+
 }
Index: c/main/java/com/example/domify/web/LogoutController.java
===================================================================
--- src/main/java/com/example/domify/web/LogoutController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,18 +1,0 @@
-package com.example.domify.web;
-
-
-import jakarta.servlet.http.HttpServletRequest;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-@Controller
-@RequestMapping("/logout")
-public class LogoutController {
-    @GetMapping
-    public String logoutPage(HttpServletRequest request) {
-        request.getSession().invalidate();
-        return "redirect:/login?logout";
-    }
-
-}
Index: src/main/java/com/example/domify/web/PropertiesController.java
===================================================================
--- src/main/java/com/example/domify/web/PropertiesController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/java/com/example/domify/web/PropertiesController.java	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -7,6 +7,4 @@
 import com.example.domify.service.UserService;
 import jakarta.servlet.http.HttpServletRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -19,13 +17,23 @@
 public class PropertiesController {
     private final PropertiesService propertiesService;
+    private final UserService userService;
     private final PropertyTypeRepository propertyRepository;
 
-    public PropertiesController(PropertiesService propertiesService, PropertyTypeRepository propertyRepository) {
+    public PropertiesController(PropertiesService propertiesService, UserService userService, PropertyTypeRepository propertyRepository) {
         this.propertiesService = propertiesService;
+        this.userService = userService;
         this.propertyRepository = propertyRepository;
     }
 
     @GetMapping("/{userId}")
-    public String getProperties(@PathVariable Long userId, Model model) {
+    public String getProperties(HttpServletRequest request, @PathVariable Long userId, Model model) {
+        UserD user = (UserD) request.getSession().getAttribute("user");
+        if (user != null) {
+            model.addAttribute("user", user);
+            model.addAttribute("isLandlord", userService.isLandlord(user.getId()));
+        } else {
+            model.addAttribute("user", null);
+            model.addAttribute("isLandlord", false);
+        }
         model.addAttribute("properties", propertiesService.findByOwnerId(userId));
         return "properties";
@@ -33,5 +41,13 @@
 
     @GetMapping("/{propertyId}/details")
-    public String getPropertiesDetails(@PathVariable Long propertyId, Model model) {
+    public String getPropertiesDetails(HttpServletRequest request, @PathVariable Long propertyId, Model model) {
+        UserD user = (UserD) request.getSession().getAttribute("user");
+        if (user != null) {
+            model.addAttribute("user", user);
+            model.addAttribute("isLandlord", userService.isLandlord(user.getId()));
+        } else {
+            model.addAttribute("user", null);
+            model.addAttribute("isLandlord", false);
+        }
         model.addAttribute("property", propertiesService.findDetails(propertyId).get());
         return "property";
@@ -39,5 +55,13 @@
 
     @GetMapping("/add")
-    public String getAddPage( Model model) {
+    public String getAddPage(HttpServletRequest request, Model model) {
+        UserD user = (UserD) request.getSession().getAttribute("user");
+        if (user != null) {
+            model.addAttribute("user", user);
+            model.addAttribute("isLandlord", userService.isLandlord(user.getId()));
+        } else {
+            model.addAttribute("user", null);
+            model.addAttribute("isLandlord", false);
+        }
         model.addAttribute("propertyTypes", propertyRepository.findAll());
         return "create-property";
@@ -48,5 +72,5 @@
             @RequestParam("propertyType") Long propertyTypeId,
             @RequestParam("name") String name,
-            @RequestParam(value = "description", defaultValue = "") String description,
+            @RequestParam("description") String description,
             @RequestParam("street") String street,
             @RequestParam(value = "streetNumber", defaultValue = "") String streetNumber,
@@ -65,33 +89,13 @@
             }
 
-            if (name == null || name.trim().isEmpty()) {
-                redirectAttributes.addFlashAttribute("error", "Името на имотот е задолжително.");
-                return "redirect:/properties/add";
-            }
-
-            if (street == null || street.trim().isEmpty()) {
-                redirectAttributes.addFlashAttribute("error", "Улицата е задолжителна.");
-                return "redirect:/properties/add";
-            }
-
-            if (municipality == null || municipality.trim().isEmpty()) {
-                redirectAttributes.addFlashAttribute("error", "Општината е задолжителна.");
-                return "redirect:/properties/add";
-            }
-
-            if (city == null || city.trim().isEmpty()) {
-                redirectAttributes.addFlashAttribute("error", "Градот е задолжителен.");
-                return "redirect:/properties/add";
-            }
-
             Property property = propertiesService.createPropertyWithImages(
                     propertyTypeId,
-                    name.trim(),
-                    description != null ? description.trim() : "",
-                    street.trim(),
-                    streetNumber != null ? streetNumber.trim() : "",
-                    municipality.trim(),
-                    city.trim(),
-                    country.trim(),
+                    name,
+                    description,
+                    street,
+                    streetNumber,
+                    municipality,
+                    city,
+                    country,
                     images,
                     currentUser
@@ -101,7 +105,4 @@
             return "redirect:/properties/" + currentUser.getId();
 
-        } catch (IllegalArgumentException e) {
-            redirectAttributes.addFlashAttribute("error", e.getMessage());
-            return "redirect:/properties/add";
         } catch (Exception e) {
             redirectAttributes.addFlashAttribute("error", "Грешка при додавање на имотот: " + e.getMessage());
Index: c/main/java/com/example/domify/web/ServicesController.java
===================================================================
--- src/main/java/com/example/domify/web/ServicesController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package com.example.domify.web;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-
-@Controller
-@RequestMapping("/services")
-public class ServicesController {
-    @GetMapping
-    public String getServices() {
-        return "services";
-    }
-
-    @GetMapping("/details")
-    public String getServicesDetails() {
-        return "service-details";
-    }
-
-}
Index: c/main/java/com/example/domify/web/UnitController.java
===================================================================
--- src/main/java/com/example/domify/web/UnitController.java	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,65 +1,0 @@
-package com.example.domify.web;
-
-
-import com.example.domify.model.Property;
-import com.example.domify.model.Unit;
-import com.example.domify.model.UserD;
-import com.example.domify.service.PropertiesService;
-import com.example.domify.service.UnitService;
-import com.example.domify.service.UserService;
-import jakarta.servlet.http.HttpServletRequest;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.math.BigDecimal;
-
-@Controller
-@RequestMapping("/units")
-public class UnitController {
-    private final UnitService unitService;
-    private final PropertiesService propertiesService;
-
-    public UnitController( UnitService unitService, PropertiesService propertiesService) {
-        this.unitService = unitService;
-        this.propertiesService = propertiesService;
-    }
-
-    @GetMapping("/{unitId}/details")
-    public String getUnitDetails(@PathVariable Long unitId, Model model) {
-        model.addAttribute("unit", unitService.findDetails(unitId).get());
-        return "unit";
-    }
-
-    @GetMapping("/add")
-    public String getAddPage(@RequestParam Long propertyId, Model model) {
-        model.addAttribute("propertyId", propertyId);
-        return "create-unit";
-    }
-
-    @PostMapping("/save")
-    public String saveUnitForm(
-            @RequestParam String unitNumber,
-            @RequestParam Integer floor,
-            @RequestParam Integer bedrooms,
-            @RequestParam Integer bathrooms,
-            @RequestParam Double area,
-            @RequestParam Double rent,
-            @RequestParam Long propertyId,
-            @RequestParam(value = "images", required = false) MultipartFile[] images) {
-
-        try {
-            BigDecimal areaSqM = BigDecimal.valueOf(area);
-            BigDecimal rentAmount = BigDecimal.valueOf(rent);
-
-            Property property = propertiesService.findById(propertyId);
-
-            Unit unit = new Unit(unitNumber, floor, bedrooms, bathrooms, areaSqM, rentAmount, property);
-            unitService.save(unit, images);
-            return "redirect:/properties/" + propertyId + "/details";
-        } catch (Exception e) {
-            return "redirect:/units/add?propertyId=" + propertyId;
-        }
-    }
-}
Index: src/main/resources/application.properties
===================================================================
--- src/main/resources/application.properties	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/resources/application.properties	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -7,16 +7,5 @@
 spring.datasource.driver-class-name=org.postgresql.Driver
 
-
-spring.jpa.properties.hibernate.default_schema=domify
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
+spring.web.resources.static-locations=classpath:/static/
 spring.web.resources.add-mappings=true
-
-# File upload configuration
-spring.servlet.multipart.max-file-size=5MB
-spring.servlet.multipart.max-request-size=25MB
-spring.servlet.multipart.enabled=true
-
-app.upload.dir=static/uploads/properties/
-
-spring.web.resources.static-locations=classpath:/static/
-
Index: c/main/resources/templates/create-lease.html
===================================================================
--- src/main/resources/templates/create-lease.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,76 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Додади имот</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-    .form-label {
-      font-weight: 600;
-      color: #1976d2;
-    }
-  </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-<div class="container my-5">
-  <div class="row justify-content-center">
-    <div class="w-50">
-      <a th:href="@{/listings/{id}/applications(id=${listingId})}" class="btn btn-outline-primary mb-3">
-        <i class="bi bi-arrow-left me-2"></i> Назад
-      </a>
-      <div class="p-4 bg-light-subtle rounded-5">
-        <h3 class="my-3 text-primary fw-bold">Креирај изнајмување</h3>
-        <form class="mt-4" th:action="@{/lease/create}" method="post">
-          <input type="hidden" name="listingId" th:value="${listingId}">
-          <input type="hidden" name="tenantId" th:value="${tenantId}">
-
-          <div class="mb-3">
-            <label for="startDate" class="form-label">Почетен датум</label>
-            <input type="date" class="form-control" id="startDate" name="startDate" required>
-          </div>
-
-          <div class="mb-3">
-            <label for="endDate" class="form-label">Краен датум</label>
-            <input type="date" class="form-control" id="endDate" name="endDate" required>
-          </div>
-
-          <div class="mb-3">
-            <label for="rent" class="form-label">Кирија (денари)</label>
-            <input type="number" class="form-control" id="rent" name="rentAmount"
-                   step="0.01" min="0" placeholder="15000.00" required>
-          </div>
-
-          <div class="mb-3">
-            <label for="deposit" class="form-label">Депозит (денари)</label>
-            <input type="number" class="form-control" id="deposit" name="depositAmount"
-                   step="0.01" min="0" placeholder="30000.00" required>
-          </div>
-
-          <div class="d-flex justify-content-center mt-4">
-            <button type="submit" class="btn header-gradient text-white w-75">Креирај изнајмување</button>
-          </div>
-        </form>
-      </div>
-    </div>
-  </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous"></script>
-</body>
-</html>
Index: c/main/resources/templates/create-listing.html
===================================================================
--- src/main/resources/templates/create-listing.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,103 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Додади единица</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-
-    .form-section {
-      background-color: white;
-      border-radius: 1rem;
-      box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
-    }
-
-    .form-label {
-      font-weight: 600;
-      color: #1976d2;
-    }
-  </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-<div class="container my-5">
-  <div class="row justify-content-center">
-    <div class="col-lg-10">
-      <div class="d-flex justify-content-between align-items-center mb-4">
-        <h2 class="text-primary fw-bold mb-0">Додади нов оглас</h2>
-        <a th:href="@{/properties/{id}(id=${unitId})}" class="btn btn-outline-primary">
-          <i class="bi bi-arrow-left me-2"></i> Назад
-        </a>
-      </div>
-
-      <form th:action="@{/listings/save}" method="post" enctype="multipart/form-data">
-        <input type="hidden" name="unitId" th:value="${unitId}">
-
-        <div class="form-section p-4 mb-4">
-          <h4 class="text-primary mb-4 border-bottom pb-2">Основни информации</h4>
-
-          <div class="row g-3">
-            <div class="col-md-8">
-              <label for="title" class="form-label">Наслов на оглас</label>
-              <input type="text" class="form-control" id="title" name="title"
-                     placeholder="Пример Стан во Тафталиџе" required>
-            </div>
-
-            <div class="col-md-4">
-              <label for="status" class="form-label">Статус</label>
-              <select class="form-select" id="status" name="status" required>
-                <option value="available">Слободно</option>
-                <option value="reserved">Резервирано</option>
-                <option value="rented">Изнајмено</option>
-              </select>
-            </div>
-
-            <div class="col-md-6">
-              <label for="availableFrom" class="form-label">Достапно од</label>
-              <input type="date" class="form-control" id="availableFrom" name="availableFrom" required>
-            </div>
-
-            <div class="col-md-6">
-              <label for="availableTo" class="form-label">Достапно до</label>
-              <input type="date" class="form-control" id="availableTo" name="availableTo" required>
-            </div>
-          </div>
-        </div>
-
-        <div class="form-section p-4 mb-4">
-          <h4 class="text-primary mb-4 border-bottom pb-2">Опис</h4>
-          <div class="mb-3">
-            <label for="description" class="form-label">Релевантни информации за единицата</label>
-            <textarea class="form-control" id="description" name="description"
-                      rows="4" placeholder="Опис на огласот..."></textarea>
-          </div>
-        </div>
-
-        <div class="d-flex justify-content-end gap-3 mb-5">
-          <button type="submit" class="btn header-gradient text-white px-4">Направи оглас</button>
-        </div>
-      </form>
-    </div>
-  </div>
-</div>
-
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous"></script>
-</body>
-</html>
Index: src/main/resources/templates/create-property.html
===================================================================
--- src/main/resources/templates/create-property.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/resources/templates/create-property.html	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -33,5 +33,33 @@
 </head>
 <body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
+<header class="header-gradient text-white py-3 rounded-bottom-4 shadow-sm">
+    <div class="container-fluid">
+        <div class="row align-items-center">
+            <div class="col-md-6 d-flex align-items-center">
+                <img src="/logo.png" class="ms-5 rounded-pill" style="width: 50px; height: 50px; object-fit: cover;">
+                <h1 class="h2 mb-0 ms-3 me-4">Domify</h1>
+                <button class="btn btn-outline-light">Мои изнајмувања</button>
+            </div>
+            <div class="col-md-6 d-flex justify-content-end align-items-center">
+                <div class="dropdown d-inline-block me-5">
+                    <button class="btn btn-outline-light dropdown-toggle" type="button" id="userDropdown"
+                            data-bs-toggle="dropdown" aria-expanded="false">
+                        <i class="bi bi-person-circle me-2"></i>Стефан Николов
+                    </button>
+                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown">
+                        <li><a class="dropdown-item" href="#">Профил</a></li>
+                        <li><a class="dropdown-item" href="#">Мои изнајмувања</a></li>
+                        <li><a class="dropdown-item" href="#">Направи оглас</a></li>
+                        <li><a class="dropdown-item" href="#">Мои имоти</a></li>
+                        <li>
+                            <hr class="dropdown-divider">
+                        </li>
+                        <li><a class="dropdown-item" href="#">Одјави се</a></li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</header>
 
 <div class="container my-5">
Index: c/main/resources/templates/create-unit.html
===================================================================
--- src/main/resources/templates/create-unit.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,113 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Додади единица</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-
-    .form-section {
-      background-color: white;
-      border-radius: 1rem;
-      box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
-    }
-
-    .form-label {
-      font-weight: 600;
-      color: #1976d2;
-    }
-  </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-<div class="container my-5">
-  <div class="row justify-content-center">
-    <div class="col-lg-10">
-      <!-- Title and back button remain the same -->
-
-      <form th:action="@{/units/save}" method="post" enctype="multipart/form-data">
-        <!-- Hidden field for propertyId -->
-        <input type="hidden" name="propertyId" th:value="${propertyId}">
-
-        <div class="form-section p-4 mb-4">
-          <h4 class="text-primary mb-4 border-bottom pb-2">Основни информации</h4>
-
-          <div class="row g-3">
-            <div class="col-md-4">
-              <label for="unitNumber" class="form-label">Идентификатор на единица</label>
-              <input type="text" class="form-control" id="unitNumber" name="unitNumber" placeholder="Пример 12A" required>
-            </div>
-
-            <div class="col-md-4">
-              <label for="floor" class="form-label">Кат</label>
-              <input type="number" class="form-control" id="floor" name="floor" placeholder="Пример 3" required>
-            </div>
-
-            <div class="col-md-4">
-              <label for="bedrooms" class="form-label">Број на спални соби</label>
-              <input type="number" class="form-control" id="bedrooms" name="bedrooms" placeholder="Пример 2" required>
-            </div>
-
-            <div class="col-md-4">
-              <label for="bathrooms" class="form-label">Број на купатила</label>
-              <input type="number" class="form-control" id="bathrooms" name="bathrooms" placeholder="Пример 1" required>
-            </div>
-
-            <div class="col-md-4">
-              <label for="area" class="form-label">Површина (m²)</label>
-              <input type="number" step="0.01" class="form-control" id="area" name="area" placeholder="Пример 65.50" required>
-            </div>
-
-            <div class="col-md-4">
-              <label for="rent" class="form-label">Кирија (ден)</label>
-              <div class="input-group">
-                <span class="input-group-text">MKD</span>
-                <input type="number" class="form-control" id="rent" name="rent" placeholder="Пример 15000" required>
-              </div>
-            </div>
-          </div>
-        </div>
-
-        <div class="form-section p-4 mb-4">
-          <h4 class="text-primary mb-4 border-bottom pb-2">Слики од единицата</h4>
-
-          <div class="border rounded-3 p-4 text-center">
-            <i class="bi bi-cloud-arrow-up fs-1 text-muted"></i>
-            <p class="text-muted mt-2">Влечете и пуштете ги сликите овдека или изберете ги посебно</p>
-            <input type="file" id="images" name="images" multiple accept="image/*" style="display: none;">
-            <button type="button" class="btn btn-outline-primary" onclick="document.getElementById('images').click()">Избери слики</button>
-          </div>
-
-          <div class="mt-3">
-            <small class="text-muted">Максимална големина на слика: 5MB</small>
-          </div>
-        </div>
-
-        <div class="d-flex justify-content-end gap-3 mb-5">
-          <button type="button" class="btn btn-outline-secondary" onclick="history.back()">Откажи</button>
-          <button type="submit" class="btn header-gradient text-white px-4">Зачувај единица</button>
-        </div>
-      </form>
-    </div>
-  </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous"></script>
-</body>
-</html>
Index: c/main/resources/templates/documents.html
===================================================================
--- src/main/resources/templates/documents.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,87 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Почетна</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-  </style>
-</head>
-<body>
-
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-<div class="container-fluid">
-  <div class="row">
-    <div class="m-auto w-75">
-      <div class="d-flex justify-content-between align-items-end">
-      <h2 class="mt-5 mb-3" style="color:#1976d2;">Документи</h2>
-        <a href="/lease" class="btn btn-outline-primary mb-3" style="height: 40px;">
-          Назад
-        </a>
-      </div>
-      <div class="table-responsive rounded-4 shadow-sm">
-        <table class="table table-hover align-middle mb-0">
-          <thead class="table-primary" style="background-color: #e3f2fd;">
-          <tr>
-            <th class="py-3 px-4">Име на оглас</th>
-            <th class="py-3 px-4">Датум</th>
-            <th class="py-3 px-4">Детали</th>
-          </tr>
-          </thead>
-          <tbody>
-          <tr>
-            <td class="py-3 px-4 text-primary">Договор</td>
-            <td class="py-3 px-4">2025-05-03</td>
-            <td class="py-3 px-4">
-              <button class="btn btn-sm btn-outline-primary rounded-pill px-3">
-                Превземи
-              </button>
-            </td>
-          </tr>
-          <tr>
-            <td class="py-3 px-4 text-primary">Лична карта - Милош</td>
-            <td class="py-3 px-4">2025-07-09</td>
-            <td class="py-3 px-4">
-              <button class="btn btn-sm btn-outline-primary rounded-pill px-3">
-                Превземи
-              </button>
-            </td>
-          </tr>
-          </tbody>
-        </table>
-      </div>
-      <button class="btn text-light header-gradient mt-4">Додади документ</button>
-    </div>
-  </div>
-
-</div>
-
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-<script>
-  document.querySelectorAll('.sub-item').forEach(item => {
-    item.addEventListener('click', function (e) {
-      e.preventDefault();
-      const city = this.getAttribute('data-city');
-      const muni = this.getAttribute('data-muni');
-      document.getElementById('addressDropdown').textContent = `${city} - ${muni}`;
-      bootstrap.Dropdown.getInstance(document.getElementById('addressDropdown')).hide();
-    });
-  });
-</script>
-</body>
-</html>
Index: c/main/resources/templates/fragments/header.html
===================================================================
--- src/main/resources/templates/fragments/header.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,45 +1,0 @@
-<div th:fragment="appHeader(user, isLandlord)" class="header-gradient text-white py-3 rounded-bottom-4 shadow-sm">
-    <div class="container-fluid">
-        <div class="row align-items-center">
-            <div class="col-md-6 d-flex align-items-center">
-                <a th:href="@{/}">
-                    <img th:src="@{/images/logo.png}" class="ms-5 rounded-pill" style="width: 50px; height: 50px; object-fit: cover;">
-                </a>
-                <h1 class="h2 mb-0 ms-3 me-4">Domify</h1>
-                <a href="/lease" th:if="${user != null}" class="btn btn-outline-light">Мои изнајмувања</a>
-            </div>
-            <div class="col-md-6 d-flex justify-content-end align-items-center">
-                <div class="dropdown d-inline-block me-5">
-                    <button class="btn btn-outline-light dropdown-toggle" type="button" id="userDropdown"
-                            data-bs-toggle="dropdown" aria-expanded="false">
-                        <i class="bi bi-person-circle me-2"></i>
-                        <span th:if="${user != null}" th:text="${user.firstName + ' ' + user.lastName}">Корисник</span>
-                        <span th:if="${user == null}">Најави се</span>
-                    </button>
-
-                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
-                        th:if="${user != null} and ${isLandlord}">
-                        <li><a class="dropdown-item" href="#">Профил</a></li>
-                        <li><a class="dropdown-item" href="#">Мои изнајмувања</a></li>
-                        <li><a class="dropdown-item" href="#">Направи оглас</a></li>
-                        <li><a class="dropdown-item" th:href="@{'/properties/' + ${user.id}}">Мои имоти</a></li>
-                        <li><hr class="dropdown-divider"></li>
-                        <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
-                    </ul>
-
-                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
-                        th:if="${user != null} and !${isLandlord}">
-                        <li><a class="dropdown-item" href="#">Профил</a></li>
-                        <li><hr class="dropdown-divider"></li>
-                        <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
-                    </ul>
-
-                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
-                        th:if="${user == null}">
-                        <li><a class="dropdown-item" href="/login">Најави се</a></li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
Index: src/main/resources/templates/index.html
===================================================================
--- src/main/resources/templates/index.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/resources/templates/index.html	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -22,5 +22,50 @@
 </head>
 <body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
+
+<header class="header-gradient text-white py-3 rounded-bottom-4 shadow-sm">
+  <div class="container-fluid">
+    <div class="row align-items-center">
+      <div class="col-md-6 d-flex align-items-center">
+        <img src="/images/logo.png" class="ms-5 rounded-pill" style="width: 50px; height: 50px; object-fit: cover;">
+        <h1 class="h2 mb-0 ms-3 me-4">Domify</h1>
+        <a href="/my-rentals" class="btn btn-outline-light" th:if="${user != null} and ${isLandlord}" >Мои огласи</a>
+        <a href="/my-rentals" class="btn btn-outline-light" th:if="${user != null} and ${!isLandlord}" >Мои изнајмувања</a>
+      </div>
+      <div class="col-md-6 d-flex justify-content-end align-items-center">
+        <div class="dropdown d-inline-block me-5">
+          <button class="btn btn-outline-light dropdown-toggle" type="button" id="userDropdown"
+                  data-bs-toggle="dropdown" aria-expanded="false">
+            <i class="bi bi-person-circle me-2"></i>
+
+            <span th:if="${user != null}" th:text="${user.getFirstName() + ' ' + user.getLastName()}">Корисник</span>
+            <span th:if="${user == null}">Најави се</span>
+          </button>
+
+          <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+              th:if="${user != null} and ${isLandlord}">
+            <li><a class="dropdown-item" href="#">Профил</a></li>
+            <li><a class="dropdown-item" href="#">Мои изнајмувања</a></li>
+            <li><a class="dropdown-item" href="#">Направи оглас</a></li>
+            <li><a class="dropdown-item" th:href="@{'/properties/' + ${user.getId()}}">Мои имоти</a></li>
+            <li><hr class="dropdown-divider"></li>
+            <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
+          </ul>
+
+          <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+              th:if="${user != null} and !${isLandlord}">
+            <li><a class="dropdown-item" href="#">Профил</a></li>
+            <li><hr class="dropdown-divider"></li>
+            <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
+          </ul>
+
+          <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+              th:if="${user == null}">
+            <li><a class="dropdown-item" href="/login">Најави се</a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+</header>
 
 <div class="container mt-4">
@@ -36,4 +81,5 @@
             </button>
             <ul class="dropdown-menu w-100" aria-labelledby="addressDropdown" id="addressMenu">
+              <!-- Example cities/municipalities -->
               <li class="dropdown-submenu">
                 <span class="dropdown-item-text fw-semibold">Скопје</span>
@@ -104,5 +150,5 @@
             <span class="badge bg-primary fs-6 py-2 px-3"
                   th:text="${list.unit.rentAmount + ' ден/месечно'}">ЦЕНА</span>
-            <a th:href="@{'/listings/' + ${list.id}}" class="btn btn-primary">Детали</a>
+            <a href="#" class="btn btn-primary">Детали</a>
           </div>
         </div>
Index: c/main/resources/templates/interested.html
===================================================================
--- src/main/resources/templates/interested.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,57 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk" xmlns:th="http://www.thymeleaf.org">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Domify - Пријавени изнајмувачи</title>
-    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-          integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-    <style>
-        body {
-            font-family: 'Inter', sans-serif;
-            background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-        }
-        .header-gradient {
-            background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-        }
-    </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-<div class="container-fluid">
-    <div class="row">
-        <div class="m-auto mt-5 w-75">
-            <a th:href="@{/listings/{id}(id=${listing.id})}" class="btn btn-outline-primary mb-3">
-                <i class="bi bi-arrow-left me-2"></i> Назад
-            </a>
-            <div class="p-4 bg-light-subtle rounded-5">
-                <h2 class="my-3" style="color:#1976d2;">Пријавени изнајмувачи за: <span th:text="${listing.title}">Еднособен стан</span></h2>
-
-                <div th:each="interested : ${interestedList}" class="d-flex justify-content-between align-items-center px-3 py-2 bg-light rounded-3 mb-3">
-                    <div class="py-2 ms-3">
-                        <h5 class="fw-bold text-primary mt-1" th:text="${interested.tenantProfile.user.firstName + ' ' + interested.tenantProfile.user.lastName}">Stefan Nikolov</h5>
-                        <p class="mb-0" th:text="${interested.tenantProfile.user.email}">stefan.nikolov@gmail.com</p>
-                        <p class="mb-0 fw-bold text-success">Рејтинг:
-                            <span th:text="${interested.tenantProfile.user.rating + '/5'}">3/5</span>
-                        </p>                    </div>
-                    <div class="me-3">
-                        <a th:href="@{/lease/create(listingId=${listing.id}, tenantId=${interested.tenantProfile.id})}"
-                           class="btn header-gradient text-white">
-                            Изнајми
-                        </a>
-                    </div>
-                </div>
-
-            </div>
-        </div>
-    </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/lease.html
===================================================================
--- src/main/resources/templates/lease.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,199 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk" xmlns:th="http://www.thymeleaf.org">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Детали за изнајмување</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-
-    .info-section {
-      background: rgba(255, 255, 255, 0.7);
-      backdrop-filter: blur(10px);
-      border: 1px solid rgba(255, 255, 255, 0.2);
-    }
-
-    .property-image {
-      border-radius: 12px;
-      box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
-      transition: transform 0.3s ease;
-    }
-
-    .property-image:hover {
-      transform: scale(1.02);
-    }
-
-    .action-btn {
-      transition: all 0.3s ease;
-      border: none;
-      font-weight: 500;
-    }
-
-    .action-btn:hover {
-      transform: translateY(-2px);
-      box-shadow: 0 6px 20px rgba(25, 118, 210, 0.3);
-    }
-  </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-<div class="mt-4 info-section rounded-4 shadow-sm p-4 m-auto mb-4" style="width: 85%;">
-  <a th:href="@{/lease}" class="btn btn-outline-primary mb-4">
-    <i class="bi bi-arrow-left me-2"></i> Назад
-  </a>
-
-  <div class="d-flex justify-content-between align-items-start gap-4">
-    <div class="m-auto">
-      <h2 class="text-primary mb-4 fw-bold" th:text="${lease.listing.title}">Удобен еднособен стан</h2>
-
-      <!-- Lease Period Section -->
-      <div class="border-top border-bottom py-3">
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Почеток на изнајмување:</span>
-          <span class="text-dark" th:text="${#temporals.format(lease.startDate, 'dd.MM.yyyy')}">01.01.2025</span>
-        </div>
-
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Крај на изнајмување:</span>
-          <span class="text-dark" th:text="${#temporals.format(lease.endDate, 'dd.MM.yyyy')}">31.12.2025</span>
-        </div>
-
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Статус:</span>
-          <span class="badge bg-success" th:if="${lease.listing.status == 'изнајмено'}">Активно</span>
-          <span class="badge bg-secondary" th:unless="${lease.listing.status == 'изнајмено'}" th:text="${lease.listing.status}">Неактивно</span>
-        </div>
-      </div>
-
-      <div class="pt-3">
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Износ на изнајмување:</span>
-          <span class="text-dark fw-bold">
-            <span th:text="${#numbers.formatDecimal(lease.rentAmount, 0, 'COMMA', 2, 'POINT')}">16.800</span>
-            <small>ден.</small>
-          </span>
-        </div>
-
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Депозит:</span>
-          <span class="text-dark fw-bold">
-            <span th:text="${#numbers.formatDecimal(lease.depositAmount, 0, 'COMMA', 2, 'POINT')}">33.600</span>
-            <small>ден.</small>
-          </span>
-        </div>
-      </div>
-
-      <div class="border-top pt-3 mt-3">
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Станар:</span>
-          <span class="text-dark">
-            <span th:text="${lease.tenant.user.firstName + ' ' + lease.tenant.user.lastName}">Марко Петровски</span>
-            <span class="badge bg-warning ms-2">
-              <i class="bi bi-star-fill"></i>
-              <span th:text="${lease.tenant.user.rating}">4.5</span>
-            </span>
-          </span>
-        </div>
-
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Сопственик:</span>
-          <span class="text-dark">
-            <span th:text="${lease.landlord.user.firstName + ' ' + lease.landlord.user.lastName}">Ана Стојановска</span>
-            <span class="badge bg-warning ms-2">
-              <i class="bi bi-star-fill"></i>
-              <span th:text="${lease.landlord.user.rating}">4.8</span>
-            </span>
-          </span>
-        </div>
-
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Адреса: </span>
-          <span class="text-dark" th:text="${lease.listing.unit.property.address.street + ' ' + lease.listing.unit.property.address.number + ', ' + lease.listing.unit.property.address.municipality + ', ' + lease.listing.unit.property.address.city + ', ' + lease.listing.unit.property.address.country }">ул. Македонија 123, Скопје</span>
-        </div>
-      </div>
-    </div>
-
-    <div style="width: 55%;" class="m-auto">
-      <img th:src="${lease.listing.unit.images[0].image}"
-           th:alt="${lease.listing.title}"
-           class="img-fluid property-image"
-           style="object-fit: cover; height: 300px; width: 100%;"
-           onerror="this.src='/images/default-property.jpg'">
-    </div>
-  </div>
-
-  <div class="info-section mt-4 p-4 rounded-4 shadow-sm">
-    <h4 class="text-primary mb-3">
-      <i class="bi bi-info-circle me-2"></i>Опис
-    </h4>
-    <p th:text="${lease.listing.description}" class="mb-0">
-      Удобен стан со 1 спална соба, совршен за самохран професионалец
-    </p>
-  </div>
-
-  <div class="info-section mt-4 p-4 rounded-4 shadow-sm">
-    <h4 class="text-primary mb-3">
-      <i class="bi bi-house me-2"></i>Детали за единицата
-    </h4>
-    <div class="row">
-      <div class="col-md-6">
-        <div class="d-flex justify-content-between py-2">
-          <span class="fw-medium">Тип на имот:</span>
-          <span th:text="${lease.listing.unit.property.propertyType.name}">Стан</span>
-        </div>
-        <div class="d-flex justify-content-between py-2">
-          <span class="fw-medium">Спрат:</span>
-          <span th:text="${lease.listing.unit.floor}">2</span>
-        </div>
-      </div>
-      <div class="col-md-6">
-        <div class="d-flex justify-content-between py-2">
-          <span class="fw-medium">Број на единица:</span>
-          <span th:text="${lease.listing.unit.unitNumber}">12A</span>
-        </div>
-        <div class="d-flex justify-content-between py-2">
-          <span class="fw-medium">Големина:</span>
-          <span>
-            <span th:text="${lease.listing.unit.areaSqM}">65</span> м²
-          </span>
-        </div>
-      </div>
-    </div>
-  </div>
-
-  <div class="mt-4 d-flex justify-content-around align-items-center flex-wrap gap-3">
-    <button class="btn text-white px-4 py-2 rounded-4 shadow-sm header-gradient action-btn">
-      <i class="bi bi-chat-dots me-2"></i>Пораки
-    </button>
-    <a href="/documents" class="btn text-white px-4 py-2 rounded-4 shadow-sm header-gradient action-btn text-decoration-none">
-      <i class="bi bi-chat-dots me-2"></i>Документи
-    </a>
-    <button class="btn text-white px-4 py-2 rounded-4 shadow-sm header-gradient action-btn">
-      <i class="bi bi-search me-2"></i>Инспекции
-    </button>
-    <a href="/services" class="btn text-white px-4 py-2 rounded-4 shadow-sm header-gradient action-btn text-decoration-none">
-      <i class="bi bi-chat-dots me-2"></i>Сервиси
-    </a>
-    <button class="btn text-white px-4 py-2 rounded-4 shadow-sm header-gradient action-btn">
-      <i class="bi bi-credit-card me-2"></i>Плаќања
-    </button>
-  </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/leases.html
===================================================================
--- src/main/resources/templates/leases.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,176 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk" xmlns:th="http://www.thymeleaf.org">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Изнајмувања</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-    .star-rating i {
-      cursor: pointer;
-      transition: color 0.2s;
-      margin-right: 4px;
-      font-size: 1.2rem;
-    }
-    .star-rating i:hover {
-      transform: scale(1.1);
-    }
-    .rating-info {
-      font-size: 0.8rem;
-      color: #666;
-      margin-top: 4px;
-    }
-  </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-<div class="m-auto w-75">
-  <h2 class="mt-5" style="color:#1976d2;">Мои изнајмувања</h2>
-  <div class="table-responsive rounded-4 shadow-sm">
-    <table class="table table-hover align-middle mb-0">
-      <thead class="table-primary" style="background-color: #e3f2fd;">
-      <tr>
-        <th class="py-3 px-4">Име на оглас</th>
-        <th class="py-3 px-4">Износ (ден.)</th>
-        <th class="py-3 px-4">Од</th>
-        <th class="py-3 px-4">До</th>
-        <th class="py-3 px-4">Оценка</th>
-        <th class="py-3 px-4">Детали</th>
-      </tr>
-      </thead>
-      <tbody>
-      <tr th:each="lease : ${leases}">
-        <td class="py-3 px-4" th:text="${lease.listing.title}">Удобен еднособен стан</td>
-        <td class="py-3 px-4 fw-bold text-primary" th:text="${#numbers.formatDecimal(lease.rentAmount, 0, 'COMMA', 2, 'POINT')}">16,800</td>
-        <td class="py-3 px-4" th:text="${#temporals.format(lease.startDate, 'yyyy-MM-dd')}">2025-01-01</td>
-        <td class="py-3 px-4" th:text="${#temporals.format(lease.endDate, 'yyyy-MM-dd')}">2025-12-31</td>
-
-        <td class="py-3 px-4">
-          <div th:if="${isLandlord}">
-            <div class="star-rating" th:attr="data-lease-id=${lease.id}">
-              <i th:each="star : ${#numbers.sequence(1, 5)}"
-                 class="bi bi-star text-warning"
-                 th:attr="data-value=${star}"></i>
-            </div>
-            <div class="rating-info">
-              Оценете го станарот
-            </div>
-            <div class="rating-info">
-              Тековна оценка: <span th:text="${lease.tenant.user.rating}">0</span>⭐
-            </div>
-          </div>
-
-          <div th:if="${!isLandlord}">
-            <div class="star-rating" th:attr="data-lease-id=${lease.id}">
-              <i th:each="star : ${#numbers.sequence(1, 5)}"
-                 class="bi bi-star text-warning"
-                 th:attr="data-value=${star}"></i>
-            </div>
-            <div class="rating-info">
-              Оценете го сопственикот
-            </div>
-            <div class="rating-info">
-              Тековна оценка: <span th:text="${lease.landlord.user.rating}">0</span>⭐
-            </div>
-          </div>
-        </td>
-
-        <td class="py-3 px-4">
-          <a th:href="@{/lease/{id}/details(id=${lease.id})}"
-             class="btn btn-sm btn-outline-primary rounded-pill px-3">
-            Види детали
-          </a>
-        </td>
-      </tr>
-      </tbody>
-    </table>
-  </div>
-</div>
-
-<script th:inline="javascript">
-  document.querySelectorAll('.star-rating').forEach(container => {
-    const stars = container.querySelectorAll('i');
-    let currentRating = 0;
-    const leaseId = container.dataset.leaseId;
-
-    function setStars(rating) {
-      stars.forEach((star, index) => {
-        if (index < rating) {
-          star.classList.remove('bi-star');
-          star.classList.add('bi-star-fill');
-        } else {
-          star.classList.remove('bi-star-fill');
-          star.classList.add('bi-star');
-        }
-      });
-    }
-
-    stars.forEach((star, index) => {
-      star.addEventListener('mouseenter', () => {
-        setStars(index + 1);
-      });
-
-      star.addEventListener('mouseleave', () => {
-        setStars(currentRating);
-      });
-
-      star.addEventListener('click', () => {
-        const newRating = index + 1;
-        currentRating = newRating;
-        setStars(currentRating);
-
-        fetch('/lease/api/leases/' + leaseId + '/rate', {
-          method: 'POST',
-          headers: {
-            'Content-Type': 'application/json',
-          },
-          body: JSON.stringify({ rating: newRating }),
-        })
-                .then(response => response.json())
-                .then(data => {
-                  if (data.status === 'success') {
-                    console.log('Rating saved successfully');
-                    const successMsg = document.createElement('div');
-                    successMsg.className = 'alert alert-success alert-dismissible fade show mt-2';
-                    successMsg.innerHTML = `
-              <small>Оценката е успешно зачувана!</small>
-              <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
-            `;
-                    container.appendChild(successMsg);
-
-                    setTimeout(() => {
-                      if (successMsg.parentNode) {
-                        successMsg.remove();
-                      }
-                    }, 3000);
-                  } else {
-                    throw new Error(data.message || 'Unknown error');
-                  }
-                })
-                .catch(err => {
-                  console.error('Error saving rating:', err);
-                  alert('Грешка при зачувување на оценката: ' + err.message);
-                  currentRating = 0;
-                  setStars(currentRating);
-                });
-      });
-    });
-  });
-</script>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: c/main/resources/templates/listing.html
===================================================================
--- src/main/resources/templates/listing.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,79 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk" xmlns:th="http://www.thymeleaf.org">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Заинтересирани</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%)
-    }
-
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-  </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-<div class="mt-4 bg-light-subtle rounded-4 shadow-sm p-4 m-auto mb-4" style="width: 85%;">
-  <a th:href="@{/listings}" class="btn btn-outline-primary">
-    <i class="bi bi-arrow-left me-2"></i> Назад
-  </a>
-
-  <div class="d-flex justify-content-between align-items-start gap-4">
-    <div class="m-auto">
-      <h2 class="text-primary mb-4 fw-bold" th:text="${listing.title}">Удобен еднособен стан</h2>
-
-      <div class="border-top border-bottom py-3">
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Достапно од:</span>
-          <span class="text-dark" th:text="${#temporals.format(listing.availableFrom, 'yyyy-MM-dd')}">2024-07-01</span>
-        </div>
-
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Достапно до:</span>
-          <span class="text-dark" th:text="${#temporals.format(listing.availableTo, 'yyyy-MM-dd')}">2025-07-01</span>
-        </div>
-      </div>
-
-      <div class="pt-3">
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Износ на наем:</span>
-          <span class="text-dark fw-bold" th:text="${listing.unit.rentAmount} + ' ден.'">16.800 <small>ден.</small></span>
-        </div>
-
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Депозит:</span>
-          <span class="text-dark fw-bold" th:text="${listing.unit.rentAmount * 2} + ' ден.'">33.600 <small>ден.</small></span>
-        </div>
-      </div>
-      <div class="d-flex justify-content-between">
-        <a th:if="${isLandlord}" th:href="@{/listings/{id}/applications(id=${listing.id})}" class="mt-3 btn header-gradient text-white">Преглед на пријавени</a>
-        <a th:if="${!isLandlord}" th:href="@{/listings/{id}/apply(id=${listing.id})}" class="mt-3 btn header-gradient text-white">Аплицирај за наем</a>
-        <a th:href="@{'/units/' + ${listing.getUnit().getId()} + '/details'}" class="mt-3 btn header-gradient text-white">Детали</a>
-      </div>
-    </div>
-
-    <div style="width: 55%;">
-      <img th:src="${listing.unit.images[0].image}"
-           class="img-fluid rounded-3 shadow-sm"
-           style="object-fit: cover;">
-    </div>
-  </div>
-
-  <div class="bg-light mt-3 p-4 rounded-4 shadow-sm">
-    <h4>Опис на огласот:</h4>
-    <p th:text="${listing.description}">Пространа едносемејна куќа во мирна станбена област може да се договараме и за останатите работи, јавете се на 072334345 и ќе видиме како што. Без студенти и без агенти!</p>
-  </div>
-</div>
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
Index: src/main/resources/templates/login.html
===================================================================
--- src/main/resources/templates/login.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/resources/templates/login.html	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -19,8 +19,4 @@
   <div class="bg-light-subtle rounded-4 shadow-sm p-5" style="width: 100%; max-width: 400px;">
     <h2 class="text-center text-primary fw-bold mb-4">Најава</h2>
-
-    <div th:if="${param.logout}" class="alert alert-success text-center">
-      Успешно се одјавивте.
-    </div>
 
     <form action="/login" method="post">
Index: src/main/resources/templates/properties.html
===================================================================
--- src/main/resources/templates/properties.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/resources/templates/properties.html	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -22,6 +22,49 @@
 </head>
 <body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
+<header class="header-gradient text-white py-3 rounded-bottom-4 shadow-sm">
+    <div class="container-fluid">
+        <div class="row align-items-center">
+            <div class="col-md-6 d-flex align-items-center">
+                <img src="/images/logo.png" class="ms-5 rounded-pill" style="width: 50px; height: 50px; object-fit: cover;">
+                <h1 class="h2 mb-0 ms-3 me-4">Domify</h1>
+                <a href="/my-rentals" class="btn btn-outline-light" th:if="${user != null} and ${isLandlord}" >Мои огласи</a>
+                <a href="/my-rentals" class="btn btn-outline-light" th:if="${user != null} and ${!isLandlord}" >Мои изнајмувања</a>
+            </div>
+            <div class="col-md-6 d-flex justify-content-end align-items-center">
+                <div class="dropdown d-inline-block me-5">
+                    <button class="btn btn-outline-light dropdown-toggle" type="button" id="userDropdown"
+                            data-bs-toggle="dropdown" aria-expanded="false">
+                        <i class="bi bi-person-circle me-2"></i>
 
+                        <span th:if="${user != null}" th:text="${user.getFirstName() + ' ' + user.getLastName()}">Корисник</span>
+                        <span th:if="${user == null}">Најави се</span>
+                    </button>
+
+                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+                        th:if="${user != null} and ${isLandlord}">
+                        <li><a class="dropdown-item" href="#">Профил</a></li>
+                        <li><a class="dropdown-item" href="#">Мои изнајмувања</a></li>
+                        <li><a class="dropdown-item" href="#">Направи оглас</a></li>
+                        <li><a class="dropdown-item" th:href="@{'/properties/' + ${user.getId()}}">Мои имоти</a></li>
+                        <li><hr class="dropdown-divider"></li>
+                        <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
+                    </ul>
+
+                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+                        th:if="${user != null} and !${isLandlord}">
+                        <li><a class="dropdown-item" href="#">Профил</a></li>
+                        <li><hr class="dropdown-divider"></li>
+                        <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
+                    </ul>
+
+                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+                        th:if="${user == null}">
+                        <li><a class="dropdown-item" href="/login">Најави се</a></li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+</header>
 <div class="container-fluid">
     <div class="row p-3 justify-content-center">
@@ -43,15 +86,15 @@
                          alt="Property Image">
                 </div>
-                <div class="col-md-8 d-flex">
-                    <div class="card-body d-flex flex-column h-100">
+                <div class="col-md-8">
+                    <div class="card-body">
                         <div class="d-flex justify-content-between">
                             <h5 class="card-title text-primary" th:text="${property.getTitle()}">Property Title</h5>
-                            <p class="card-text  text-primary">
+                            <p class="card-text text-primary">
                                 <small class="fw-bold" th:text="${property.getPropertyType().getName()}">Property Type</small>
                             </p>
                         </div>
-                        <p class="card-text flex-grow-1" th:text="${property.getDescription()}">Property description here...</p>
-                        <div class="d-flex justify-content-between mt-auto">
-                            <p class="card-text text-primary ">
+                        <p class="card-text" th:text="${property.getDescription()}">Property description here...</p>
+                        <div class="d-flex justify-content-between">
+                            <p class="card-text text-primary">
                                 <small th:text="${#temporals.format(property.createdAt, 'yyyy-MM-dd')}">Created Date</small>
                             </p>
Index: src/main/resources/templates/property.html
===================================================================
--- src/main/resources/templates/property.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ src/main/resources/templates/property.html	(revision 46a6e8cbdf9e59478b3f187df7ab6e0cd5671c47)
@@ -19,6 +19,49 @@
 </head>
 <body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
+<header class="header-gradient text-white py-3 rounded-bottom-4 shadow-sm">
+  <div class="container-fluid">
+    <div class="row align-items-center">
+      <div class="col-md-6 d-flex align-items-center">
+        <img src="/images/logo.png" class="ms-5 rounded-pill" style="width: 50px; height: 50px; object-fit: cover;">
+        <h1 class="h2 mb-0 ms-3 me-4">Domify</h1>
+        <a href="/my-rentals" class="btn btn-outline-light" th:if="${user != null} and ${isLandlord}" >Мои огласи</a>
+        <a href="/my-rentals" class="btn btn-outline-light" th:if="${user != null} and ${!isLandlord}" >Мои изнајмувања</a>
+      </div>
+      <div class="col-md-6 d-flex justify-content-end align-items-center">
+        <div class="dropdown d-inline-block me-5">
+          <button class="btn btn-outline-light dropdown-toggle" type="button" id="userDropdown"
+                  data-bs-toggle="dropdown" aria-expanded="false">
+            <i class="bi bi-person-circle me-2"></i>
 
+            <span th:if="${user != null}" th:text="${user.getFirstName() + ' ' + user.getLastName()}">Корисник</span>
+            <span th:if="${user == null}">Најави се</span>
+          </button>
+
+          <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+              th:if="${user != null} and ${isLandlord}">
+            <li><a class="dropdown-item" href="#">Профил</a></li>
+            <li><a class="dropdown-item" href="#">Мои изнајмувања</a></li>
+            <li><a class="dropdown-item" href="#">Направи оглас</a></li>
+            <li><a class="dropdown-item" th:href="@{'/properties/' + ${user.getId()}}">Мои имоти</a></li>
+            <li><hr class="dropdown-divider"></li>
+            <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
+          </ul>
+
+          <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+              th:if="${user != null} and !${isLandlord}">
+            <li><a class="dropdown-item" href="#">Профил</a></li>
+            <li><hr class="dropdown-divider"></li>
+            <li><a class="dropdown-item" href="/logout">Одјави се</a></li>
+          </ul>
+
+          <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown"
+              th:if="${user == null}">
+            <li><a class="dropdown-item" href="/login">Најави се</a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+</header>
 
 <div class="mt-4 bg-light-subtle rounded-4 shadow-sm p-4 m-auto mb-4" style="width: 85%;">
@@ -36,4 +79,5 @@
           <span class="text-dark" th:text="${#temporals.format(property.createdAt, 'yyyy-MM-dd')}">2024-07-01</span>
         </div>
+
         <div class="d-flex justify-content-between py-2">
           <span class="text-primary fw-medium">Адреса:</span>
@@ -54,4 +98,5 @@
       </div>
       <div class="d-flex justify-content-between">
+        <button class="mt-3 btn header-gradient text-white">Преглед на пријавени</button>
         <button class="mt-3 btn header-gradient text-white">Детали</button>
       </div>
@@ -82,5 +127,5 @@
           <td class="py-3 px-4" th:text="${unit.unitNumber}">Име</td>
           <td class="py-3 px-3 d-flex justify-content-end">
-            <a th:href="@{'/units/' + ${unit.id} + '/details'}" class="btn btn-sm btn-outline-primary rounded-pill px-3 me-3">Детали</a>
+            <a th:href="@{'/units/' + ${unit.id}}" class="btn btn-sm btn-outline-primary rounded-pill px-3 me-3">Детали</a>
             <a th:href="@{'/listings/create?unitId=' + ${unit.id}}" class="btn btn-sm btn-outline-primary rounded-pill px-3">Направи оглас</a>
           </td>
Index: c/main/resources/templates/service-details.html
===================================================================
--- src/main/resources/templates/service-details.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,110 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Детали за сервисна порака</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-    .status-pending {
-      color: #ff9800;
-      background-color: #fff3e0;
-      padding: 0.25rem 0.5rem;
-      border-radius: 0.25rem;
-    }
-    /*.status-completed {*/
-    /*  color: #4caf50;*/
-    /*  background-color: #e8f5e9;*/
-    /*  padding: 0.25rem 0.5rem;*/
-    /*  border-radius: 0.25rem;*/
-    /*}*/
-    /*.status-in-progress {*/
-    /*  color: #2196f3;*/
-    /*  background-color: #e3f2fd;*/
-    /*  padding: 0.25rem 0.5rem;*/
-    /*  border-radius: 0.25rem;*/
-    /*}*/
-  </style>
-</head>
-<body>
-<div>
-  <div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-</div>
-
-<div class="mt-4 bg-light-subtle rounded-4 shadow-sm p-5 m-auto mb-4 w-50">
-  <a href="/services" class="btn btn-outline-primary">
-    <i class="bi bi-arrow-left me-2"></i> Назад кон сервисни пораки
-  </a>
-
-  <div class="d-flex justify-content-between align-items-start gap-4 mt-4">
-    <div class="m-auto" style="width: 100%;">
-      <h2 class="text-primary mb-4 fw-bold">Детали за сервисна порака</h2>
-
-      <div class="border-top border-bottom py-3">
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Категорија:</span>
-          <span class="text-dark fw-bold">Електрика</span>
-        </div>
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Датум:</span>
-          <span class="text-dark">2024-07-01</span>
-        </div>
-        <div class="d-flex justify-content-between py-2">
-          <span class="text-primary fw-medium">Статус:</span>
-          <span class="status-pending">Во чекање</span>
-        </div>
-      </div>
-
-    </div>
-  </div>
-
-  <div class="bg-light mt-3 p-4 rounded-4 shadow-sm m-auto mt-5">
-    <h4 class="text-primary">Опис на проблемот:</h4>
-    <p>Светлото во ходникот не работи.</p>
-  </div>
-
-  <div class="m-auto w-75 mt-5">
-    <div class="d-flex justify-content-between align-items-center mb-3">
-      <div>
-        <button class="btn btn-success me-2" onclick="updateStatus(1, 'COMPLETED')">
-          <i class="bi bi-check-circle me-2"></i>Означи како завршено
-        </button>
-        <a href="/service-requests/1/messages" class="btn btn-primary">
-          <i class="bi bi-chat-dots me-2"></i>Пораки и логови
-        </a>
-      </div>
-    </div>
-  </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-<script>
-  function updateStatus(requestId, status) {
-    fetch('/api/service-requests/' + requestId + '/status', {
-      method: 'PUT',
-      headers: {
-        'Content-Type': 'application/json'
-      },
-      body: JSON.stringify({ status: status })
-    })
-            .then(response => {
-              if (response.ok) {
-                location.reload();
-              } else {
-                alert('Грешка при ажурирање на статусот');
-              }
-            })
-            .catch(error => console.error('Error:', error));
-  }
-</script>
-</body>
-</html>
Index: c/main/resources/templates/services.html
===================================================================
--- src/main/resources/templates/services.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,90 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>Domify - Почетна</title>
-  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-  <style>
-    body {
-      font-family: 'Inter', sans-serif;
-      background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%);
-    }
-
-    .header-gradient {
-      background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-    }
-  </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-
-<div class="container-fluid">
-  <div class="row">
-    <div class="m-auto w-75">
-      <div class="d-flex justify-content-between align-items-end">
-        <h2 class="mt-5 mb-3" style="color:#1976d2;">Сервиси</h2>
-        <a href="/lease" class="btn btn-outline-primary mb-3" style="height: 40px;">
-          Назад
-        </a>
-      </div>      <div class="table-responsive rounded-4 shadow-sm">
-        <table class="table table-hover align-middle mb-0">
-          <thead class="table-primary" style="background-color: #e3f2fd;">
-          <tr>
-            <th class="py-3 px-4">Краток Опис</th>
-            <th class="py-3 px-4">Датум</th>
-            <th class="py-3 px-4">Статус</th>
-            <th class="py-3 px-4">Акции</th>
-          </tr>
-          </thead>
-          <tbody>
-          <tr>
-            <td class="py-3 px-4 text-primary">Проблем во кујна</td>
-            <td class="py-3 px-4">2025-05-03</td>
-            <td class="py-3 px-4"><span class="text-warning fw-bold">ВО ТЕК</span></td>
-            <td class="py-3 px-4">
-              <a href="/services/details" class="btn btn-sm btn-outline-primary rounded-pill px-3">
-                Детали
-              </a>
-            </td>
-          </tr>
-          <tr>
-            <td class="py-3 px-4 text-primary">Поправка на чешма</td>
-            <td class="py-3 px-4">2025-07-09</td>
-            <td class="py-3 px-4"><span class="text-success fw-bold">ЗАВРШЕНО</span></td>
-            <td class="py-3 px-4">
-              <a href="/services/details" class="btn btn-sm btn-outline-primary rounded-pill px-3">
-                Детали
-              </a>
-            </td>
-          </tr>
-          </tbody>
-        </table>
-      </div>
-      <button class="btn text-light header-gradient mt-4">Пријави проеблем</button>
-    </div>
-  </div>
-
-</div>
-
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-<script>
-  document.querySelectorAll('.sub-item').forEach(item => {
-    item.addEventListener('click', function (e) {
-      e.preventDefault();
-      const city = this.getAttribute('data-city');
-      const muni = this.getAttribute('data-muni');
-      document.getElementById('addressDropdown').textContent = `${city} - ${muni}`;
-      bootstrap.Dropdown.getInstance(document.getElementById('addressDropdown')).hide();
-    });
-  });
-</script>
-</body>
-</html>
Index: c/main/resources/templates/unit.html
===================================================================
--- src/main/resources/templates/unit.html	(revision 68a2c4234e0ec3e2718b43846d698eb832db3c34)
+++ 	(revision )
@@ -1,157 +1,0 @@
-<!DOCTYPE html>
-<html lang="mk">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Domify - Детали за Единица</title>
-    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
-    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
-          integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
-
-    <style>
-        body {
-            background: linear-gradient(135deg, #f5fafd 0%, #e3f0ff 100%)
-        }
-
-        .header-gradient {
-            background: linear-gradient(90deg, #1976d2 0%, #64b5f6 100%);
-        }
-    </style>
-</head>
-<body>
-<div th:replace="fragments/header :: appHeader(${user}, ${isLandlord})"></div>
-
-
-<div class="mt-4 bg-light-subtle rounded-4 shadow-sm p-4 m-auto mb-4" style="width: 85%;">
-    <button class="btn btn-outline-primary mb-4" onclick="history.back()">
-        <i class="bi bi-arrow-left me-2"></i> Назад
-    </button>
-
-    <div class="text-center mb-4">
-        <div th:if="${unit.getImages() != null and !unit.getImages().isEmpty()}"
-             id="unitImagesCarousel" class="carousel slide" data-bs-ride="carousel">
-            <div class="carousel-inner">
-                <div th:each="image, iterStat : ${unit.getImages()}"
-                     th:class="${iterStat.first} ? 'carousel-item active' : 'carousel-item'">
-                    <img th:src="${image.getImage()}"
-                         class="d-block w-100 rounded-3 shadow-sm"
-                         style="object-fit: cover; max-height: 400px;"
-                         th:alt="'Unit ' + ${unit.getUnitNumber()} + ' Image ' + ${iterStat.count}">
-                </div>
-            </div>
-
-            <div th:if="${#lists.size(unit.getImages()) > 1}">
-                <button class="carousel-control-prev" type="button" data-bs-target="#unitImagesCarousel" data-bs-slide="prev">
-                    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
-                    <span class="visually-hidden">Previous</span>
-                </button>
-                <button class="carousel-control-next" type="button" data-bs-target="#unitImagesCarousel" data-bs-slide="next">
-                    <span class="carousel-control-next-icon" aria-hidden="true"></span>
-                    <span class="visually-hidden">Next</span>
-                </button>
-            </div>
-        </div>
-
-        <div th:if="${unit.getImages() == null or unit.getImages().isEmpty()}" class="text-center">
-            <div class="bg-light rounded-3 d-flex align-items-center justify-content-center" style="height: 400px;">
-                <div class="text-muted">
-                    <i class="bi bi-image fs-1"></i>
-                    <p class="mt-2">Нема достапни слики</p>
-                </div>
-            </div>
-        </div>
-    </div>
-
-    <div class="bg-white p-4 rounded-4 shadow-sm mb-4">
-        <h2 class="text-primary fw-bold mb-4 pb-2 border-bottom">
-            Детали за единица <span th:text="${unit.getUnitNumber()}">N/A</span>
-        </h2>
-
-        <div class="row g-3">
-            <div class="col-md-6">
-                <div class="bg-light p-3 rounded-3 h-100">
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Број на единица:</span>
-                        <span class="fw-semibold text-dark" th:text="${unit.getUnitNumber()}">N/A</span>
-                    </div>
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Кат:</span>
-                        <span class="fw-semibold text-dark" th:text="${unit.getFloor()}">N/A</span>
-                    </div>
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Површина:</span>
-                        <span class="fw-semibold text-dark">
-                            <span th:text="${unit.getAreaSqM()}">N/A</span> m²
-                        </span>
-                    </div>
-                </div>
-            </div>
-
-            <div class="col-md-6">
-                <div class="bg-light p-3 rounded-3 h-100">
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Спални:</span>
-                        <span class="fw-semibold text-dark" th:text="${unit.getBedrooms()}">N/A</span>
-                    </div>
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Бањи:</span>
-                        <span class="fw-semibold text-dark" th:text="${unit.getBathrooms()}">N/A</span>
-                    </div>
-                    <div class="d-flex justify-content-between">
-                        <span class="fw-medium text-muted">Износ на наем:</span>
-                        <span class="fw-bold text-primary">
-                            <span th:if="${unit.getRentAmount() != null}"
-                                  th:text="${#numbers.formatDecimal(unit.getRentAmount(), 0, 'COMMA', 0, 'POINT')}">N/A</span>
-                            <span th:if="${unit.getRentAmount() == null}">Не е определен</span>
-                            <small th:if="${unit.getRentAmount() != null}"> ден.</small>
-                        </span>
-                    </div>
-                </div>
-            </div>
-        </div>
-
-        <div class="mt-4 pt-3 border-top">
-            <h5 class="text-secondary mb-3">Информации за имотот</h5>
-            <div class="row g-3">
-                <div class="col-md-6">
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Име на имот:</span>
-                        <span class="fw-semibold text-dark" th:text="${unit.getProperty().getTitle()}">N/A</span>
-                    </div>
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Тип на имот:</span>
-                        <span class="fw-semibold text-dark" th:text="${unit.getProperty().getPropertyType().getName()}">N/A</span>
-                    </div>
-                </div>
-                <div class="col-md-6">
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Адреса:</span>
-                        <span class="fw-semibold text-dark">
-                            <span th:text="${unit.getProperty().getAddress().getStreet()}">N/A</span>
-                            <span th:text="${unit.getProperty().getAddress().getNumber()}"></span>,
-                            <span th:text="${unit.getProperty().getAddress().getCity()}">N/A</span>
-                        </span>
-                    </div>
-                    <div class="d-flex justify-content-between mb-2">
-                        <span class="fw-medium text-muted">Сопственик:</span>
-                        <span class="fw-semibold text-dark">
-                            <span th:text="${unit.getProperty().getOwner().getFirstName()}">N/A</span>
-                            <span th:text="${unit.getProperty().getOwner().getLastName()}"></span>
-                        </span>
-                    </div>
-                </div>
-            </div>
-        </div>
-
-        <div th:if="${unit.getProperty().getDescription() != null and !unit.getProperty().getDescription().isEmpty()}"
-             class="mt-4 pt-3 border-top">
-            <h5 class="text-secondary mb-3">Опис</h5>
-            <p class="text-muted" th:text="${unit.getProperty().getDescription()}">N/A</p>
-        </div>
-    </div>
-</div>
-
-<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
-</body>
-</html>
