2025-10-21 13:02:56 -03:00

62 lines
1.4 KiB
TypeScript

/**
* Availability Service
*
* Serviço para gerenciamento de disponibilidade dos médicos
*/
import { apiClient } from "../api/client";
import {
DoctorAvailability,
ListAvailabilityFilters,
CreateAvailabilityInput,
UpdateAvailabilityInput,
} from "./types";
class AvailabilityService {
private readonly basePath = "/doctor-availability";
/**
* Lista as disponibilidades dos médicos
*/
async list(filters?: ListAvailabilityFilters): Promise<DoctorAvailability[]> {
const response = await apiClient.get<DoctorAvailability[]>(this.basePath, {
params: filters,
});
return response.data;
}
/**
* Cria uma nova configuração de disponibilidade
*/
async create(data: CreateAvailabilityInput): Promise<DoctorAvailability> {
const response = await apiClient.post<DoctorAvailability>(
this.basePath,
data
);
return response.data;
}
/**
* Atualiza uma configuração de disponibilidade
*/
async update(
id: string,
data: UpdateAvailabilityInput
): Promise<DoctorAvailability> {
const response = await apiClient.patch<DoctorAvailability>(
`${this.basePath}/${id}`,
data
);
return response.data;
}
/**
* Remove uma configuração de disponibilidade
*/
async delete(id: string): Promise<void> {
await apiClient.delete(`${this.basePath}/${id}`);
}
}
export const availabilityService = new AvailabilityService();