Files
clinicpro/assets/admin/hooks/useResourceBooking.ts
T

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 };
}