import { http } from "./httpClient";
|
|
import { ClientInfo } from "~/shared/models/client.model";
|
import { AppointmentDetail, EditAppointmentParams } from "~/shared/models/appointment.model";
|
|
class AppointmentService {
|
|
// 取得所有預約清單
|
async getMyAppointmentList(): Promise<ClientInfo[]> {
|
return http.get('/consultant/getMyAppointment').then((res) => {
|
const hasNewAppointment = res.data.find((appointment: ClientInfo) => !appointment.consultantViewTime);
|
if (hasNewAppointment) {
|
this.viewAllAppointment();
|
}
|
return res.data;
|
});
|
}
|
|
// 顧問登入顯示新預約單筆數後觸發
|
private viewAllAppointment(): void {
|
http.post('/consultant/record/allAppointmentsView').then();
|
}
|
|
// 讀取預約單時觸發,紀錄讀取預約單時間
|
recordRead(appointmentId: number): Promise<void> {
|
return http.post(`/appointment/recordRead/${appointmentId}`);
|
}
|
|
// 取得預約單細節
|
async getAppointmentDetail(appointmentId: number):Promise<AppointmentDetail> {
|
return http.get(`/appointment/getDetail/${appointmentId}`).then((res) => res.data);
|
}
|
|
// 取消預約
|
cancelAppointment(appointmentId: number): Promise<void> {
|
return http.delete(`/appointment/${appointmentId}`);
|
}
|
|
// 編輯預約
|
editAppointment(editAppointmentParams: EditAppointmentParams) {
|
return http.put('/appointment', editAppointmentParams);
|
}
|
|
}
|
|
export default new AppointmentService();
|