import * as m from '$lib/paraglide/messages.js'; import type { components } from '$lib/generated/api'; type RelationshipDTO = components['schemas']['RelationshipDTO']; export function chipLabel(rel: RelationshipDTO, perspectivePersonId: string): string { const viewpointIsSubject = rel.personId === perspectivePersonId; switch (rel.relationType) { case 'PARENT_OF': return viewpointIsSubject ? m.relation_parent_of() : m.relation_child_of(); case 'SPOUSE_OF': return m.relation_spouse_of(); case 'SIBLING_OF': return m.relation_sibling_of(); case 'FRIEND': return m.relation_friend(); case 'COLLEAGUE': return m.relation_colleague(); case 'EMPLOYER': return m.relation_employer(); case 'DOCTOR': return m.relation_doctor(); case 'NEIGHBOR': return m.relation_neighbor(); default: return m.relation_other(); } } export function otherName(rel: RelationshipDTO, perspectivePersonId: string): string { return rel.personId === perspectivePersonId ? rel.relatedPersonDisplayName : rel.personDisplayName; } /** * Maps a backend inferred-label key (parent, uncle_aunt, ...) to its * localised string. Unknown keys fall back to "distant". */ export function inferredRelationshipLabel(key: string): string { switch (key) { case 'parent': return m.relation_inferred_parent(); case 'child': return m.relation_inferred_child(); case 'spouse': return m.relation_inferred_spouse(); case 'sibling': return m.relation_inferred_sibling(); case 'grandparent': return m.relation_inferred_grandparent(); case 'grandchild': return m.relation_inferred_grandchild(); case 'great_grandparent': return m.relation_inferred_great_grandparent(); case 'great_grandchild': return m.relation_inferred_great_grandchild(); case 'uncle_aunt': return m.relation_inferred_uncle_aunt(); case 'niece_nephew': return m.relation_inferred_niece_nephew(); case 'great_uncle_aunt': return m.relation_inferred_great_uncle_aunt(); case 'great_niece_nephew': return m.relation_inferred_great_niece_nephew(); case 'inlaw_parent': return m.relation_inferred_inlaw_parent(); case 'inlaw_child': return m.relation_inferred_inlaw_child(); case 'sibling_inlaw': return m.relation_inferred_sibling_inlaw(); case 'cousin_1': return m.relation_inferred_cousin_1(); default: return m.relation_inferred_distant(); } }