/**
 * Метаданные участника из LiveKit access-токена (см. `AccessToken.with_metadata`
 * на backend, `services/conference_access.py::build_join`) — JSON
 * `{"avatar_url"?: string, "is_organizer"?: true}`. У гостей и участников без
 * аватара/прав организатора соответствующие поля отсутствуют.
 */
export interface ParticipantMetadata {
  avatar_url?: string | null
  /**
   * Подсказка для UI — организатор ли участник. НЕ источник авторизации:
   * метаданные читает и потенциально может подделать сам клиент. Любое
   * серверное действие организатора (например, принудительный мьют)
   * перепроверяется backend'ом по владельцу конференции в БД.
   */
  is_organizer?: boolean
}

/** Разобрать `participant.metadata` — пустой объект, если поля нет, метаданные пусты или невалидны. */
export function parseParticipantMetadata(metadata: string | undefined): ParticipantMetadata {
  if (!metadata) return {}
  try {
    return JSON.parse(metadata) as ParticipantMetadata
  } catch {
    return {}
  }
}
