package com.example.nto.controller; import com.example.nto.dto.entity.employee.EmployeeDTO; import com.example.nto.dto.entity.employee.EmployeeItemDTO; import com.example.nto.service.EmployeeService; import com.example.nto.service.PhotoService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequiredArgsConstructor @RequestMapping("api/v1/employees") public class EmployeeController { private final EmployeeService employeeService; private final PhotoService photoService; @GetMapping public ResponseEntity> getAll() { return ResponseEntity.ok(employeeService.getAll()); } @GetMapping("/working/{isWorking}") public ResponseEntity> getAllWorking(@PathVariable boolean isWorking) { return ResponseEntity.ok(employeeService.getWorkingEmployee(isWorking)); } @GetMapping("/{employeeId}") public ResponseEntity getEmployeeById(@PathVariable long employeeId) { return ResponseEntity.ok(employeeService.getById(employeeId)); } @GetMapping("/email/{email}") public ResponseEntity getEmployeeByEmail(@PathVariable String email) { return ResponseEntity.ok(employeeService.getByEmail(email)); } @GetMapping("/telephone/{telephone}") public ResponseEntity getEmployeeByTelephone(@PathVariable String telephone) { return ResponseEntity.ok(employeeService.getByTelephone(telephone)); } @PutMapping("/{id}") public ResponseEntity updateEmployee(@PathVariable long employeeId, @RequestBody EmployeeDTO employeeDTO) { return ResponseEntity.ok(employeeService.update(employeeId, employeeDTO)); } @DeleteMapping("/{id}") public ResponseEntity deleteEmployeeById(@PathVariable long employeeId) { employeeService.delete(employeeId); return ResponseEntity.noContent().build(); } @PatchMapping("/image/profile/{id}") public ResponseEntity patchImageProfile(@PathVariable long employeeId, @RequestBody byte[] photo) { String imageUrl = photoService.uploadProfilePhoto(employeeId, photo); employeeService.patchProfileImage(employeeId, imageUrl); return ResponseEntity.noContent().build(); } @PatchMapping("/block/{id}/{blockStatus}") public ResponseEntity patchImageProfile(@PathVariable long employeeId, @PathVariable boolean blockStatus) { employeeService.patchBlockEmployee(employeeId, blockStatus); return ResponseEntity.noContent().build(); } }