/**
 * Persona — display identity attached to messages and config.
 *
 * Used by `ChatMessage.sender`, `ChatConfig.user`, `ChatConfig.assistant`.
 */

export type ChatRole = 'user' | 'assistant' | 'system';

export interface ChatPersona {
  /** Display name. */
  name?: string;
  /** Avatar image URL. */
  avatarUrl?: string;
  /** Initials fallback when no avatar. Auto-derived from `name` if absent. */
  initials?: string;
  /** Tooltip / aria description. */
  description?: string;
}

export interface ChatUserContext extends ChatPersona {
  email?: string;
  language?: string;
  role?: string;
  /** Free-form custom data forwarded to transport metadata. */
  custom?: Record<string, unknown>;
}

export interface ChatAssistantContext extends ChatPersona {
  /** Model identifier (gpt-4o, claude-opus, …). */
  model?: string;
}
