/**
 * Base interface untuk error yang digunakan di seluruh aplikasi
 */
export interface XError {
  /** Pesan error yang akan ditampilkan */
  message: string
  /** Kode error (opsional) */
  code?: string
  /** Nilai yang diharapkan (untuk validasi) */
  expectedVal?: string
  /** Nilai yang diberikan (untuk validasi) */
  givenVal?: string
  /** Path field yang error (untuk form validation) */
  path?: readonly (string | number)[]
  /** Properties tambahan lainnya */
  [key: string]: any
}

/**
 * Collection of errors dengan key sebagai field name
 */
export type XErrors = Record<string, XError>

/**
 * Form errors type alias untuk kompatibilitas
 */
export type FormErrors = XErrors
