import globalJSON from '../../../../global/conversation.json'

/**
 * Lobby conversation data.
 */
export interface Conversation {
	/**
	 * Character who owns the conversation as a gallery entry.
	 */
	chara_id: number;
	/**
	 * Number of the conversation within the character's conversation gallery.
	 */
	number: number;
	/**
	 * Location ID of the conversation.
	 */
	location: 110 | 120 | 130 | 210 | 220 | 310 | 410 | 420 | 430 | 510 | 520 | 530;
	/**
	 * English name of the location, for convenience.
	 */
	location_name: string;
	/**
	 * First character in the conversation.
	 * Not necessarily equal to chara_id.
	 */
	chara_1: number;
	/**
	 * Second character, if present.
	 */
	chara_2?: number;
	/**
	 * Third character, if present.
	 */
	chara_3?: number;
	/**
	 * Some unknown number in the game's local database.
	 */
	condition_type: 0 | 1 | 2 | 3 | 4;
}

export const conversation = {
	global: globalJSON as Conversation[],
}

export const byChara = {
	global: globalJSON.reduce((m, c) => m.set(c.chara_id, (m.get(c.chara_id) ?? []).concat(c as Conversation)), new Map<Conversation['chara_id'], Conversation[]>()),
}
