import { toJalali } from '@core/utils/useDataTime' /** هم‌تراز با CustomerPresenceService::ONLINE_THRESHOLD_SECONDS روی سرور */ export const CUSTOMER_ONLINE_THRESHOLD_MS = 2 * 60 * 1000 export type CustomerPresenceKind = 'online' | 'offline' | 'never' export function getCustomerPresenceKind( lastSeenAt: string | Date | null | undefined ): CustomerPresenceKind { if (!lastSeenAt) return 'never' const t = lastSeenAt instanceof Date ? lastSeenAt.getTime() : new Date(lastSeenAt).getTime() if (!Number.isFinite(t)) return 'never' if (Date.now() - t < CUSTOMER_ONLINE_THRESHOLD_MS) return 'online' return 'offline' } export function isCustomerOnline(lastSeenAt: string | Date | null | undefined): boolean { return getCustomerPresenceKind(lastSeenAt) === 'online' } /** متن وضعیت برای چت (به‌جای «نامشخص») */ export function formatCustomerPresenceLabel( lastSeenAt: string | Date | null | undefined ): string { const kind = getCustomerPresenceKind(lastSeenAt) if (kind === 'online') return 'آنلاین' if (kind === 'never') return 'آفلاین' return lastSeenAt ? `آخرین بازدید ${toJalali(lastSeenAt as string)}` : 'آفلاین' }