import { useMemo } from 'react'; import { useAuthStore } from '../stores/authStore'; /** * uuid کلینیکِ محیط جاری، یا null وقتی کاربر در محیط شخصی خودش است. * * تنظیمات نوبت‌دهی per-context است و نبودِ clinic_uuid در درخواست یعنی «مطب شخصی»، * نه «هر برنامه‌ای که پیدا شد». پس این تفکیک باید دقیق باشد: پزشکی که هم مطب شخصی * دارد هم عضو کلینیک است، در محیط شخصی نباید برنامهٔ کلینیک را ببیند و برعکس. * * fallback به availableContexts فقط برای مالک کلینیک است — قبل از اولین * switch-context، هنوز context پر نشده ولی نقش کاربر تکلیف را روشن می‌کند. */ export function useClinicContext(): string | null { const dbUuid = useAuthStore(s => s.dbUuid); const context = useAuthStore(s => s.context); const primaryRole = useAuthStore(s => s.primaryRole); const availableContexts = useAuthStore(s => s.availableContexts); return useMemo(() => { if (context?.type === 'clinic') return dbUuid; if (context?.type === 'doctor') return null; return primaryRole === 'clinic' ? availableContexts.find(c => c.type === 'clinic')?.db_uuid ?? dbUuid : null; }, [context, dbUuid, primaryRole, availableContexts]); }