import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"

export type RelationFieldValue = { value: string; label: string } | null

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}

/**
 * Build a `{ value, label }` relation object from an API id + name pair.
 * Returns `null` when `id` is absent so the field stays clearable.
 */
export function toRelation(id: unknown, name?: string): RelationFieldValue {
  if (id == null) return null
  if (typeof id === "object" && id !== null && "value" in id && "label" in id) {
    return id as { value: string; label: string }
  }
  return { value: String(id), label: name ?? String(id) }
}

/** Extract a numeric ID from a relation object for API payloads. */
export function toId(relation: RelationFieldValue | undefined): number | undefined {
  return relation ? Number(relation.value) : undefined
}


export function getTodayDate() {
    const today = new Date().toISOString().split("T")[0]
    return today
}