33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { useQuery } from '@tanstack/react-query';
|
|
import { api, type ApiResponse } from '../lib/api';
|
|
|
|
/**
|
|
* بخشهای زمانیِ یک نوبت.
|
|
*
|
|
* تا ۲۰۲۶-۰۸-۰۸ این فایل موتورِ صفحهٔ «نوبت منبعمحور» هم بود — جستجوی وقت، رزرو
|
|
* موقت و ثبت نهایی. آن صفحه حذف شد و آن سه هوک با خودش رفتند. فقط خواندنِ
|
|
* بخشهای نوبت ماند، چون کارت جزئیات نوبت و AppointmentSegmentsCard به آن وابستهاند.
|
|
*/
|
|
export interface AppointmentSegmentRow {
|
|
sequence: number;
|
|
name: string;
|
|
starts_at: number;
|
|
ends_at: number;
|
|
duration_minutes: number;
|
|
patient_present: boolean;
|
|
}
|
|
|
|
/** فهرست خالی یعنی نوبت اسلاتی است، نه اینکه چیزی خراب باشد. */
|
|
export function useAppointmentSegments(uuid: string | undefined) {
|
|
const query = useQuery({
|
|
queryKey: ['appointment-segments', uuid],
|
|
queryFn: () =>
|
|
api.get<ApiResponse<AppointmentSegmentRow[]>>(`/api/v1/appointment/${uuid}/segments`),
|
|
enabled: !!uuid,
|
|
});
|
|
|
|
const rows = query.data?.data;
|
|
|
|
return { segments: Array.isArray(rows) ? rows : [], loading: query.isLoading };
|
|
}
|