Index: petify-backend/src/main/java/com/petify/petify/api/AdminClinicApplicationsController.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/api/AdminClinicApplicationsController.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/api/AdminClinicApplicationsController.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -1,9 +1,10 @@
 package com.petify.petify.api;
 
+import com.petify.petify.domain.VetClinic;
 import com.petify.petify.domain.VetClinicApplication;
 import com.petify.petify.dto.VetClinicApplicationDTO;
 import com.petify.petify.repo.AdminRepository;
 import com.petify.petify.repo.VetClinicApplicationRepository;
-import com.petify.petify.service.ClinicApprovalService;
+import com.petify.petify.repo.VetClinicRepository;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -19,13 +20,13 @@
 
     private final VetClinicApplicationRepository applicationRepository;
+    private final VetClinicRepository clinicRepository;
     private final AdminRepository adminRepository;
-    private final ClinicApprovalService clinicApprovalService;
 
     public AdminClinicApplicationsController(VetClinicApplicationRepository applicationRepository,
-                                             AdminRepository adminRepository,
-                                             ClinicApprovalService clinicApprovalService) {
+                                             VetClinicRepository clinicRepository,
+                                             AdminRepository adminRepository) {
         this.applicationRepository = applicationRepository;
+        this.clinicRepository = clinicRepository;
         this.adminRepository = adminRepository;
-        this.clinicApprovalService = clinicApprovalService;
     }
 
@@ -55,5 +56,25 @@
                         .body(Map.of("error", "Admin access required"));
             }
-            VetClinicApplication saved = clinicApprovalService.approveApplication(applicationId, adminUserId);
+            VetClinicApplication application = applicationRepository.findById(applicationId)
+                .orElseThrow(() -> new RuntimeException("Application not found"));
+
+            application.setStatus("APPROVED");
+            application.setReviewedAt(LocalDateTime.now());
+            application.setReviewedBy(adminUserId);
+            application.setDenialReason(null);
+            VetClinicApplication saved = applicationRepository.save(application);
+
+            boolean clinicExists = clinicRepository.findAll().stream()
+                .anyMatch(clinic -> applicationId.equals(clinic.getApplicationId()));
+            if (!clinicExists) {
+                VetClinic clinic = new VetClinic();
+                clinic.setApplicationId(application.getApplicationId());
+                clinic.setName(application.getName());
+                clinic.setEmail(application.getEmail());
+                clinic.setPhone(application.getPhone());
+                clinic.setCity(application.getCity());
+                clinic.setAddress(application.getAddress());
+                clinicRepository.save(clinic);
+            }
 
             return ResponseEntity.ok(new VetClinicApplicationDTO(saved));
Index: petify-backend/src/main/java/com/petify/petify/api/AuthController.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/api/AuthController.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/api/AuthController.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -2,6 +2,4 @@
 
 import com.petify.petify.dto.AuthResponse;
-import com.petify.petify.dto.ChangePasswordRequest;
-import com.petify.petify.dto.ForgotPasswordRequest;
 import com.petify.petify.dto.LoginRequest;
 import com.petify.petify.dto.SignUpRequest;
@@ -49,26 +47,4 @@
     }
 
-    @PostMapping("/change-password")
-    public ResponseEntity<?> changePassword(@RequestBody ChangePasswordRequest request) {
-        try {
-            authService.changePassword(request.getUserId(), request.getCurrentPassword(), request.getNewPassword());
-            return ResponseEntity.ok(Map.of("message", "Password changed successfully"));
-        } catch (RuntimeException e) {
-            return ResponseEntity.badRequest()
-                    .body(Map.of("message", e.getMessage()));
-        }
-    }
-
-    @PostMapping("/forgot-password")
-    public ResponseEntity<?> forgotPassword(@RequestBody ForgotPasswordRequest request) {
-        try {
-            authService.sendForgotPasswordEmail(request.getIdentifier());
-            return ResponseEntity.ok(Map.of("message", "If an account matches that username or email, a temporary password has been sent."));
-        } catch (RuntimeException e) {
-            return ResponseEntity.badRequest()
-                    .body(Map.of("message", e.getMessage()));
-        }
-    }
-
 
     @GetMapping("/users")
Index: petify-backend/src/main/java/com/petify/petify/api/ClinicApplicationsController.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/api/ClinicApplicationsController.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ 	(revision )
@@ -1,70 +1,0 @@
-package com.petify.petify.api;
-
-import com.petify.petify.domain.VetClinicApplication;
-import com.petify.petify.dto.CreateClinicApplicationRequest;
-import com.petify.petify.dto.VetClinicApplicationDTO;
-import com.petify.petify.repo.VetClinicApplicationRepository;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.time.LocalDateTime;
-import java.util.Map;
-
-@RestController
-@RequestMapping("/api/clinic-applications")
-public class ClinicApplicationsController {
-
-    private final VetClinicApplicationRepository applicationRepository;
-
-    public ClinicApplicationsController(VetClinicApplicationRepository applicationRepository) {
-        this.applicationRepository = applicationRepository;
-    }
-
-    @PostMapping
-    public ResponseEntity<?> submitApplication(@RequestBody CreateClinicApplicationRequest request) {
-        try {
-            validate(request);
-
-            VetClinicApplication application = new VetClinicApplication();
-            application.setName(request.getName().trim());
-            application.setEmail(blankToNull(request.getEmail()));
-            application.setPhone(blankToNull(request.getPhone()));
-            application.setCity(request.getCity().trim());
-            application.setAddress(request.getAddress().trim());
-            application.setSubmittedAt(LocalDateTime.now());
-            application.setStatus("PENDING");
-            application.setReviewedAt(null);
-            application.setReviewedBy(null);
-            application.setDenialReason(null);
-
-            return ResponseEntity.status(HttpStatus.CREATED)
-                .body(new VetClinicApplicationDTO(applicationRepository.save(application)));
-        } catch (RuntimeException e) {
-            return ResponseEntity.badRequest().body(Map.of("error", e.getMessage()));
-        }
-    }
-
-    private void validate(CreateClinicApplicationRequest request) {
-        if (request == null) {
-            throw new RuntimeException("Application details are required");
-        }
-        if (request.getName() == null || request.getName().isBlank()) {
-            throw new RuntimeException("Clinic name is required");
-        }
-        if (request.getCity() == null || request.getCity().isBlank()) {
-            throw new RuntimeException("City is required");
-        }
-        if (request.getAddress() == null || request.getAddress().isBlank()) {
-            throw new RuntimeException("Address is required");
-        }
-        if ((request.getEmail() == null || request.getEmail().isBlank())
-            && (request.getPhone() == null || request.getPhone().isBlank())) {
-            throw new RuntimeException("Email or phone is required");
-        }
-    }
-
-    private String blankToNull(String value) {
-        return value == null || value.isBlank() ? null : value.trim();
-    }
-}
Index: petify-backend/src/main/java/com/petify/petify/api/VetClinicsController.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/api/VetClinicsController.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/api/VetClinicsController.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -2,19 +2,12 @@
 
 import com.petify.petify.domain.VetClinic;
-import com.petify.petify.dto.UpdateClinicScheduleRequest;
 import com.petify.petify.dto.VetClinicDTO;
 import com.petify.petify.repo.VetClinicRepository;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.time.LocalTime;
-import java.time.format.DateTimeParseException;
-import java.util.Arrays;
-import java.util.Set;
 import java.util.List;
 import java.util.Map;
@@ -24,8 +17,4 @@
 @RequestMapping("/api/clinics")
 public class VetClinicsController {
-
-    private static final Set<String> ALLOWED_WORK_DAYS = Set.of(
-        "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"
-    );
 
     private final VetClinicRepository vetClinicRepository;
@@ -51,34 +40,4 @@
     }
 
-    @PutMapping("/my/schedule")
-    public ResponseEntity<?> updateMyClinicSchedule(
-        @RequestHeader("X-User-Id") Long userId,
-        @RequestBody UpdateClinicScheduleRequest request) {
-        try {
-            VetClinic clinic = vetClinicRepository.findByUserId(userId)
-                .orElseThrow(() -> new RuntimeException("User is not linked to a clinic"));
-
-            String workDays = normalizeWorkDays(request.getWorkDays());
-            LocalTime startTime = parseTime(request.getStartTime(), "Start time");
-            LocalTime endTime = parseTime(request.getEndTime(), "End time");
-
-            if (!startTime.isBefore(endTime)) {
-                throw new RuntimeException("Start time must be before end time");
-            }
-
-            if (java.time.Duration.between(startTime, endTime).toMinutes() < 30) {
-                throw new RuntimeException("Clinic schedule must contain at least one 30-minute slot");
-            }
-
-            clinic.setWorkDays(workDays);
-            clinic.setStartTime(startTime);
-            clinic.setEndTime(endTime);
-
-            return ResponseEntity.ok(mapToDTO(vetClinicRepository.save(clinic)));
-        } catch (RuntimeException e) {
-            return ResponseEntity.badRequest().body(Map.of("error", e.getMessage()));
-        }
-    }
-
     private VetClinicDTO mapToDTO(VetClinic clinic) {
         return new VetClinicDTO(
@@ -86,46 +45,6 @@
             clinic.getName(),
             clinic.getCity(),
-            clinic.getAddress(),
-            clinic.getWorkDays(),
-            clinic.getStartTime() != null ? clinic.getStartTime().toString() : null,
-            clinic.getEndTime() != null ? clinic.getEndTime().toString() : null
+            clinic.getAddress()
         );
-    }
-
-    private String normalizeWorkDays(String workDays) {
-        if (workDays == null || workDays.isBlank()) {
-            throw new RuntimeException("Choose at least one working day");
-        }
-
-        List<String> normalized = Arrays.stream(workDays.split(","))
-            .map(String::trim)
-            .filter(day -> !day.isBlank())
-            .map(String::toUpperCase)
-            .distinct()
-            .toList();
-
-        if (normalized.isEmpty()) {
-            throw new RuntimeException("Choose at least one working day");
-        }
-
-        for (String day : normalized) {
-            if (!ALLOWED_WORK_DAYS.contains(day)) {
-                throw new RuntimeException("Invalid working day: " + day);
-            }
-        }
-
-        return String.join(",", normalized);
-    }
-
-    private LocalTime parseTime(String value, String label) {
-        if (value == null || value.isBlank()) {
-            throw new RuntimeException(label + " is required");
-        }
-
-        try {
-            return LocalTime.parse(value);
-        } catch (DateTimeParseException e) {
-            throw new RuntimeException(label + " must be in HH:mm format");
-        }
     }
 }
Index: petify-backend/src/main/java/com/petify/petify/config/SecurityConfig.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/config/SecurityConfig.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/config/SecurityConfig.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -96,5 +96,4 @@
                         .requestMatchers(HttpMethod.GET, "/api/clinics").permitAll()
                         .requestMatchers(HttpMethod.GET, "/api/clinics/my").permitAll()
-                        .requestMatchers(HttpMethod.PUT, "/api/clinics/my/schedule").permitAll()
                         .requestMatchers(HttpMethod.GET, "/api/notifications/my").permitAll()
 
@@ -112,5 +111,4 @@
                         .requestMatchers(HttpMethod.GET,"/api/users/admin/listings").permitAll()
                         .requestMatchers(HttpMethod.GET, "/api/admin/clinic-applications").permitAll()
-                        .requestMatchers(HttpMethod.POST, "/api/clinic-applications").permitAll()
                         .requestMatchers(HttpMethod.PATCH, "/api/admin/clinic-applications/*/approve").permitAll()
                         .requestMatchers(HttpMethod.PATCH, "/api/admin/clinic-applications/*/deny").permitAll()
Index: petify-backend/src/main/java/com/petify/petify/domain/UserReview.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/domain/UserReview.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/domain/UserReview.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -19,13 +19,9 @@
     private Long targetUserId;
 
-    @Column(name = "interaction_type", nullable = false, length = 40)
-    private String interactionType;
-
     public UserReview() {}
 
-    public UserReview(Review review, Long targetUserId, String interactionType) {
+    public UserReview(Review review, Long targetUserId) {
         this.review = review;        // DO NOT set reviewId
         this.targetUserId = targetUserId;
-        this.interactionType = interactionType;
     }
 
@@ -55,12 +51,4 @@
         this.targetUserId = targetUserId;
     }
-
-    public String getInteractionType() {
-        return interactionType;
-    }
-
-    public void setInteractionType(String interactionType) {
-        this.interactionType = interactionType;
-    }
 }
 
Index: petify-backend/src/main/java/com/petify/petify/domain/VetClinic.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/domain/VetClinic.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/domain/VetClinic.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -4,6 +4,4 @@
 import lombok.Getter;
 import lombok.Setter;
-
-import java.time.LocalTime;
 
 @Setter
@@ -39,13 +37,4 @@
     private String address;
 
-    @Column(name = "work_days")
-    private String workDays;
-
-    @Column(name = "start_time")
-    private LocalTime startTime;
-
-    @Column(name = "end_time")
-    private LocalTime endTime;
-
     public VetClinic() {}
 
Index: petify-backend/src/main/java/com/petify/petify/dto/ChangePasswordRequest.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/dto/ChangePasswordRequest.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package com.petify.petify.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class ChangePasswordRequest {
-    private Long userId;
-    private String currentPassword;
-    private String newPassword;
-
-    public ChangePasswordRequest() {
-    }
-
-    public ChangePasswordRequest(Long userId, String currentPassword, String newPassword) {
-        this.userId = userId;
-        this.currentPassword = currentPassword;
-        this.newPassword = newPassword;
-    }
-}
Index: petify-backend/src/main/java/com/petify/petify/dto/CreateClinicApplicationRequest.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/dto/CreateClinicApplicationRequest.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ 	(revision )
@@ -1,49 +1,0 @@
-package com.petify.petify.dto;
-
-public class CreateClinicApplicationRequest {
-    private String name;
-    private String email;
-    private String phone;
-    private String city;
-    private String address;
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
-    }
-
-    public String getPhone() {
-        return phone;
-    }
-
-    public void setPhone(String phone) {
-        this.phone = phone;
-    }
-
-    public String getCity() {
-        return city;
-    }
-
-    public void setCity(String city) {
-        this.city = city;
-    }
-
-    public String getAddress() {
-        return address;
-    }
-
-    public void setAddress(String address) {
-        this.address = address;
-    }
-}
Index: petify-backend/src/main/java/com/petify/petify/dto/CreateReviewRequest.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/dto/CreateReviewRequest.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/dto/CreateReviewRequest.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -9,5 +9,4 @@
     private Integer rating;
     private String comment;
-    private String interactionType;
 
     public CreateReviewRequest() {
@@ -19,9 +18,3 @@
     }
 
-    public CreateReviewRequest(Integer rating, String comment, String interactionType) {
-        this.rating = rating;
-        this.comment = comment;
-        this.interactionType = interactionType;
-    }
-
 }
Index: petify-backend/src/main/java/com/petify/petify/dto/ForgotPasswordRequest.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/dto/ForgotPasswordRequest.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package com.petify.petify.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class ForgotPasswordRequest {
-    private String identifier;
-
-    public ForgotPasswordRequest() {
-    }
-
-    public ForgotPasswordRequest(String identifier) {
-        this.identifier = identifier;
-    }
-}
Index: petify-backend/src/main/java/com/petify/petify/dto/UpdateClinicScheduleRequest.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/dto/UpdateClinicScheduleRequest.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package com.petify.petify.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class UpdateClinicScheduleRequest {
-    private String workDays;
-    private String startTime;
-    private String endTime;
-}
Index: petify-backend/src/main/java/com/petify/petify/dto/VetClinicDTO.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/dto/VetClinicDTO.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/dto/VetClinicDTO.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -11,8 +11,4 @@
     private String city;
     private String address;
-    private String workDays;
-    private String startTime;
-    private String endTime;
-    private Boolean scheduleComplete;
 
     public VetClinicDTO() {
@@ -26,23 +22,4 @@
     }
 
-    public VetClinicDTO(
-        Long clinicId,
-        String name,
-        String city,
-        String address,
-        String workDays,
-        String startTime,
-        String endTime
-    ) {
-        this.clinicId = clinicId;
-        this.name = name;
-        this.city = city;
-        this.address = address;
-        this.workDays = workDays;
-        this.startTime = startTime;
-        this.endTime = endTime;
-        this.scheduleComplete = workDays != null && !workDays.isBlank() && startTime != null && endTime != null;
-    }
-
 }
 
Index: petify-backend/src/main/java/com/petify/petify/repo/VetClinicRepository.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/repo/VetClinicRepository.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/repo/VetClinicRepository.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -10,5 +10,4 @@
 public interface VetClinicRepository extends JpaRepository<VetClinic, Long> {
     java.util.List<VetClinic> findAllByOrderByNameAsc();
-    Optional<VetClinic> findByApplicationId(Long applicationId);
     Optional<VetClinic> findByUserId(Long userId);
     boolean existsByUserId(Long userId);
Index: petify-backend/src/main/java/com/petify/petify/service/AppointmentService.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/service/AppointmentService.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/service/AppointmentService.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -31,5 +31,4 @@
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
@@ -39,4 +38,6 @@
 
     private static final Logger logger = LoggerFactory.getLogger(AppointmentService.class);
+    private static final LocalTime CLINIC_DAY_START = LocalTime.of(9, 0);
+    private static final LocalTime CLINIC_DAY_END = LocalTime.of(17, 0);
     private static final int SLOT_MINUTES = 30;
     private static final List<String> NON_BLOCKING_STATUSES = List.of("CANCELLED", "CANCELED", "NO_SHOW");
@@ -83,9 +84,10 @@
         }
 
-        VetClinic clinic = vetClinicRepository.findById(request.getClinicId())
-            .orElseThrow(() -> new RuntimeException("Vet clinic not found"));
+        if (!vetClinicRepository.existsById(request.getClinicId())) {
+            throw new RuntimeException("Vet clinic not found");
+        }
 
         LocalDateTime appointmentTime = LocalDateTime.parse(request.getDateTime());
-        if (!isClinicSlotAvailable(clinic, appointmentTime)) {
+        if (!isClinicSlotAvailable(request.getClinicId(), appointmentTime)) {
             throw new RuntimeException("Selected appointment slot is no longer available");
         }
@@ -208,14 +210,10 @@
         }
 
-        VetClinic clinic = vetClinicRepository.findById(clinicId)
-            .orElseThrow(() -> new RuntimeException("Vet clinic not found"));
-        requireCompleteSchedule(clinic);
-
-        if (!isWorkingDay(clinic, date)) {
-            return List.of();
-        }
-
-        LocalDateTime dayStart = date.atTime(clinic.getStartTime());
-        LocalDateTime dayEnd = date.atTime(clinic.getEndTime());
+        if (!vetClinicRepository.existsById(clinicId)) {
+            throw new RuntimeException("Vet clinic not found");
+        }
+
+        LocalDateTime dayStart = date.atTime(CLINIC_DAY_START);
+        LocalDateTime dayEnd = date.atTime(CLINIC_DAY_END);
         Set<LocalDateTime> bookedSlots = appointmentRepository
             .findByClinicIdAndDateTimeBetweenAndStatusNotInOrderByDateTimeAsc(
@@ -259,14 +257,10 @@
         }
 
-        VetClinic clinic = vetClinicRepository.findById(clinicId)
-            .orElseThrow(() -> new RuntimeException("Vet clinic not found"));
-        requireCompleteSchedule(clinic);
-
-        if (!isWorkingDay(clinic, date)) {
-            return List.of();
-        }
-
-        LocalDateTime dayStart = date.atTime(clinic.getStartTime());
-        LocalDateTime dayEnd = date.atTime(clinic.getEndTime());
+        if (!vetClinicRepository.existsById(clinicId)) {
+            throw new RuntimeException("Vet clinic not found");
+        }
+
+        LocalDateTime dayStart = date.atTime(CLINIC_DAY_START);
+        LocalDateTime dayEnd = date.atTime(CLINIC_DAY_END);
 
         return unavailableSlotRepository
@@ -288,10 +282,11 @@
         }
 
-        VetClinic clinic = vetClinicRepository.findById(clinicId)
-            .orElseThrow(() -> new RuntimeException("Vet clinic not found"));
+        if (!vetClinicRepository.existsById(clinicId)) {
+            throw new RuntimeException("Vet clinic not found");
+        }
 
         LocalDateTime slotTime = LocalDateTime.parse(request.getDateTime());
-        if (!isValidWorkingSlot(clinic, slotTime)) {
-            throw new RuntimeException("Unavailable slot must be a future 30-minute slot inside your clinic working schedule");
+        if (!isValidWorkingSlot(slotTime)) {
+            throw new RuntimeException("Unavailable slot must be a future 30-minute slot between 09:00 and 17:00");
         }
 
@@ -337,49 +332,24 @@
     }
 
-    private boolean isClinicSlotAvailable(VetClinic clinic, LocalDateTime appointmentTime) {
-        if (!isValidWorkingSlot(clinic, appointmentTime)) {
+    private boolean isClinicSlotAvailable(Long clinicId, LocalDateTime appointmentTime) {
+        if (!isValidWorkingSlot(appointmentTime)) {
             return false;
         }
 
         return !appointmentRepository.existsByClinicIdAndDateTimeAndStatusNotIn(
-            clinic.getClinicId(),
+            clinicId,
             appointmentTime,
             NON_BLOCKING_STATUSES
-        ) && !unavailableSlotRepository.existsByClinicIdAndDateTime(clinic.getClinicId(), appointmentTime);
-    }
-
-    private boolean isValidWorkingSlot(VetClinic clinic, LocalDateTime appointmentTime) {
-        requireCompleteSchedule(clinic);
+        ) && !unavailableSlotRepository.existsByClinicIdAndDateTime(clinicId, appointmentTime);
+    }
+
+    private boolean isValidWorkingSlot(LocalDateTime appointmentTime) {
         LocalTime time = appointmentTime.toLocalTime();
-        long minutesFromStart = java.time.Duration.between(clinic.getStartTime(), time).toMinutes();
-
-        return isWorkingDay(clinic, appointmentTime.toLocalDate())
-            && !appointmentTime.isBefore(LocalDateTime.now())
-            && !time.isBefore(clinic.getStartTime())
-            && time.isBefore(clinic.getEndTime())
-            && minutesFromStart >= 0
-            && minutesFromStart % SLOT_MINUTES == 0
+        return !appointmentTime.isBefore(LocalDateTime.now())
+            && !time.isBefore(CLINIC_DAY_START)
+            && time.isBefore(CLINIC_DAY_END)
+            && appointmentTime.getMinute() % SLOT_MINUTES == 0
             && appointmentTime.getSecond() == 0
             && appointmentTime.getNano() == 0;
-    }
-
-    private void requireCompleteSchedule(VetClinic clinic) {
-        if (clinic.getWorkDays() == null || clinic.getWorkDays().isBlank()
-            || clinic.getStartTime() == null
-            || clinic.getEndTime() == null) {
-            throw new RuntimeException("This clinic has not added working days and hours yet");
-        }
-
-        if (!clinic.getStartTime().isBefore(clinic.getEndTime())) {
-            throw new RuntimeException("Clinic working hours are invalid");
-        }
-    }
-
-    private boolean isWorkingDay(VetClinic clinic, LocalDate date) {
-        String day = date.getDayOfWeek().name();
-        return Arrays.stream(clinic.getWorkDays().split(","))
-            .map(String::trim)
-            .map(String::toUpperCase)
-            .anyMatch(day::equals);
     }
 
Index: petify-backend/src/main/java/com/petify/petify/service/AuthService.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/service/AuthService.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/service/AuthService.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -22,5 +22,4 @@
 import org.springframework.transaction.annotation.Transactional;
 
-import java.security.SecureRandom;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -32,6 +31,4 @@
 
     private static final Logger logger = LoggerFactory.getLogger(AuthService.class);
-    private static final String PASSWORD_CHARS = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789!@#$%";
-    private static final SecureRandom SECURE_RANDOM = new SecureRandom();
 
     private final UserRepository userRepository;
@@ -42,11 +39,9 @@
     private final AnalyticsRepository analyticsRepository;
     private final VetClinicRepository vetClinicRepository;
-    private final ClinicCredentialsEmailService credentialsEmailService;
 
     public AuthService(UserRepository userRepository, ClientRepository clientRepository,
                       OwnerRepository ownerRepository, AdminRepository adminRepository,
                       PasswordEncoder passwordEncoder, AnalyticsRepository analyticsRepository,
-                      VetClinicRepository vetClinicRepository,
-                      ClinicCredentialsEmailService credentialsEmailService) {
+                      VetClinicRepository vetClinicRepository) {
         this.userRepository = userRepository;
         this.clientRepository = clientRepository;
@@ -56,5 +51,4 @@
         this.analyticsRepository = analyticsRepository;
         this.vetClinicRepository = vetClinicRepository;
-        this.credentialsEmailService = credentialsEmailService;
     }
 
@@ -183,69 +177,4 @@
             isVerified
         );
-    }
-
-    @Transactional
-    public void changePassword(Long userId, String currentPassword, String newPassword) {
-        if (userId == null) {
-            throw new RuntimeException("User is required");
-        }
-        if (currentPassword == null || currentPassword.isBlank()) {
-            throw new RuntimeException("Current password is required");
-        }
-        if (newPassword == null || newPassword.isBlank()) {
-            throw new RuntimeException("New password is required");
-        }
-        if (newPassword.length() < 8) {
-            throw new RuntimeException("New password must be at least 8 characters long");
-        }
-        if (newPassword.equals(currentPassword)) {
-            throw new RuntimeException("New password must be different from the current password");
-        }
-
-        User user = userRepository.findById(userId)
-            .orElseThrow(() -> new RuntimeException("User not found"));
-
-        boolean passwordMatches = passwordEncoder.matches(currentPassword, user.getPassword());
-        if (!passwordMatches && !currentPassword.equals(user.getPassword())) {
-            throw new RuntimeException("Current password is incorrect");
-        }
-
-        user.setPassword(passwordEncoder.encode(newPassword));
-        userRepository.save(user);
-        logger.info("Password changed successfully for user: {}", user.getUsername());
-    }
-
-    @Transactional
-    public void sendForgotPasswordEmail(String identifier) {
-        if (identifier == null || identifier.isBlank()) {
-            throw new RuntimeException("Username or email is required");
-        }
-
-        Optional<User> user = userRepository.findByUsernameOrEmail(identifier.trim(), identifier.trim());
-        if (user.isEmpty()) {
-            logger.info("Password reset requested for unknown identifier: {}", identifier);
-            return;
-        }
-
-        User foundUser = user.get();
-        String temporaryPassword = generateTemporaryPassword();
-        foundUser.setPassword(passwordEncoder.encode(temporaryPassword));
-        userRepository.save(foundUser);
-
-        credentialsEmailService.sendTemporaryPassword(
-            foundUser.getEmail(),
-            foundUser.getFirstName(),
-            foundUser.getUsername(),
-            temporaryPassword
-        );
-        logger.info("Temporary password sent for user: {}", foundUser.getUsername());
-    }
-
-    private String generateTemporaryPassword() {
-        StringBuilder password = new StringBuilder();
-        for (int i = 0; i < 14; i++) {
-            password.append(PASSWORD_CHARS.charAt(SECURE_RANDOM.nextInt(PASSWORD_CHARS.length())));
-        }
-        return password.toString();
     }
 
Index: petify-backend/src/main/java/com/petify/petify/service/ClinicApprovalService.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/service/ClinicApprovalService.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ 	(revision )
@@ -1,126 +1,0 @@
-package com.petify.petify.service;
-
-import com.petify.petify.domain.User;
-import com.petify.petify.domain.VetClinic;
-import com.petify.petify.domain.VetClinicApplication;
-import com.petify.petify.repo.UserRepository;
-import com.petify.petify.repo.VetClinicApplicationRepository;
-import com.petify.petify.repo.VetClinicRepository;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-
-import java.security.SecureRandom;
-import java.time.LocalDateTime;
-import java.util.Locale;
-
-@Service
-public class ClinicApprovalService {
-
-    private static final int MAX_USERNAME_LENGTH = 30;
-    private static final String PASSWORD_CHARS = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789!@#$%";
-    private static final SecureRandom SECURE_RANDOM = new SecureRandom();
-
-    private final VetClinicApplicationRepository applicationRepository;
-    private final VetClinicRepository clinicRepository;
-    private final UserRepository userRepository;
-    private final PasswordEncoder passwordEncoder;
-    private final ClinicCredentialsEmailService credentialsEmailService;
-
-    public ClinicApprovalService(VetClinicApplicationRepository applicationRepository,
-                                 VetClinicRepository clinicRepository,
-                                 UserRepository userRepository,
-                                 PasswordEncoder passwordEncoder,
-                                 ClinicCredentialsEmailService credentialsEmailService) {
-        this.applicationRepository = applicationRepository;
-        this.clinicRepository = clinicRepository;
-        this.userRepository = userRepository;
-        this.passwordEncoder = passwordEncoder;
-        this.credentialsEmailService = credentialsEmailService;
-    }
-
-    @Transactional
-    public VetClinicApplication approveApplication(Long applicationId, Long adminUserId) {
-        VetClinicApplication application = applicationRepository.findById(applicationId)
-            .orElseThrow(() -> new RuntimeException("Application not found"));
-
-        application.setStatus("APPROVED");
-        application.setReviewedAt(LocalDateTime.now());
-        application.setReviewedBy(adminUserId);
-        application.setDenialReason(null);
-        VetClinicApplication savedApplication = applicationRepository.save(application);
-
-        VetClinic clinic = clinicRepository.findByApplicationId(applicationId)
-            .orElseGet(() -> createClinic(application));
-
-        if (clinic.getUserId() == null) {
-            if (!StringUtils.hasText(application.getEmail())) {
-                throw new IllegalArgumentException("Clinic email is required to create and send account credentials");
-            }
-            if (userRepository.findByEmail(application.getEmail()).isPresent()) {
-                throw new IllegalArgumentException("A user with this clinic email already exists");
-            }
-
-            String username = generateUniqueUsername(application.getName());
-            String password = generatePassword();
-            User user = new User(
-                username,
-                application.getEmail(),
-                passwordEncoder.encode(password),
-                truncate(application.getName(), 60),
-                "Clinic"
-            );
-
-            User savedUser = userRepository.save(user);
-            clinic.setUserId(savedUser.getUserId());
-            clinicRepository.save(clinic);
-
-            credentialsEmailService.sendCredentials(application.getEmail(), application.getName(), username, password);
-        }
-
-        return savedApplication;
-    }
-
-    private VetClinic createClinic(VetClinicApplication application) {
-        VetClinic clinic = new VetClinic();
-        clinic.setApplicationId(application.getApplicationId());
-        clinic.setName(application.getName());
-        clinic.setEmail(application.getEmail());
-        clinic.setPhone(application.getPhone());
-        clinic.setCity(application.getCity());
-        clinic.setAddress(application.getAddress());
-        return clinicRepository.save(clinic);
-    }
-
-    private String generateUniqueUsername(String clinicName) {
-        String base = "clinic." + clinicName.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9]+", "");
-        if (base.equals("clinic.")) {
-            base = "clinic.account";
-        }
-        base = truncate(base, MAX_USERNAME_LENGTH);
-
-        String username = base;
-        int suffix = 2;
-        while (userRepository.findByUsername(username).isPresent()) {
-            String suffixText = String.valueOf(suffix++);
-            username = truncate(base, MAX_USERNAME_LENGTH - suffixText.length()) + suffixText;
-        }
-        return username;
-    }
-
-    private String generatePassword() {
-        StringBuilder password = new StringBuilder();
-        for (int i = 0; i < 14; i++) {
-            password.append(PASSWORD_CHARS.charAt(SECURE_RANDOM.nextInt(PASSWORD_CHARS.length())));
-        }
-        return password.toString();
-    }
-
-    private String truncate(String value, int maxLength) {
-        if (value == null || value.length() <= maxLength) {
-            return value;
-        }
-        return value.substring(0, maxLength);
-    }
-}
Index: petify-backend/src/main/java/com/petify/petify/service/ClinicCredentialsEmailService.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/service/ClinicCredentialsEmailService.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ 	(revision )
@@ -1,94 +1,0 @@
-package com.petify.petify.service;
-
-import org.springframework.beans.factory.ObjectProvider;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.mail.SimpleMailMessage;
-import org.springframework.mail.javamail.JavaMailSender;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-@Service
-public class ClinicCredentialsEmailService {
-
-    private final ObjectProvider<JavaMailSender> mailSenderProvider;
-    private final String fromAddress;
-    private final String mailPassword;
-
-    public ClinicCredentialsEmailService(ObjectProvider<JavaMailSender> mailSenderProvider,
-                                         @Value("${spring.mail.username:}") String fromAddress,
-                                         @Value("${spring.mail.password:}") String mailPassword) {
-        this.mailSenderProvider = mailSenderProvider;
-        this.fromAddress = fromAddress;
-        this.mailPassword = mailPassword;
-    }
-
-    public void sendCredentials(String recipientEmail, String clinicName, String username, String password) {
-        if (!StringUtils.hasText(recipientEmail)) {
-            throw new IllegalArgumentException("Clinic email is required to send account credentials");
-        }
-
-        JavaMailSender mailSender = getConfiguredMailSender();
-
-        SimpleMailMessage message = new SimpleMailMessage();
-        message.setFrom(fromAddress);
-        message.setTo(recipientEmail);
-        message.setSubject("Your Petify clinic account has been approved");
-        message.setText("""
-                Hello %s,
-
-                Your clinic application has been approved.
-
-                You can now sign in to Petify with these credentials:
-                Username: %s
-                Password: %s
-
-                Please change this password after your first login.
-
-                Petify Team
-                """.formatted(clinicName, username, password));
-
-        mailSender.send(message);
-    }
-
-    public void sendTemporaryPassword(String recipientEmail, String firstName, String username, String temporaryPassword) {
-        if (!StringUtils.hasText(recipientEmail)) {
-            throw new IllegalArgumentException("User email is required to send password reset credentials");
-        }
-
-        JavaMailSender mailSender = getConfiguredMailSender();
-
-        SimpleMailMessage message = new SimpleMailMessage();
-        message.setFrom(fromAddress);
-        message.setTo(recipientEmail);
-        message.setSubject("Your Petify password reset");
-        message.setText("""
-                Hello %s,
-
-                We received a request to reset your Petify password.
-
-                You can sign in with these temporary credentials:
-                Username: %s
-                Temporary password: %s
-
-                After signing in, open your profile's Account tab and choose a new password.
-
-                If you did not request this reset, please change your password right away.
-
-                Petify Team
-                """.formatted(firstName, username, temporaryPassword));
-
-        mailSender.send(message);
-    }
-
-    private JavaMailSender getConfiguredMailSender() {
-        if (!StringUtils.hasText(fromAddress) || !StringUtils.hasText(mailPassword)) {
-            throw new IllegalStateException("Mail username and password are not configured. Set MAIL_USERNAME and MAIL_PASSWORD before sending account emails.");
-        }
-
-        JavaMailSender mailSender = mailSenderProvider.getIfAvailable();
-        if (mailSender == null) {
-            throw new IllegalStateException("Mail sender is not configured. Set spring.mail.* properties before sending account emails.");
-        }
-        return mailSender;
-    }
-}
Index: petify-backend/src/main/java/com/petify/petify/service/ReviewService.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/service/ReviewService.java	(revision f6ed6e478015d417b9610fe651dfccdc3e22dc89)
+++ petify-backend/src/main/java/com/petify/petify/service/ReviewService.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
@@ -19,5 +19,4 @@
 
 import java.time.LocalDateTime;
-import java.util.Set;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -27,11 +26,4 @@
 
     private static final Logger logger = LoggerFactory.getLogger(ReviewService.class);
-    private static final Set<String> USER_REVIEW_INTERACTION_TYPES = Set.of(
-            "EVENT",
-            "PERSONAL_INTERACTION",
-            "ONLINE",
-            "PHONE_CALL",
-            "OTHER"
-    );
 
     private final ReviewRepository reviewRepository;
@@ -66,6 +58,9 @@
     public ReviewDTO createReview(Long reviewerId, Long targetUserId, CreateReviewRequest request) {
         logger.info("==== START createReview ====");
-        validateReviewRequest(request);
-        String interactionType = normalizeUserReviewInteractionType(request.getInteractionType());
+        // Validate rating
+        if (request.getRating() == null || request.getRating() < 1 || request.getRating() > 5) {
+            logger.error(" VALIDATION FAILED: Invalid rating: {}", request.getRating());
+            throw new RuntimeException("Rating must be between 1 and 5");
+        }
 
 
@@ -123,5 +118,4 @@
 
         userReview.setTargetUserId(targetUserId);
-        userReview.setInteractionType(interactionType);
 
         // Save UserReview to database with flush
@@ -291,17 +285,4 @@
     }
 
-    private String normalizeUserReviewInteractionType(String interactionType) {
-        if (interactionType == null || interactionType.isBlank()) {
-            throw new RuntimeException("Please choose how you interacted with this user");
-        }
-
-        String normalized = interactionType.trim().toUpperCase();
-        if (!USER_REVIEW_INTERACTION_TYPES.contains(normalized)) {
-            throw new RuntimeException("Interaction type must be one of: EVENT, PERSONAL_INTERACTION, ONLINE, PHONE_CALL, OTHER");
-        }
-
-        return normalized;
-    }
-
     private User getReviewer(Long reviewerId) {
         return userRepository.findById(reviewerId)
