package com.pollex.pam.web.rest; import com.pollex.pam.domain.Appointment; import com.pollex.pam.service.SendMsgService; import com.pollex.pam.service.dto.AppointmentUpdateDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import com.pollex.pam.service.AppointmentService; import com.pollex.pam.service.SatisfactionService; import com.pollex.pam.service.dto.AppointmentCreateDTO; import com.pollex.pam.service.dto.AppointmentCustomerViewDTO; @RestController @RequestMapping("/api/appointment") public class AppointmentResource { @Autowired AppointmentService appointmentService; @Autowired SatisfactionService satisfactionService; @Autowired SendMsgService sendMsgService; @PutMapping("") public ResponseEntity updateAppointment(@RequestBody AppointmentUpdateDTO appointment) { appointmentService.updateAppointment(appointment); return ResponseEntity.noContent().build(); } @DeleteMapping("/{appointmentId}") public ResponseEntity markAppointmentDeleted(@PathVariable Long appointmentId) { appointmentService.markAppointmentDeleted(appointmentId); return ResponseEntity.noContent().build(); } @PostMapping("/customer/create") public void clientCreateAppointment(@RequestBody AppointmentCreateDTO appointmentCreateDTO) { Appointment appointment = appointmentService.customerCreateAppointment(appointmentCreateDTO); sendMsgService.sendAppointmentNotify(appointment); } @PostMapping("/markAsContacted/{appointmentId}") public void markAsContacted(@PathVariable Long appointmentId) { appointmentService.markAsContacted(appointmentId); } @GetMapping("/getDetail/{appointmentId}") public AppointmentCustomerViewDTO getAppointmentDetail(@PathVariable Long appointmentId) { return appointmentService.getAppointmentDetail(appointmentId); } @PostMapping("/recordRead/{appointmentId}") public ResponseEntity recordConsultantReadAppointment(@PathVariable Long appointmentId) { appointmentService.recordConsultantReadTime(appointmentId); return ResponseEntity.noContent().build(); } }