import { ServiceStatus } from "@/lib/generated/enums" import type { AvailabilityReason } from "@/lib/api/support-availability" type Translate = (key: string, values?: Record) => string const statusKeys: Record = { [ServiceStatus.Idle]: "ready", [ServiceStatus.Busy]: "busy", [ServiceStatus.Break]: "break", [ServiceStatus.Unavailable]: "unavailable", [ServiceStatus.Vacation]: "vacation", } export function availabilityStatusLabel(status: ServiceStatus, t: Translate) { return t(`supportAvailability.status.${statusKeys[status] ?? "unknown"}`) } export function availabilityStatusOptions(t: Translate, withVacation = true) { return Object.values(ServiceStatus).filter((value): value is ServiceStatus => typeof value === "number" && (withVacation || value !== ServiceStatus.Vacation)).map(value => ({ value: String(value), label: availabilityStatusLabel(value, t) })) } const reasonKeys = new Set(["eligible", "profile_disabled", "user_disabled", "team_disabled", "outside_hours", "offline", "busy", "break", "unavailable", "vacation", "auto_assign_disabled", "capacity"]) export function availabilityReasonLabel(reason: AvailabilityReason, t: Translate) { return t(`supportAvailability.reason.${reasonKeys.has(reason) ? reason : "unknown"}`) }