feat(api): Add originalName field to beneficiary responses

- Add originalName to Beneficiary type in types/index.ts
- Update getAllBeneficiaries to map displayName, originalName, customName from API
- Update getWellNuoBeneficiary to include originalName in response mapping
- Use server-provided displayName instead of computing client-side

Now GET /me/beneficiaries/:id returns:
- displayName: customName || name (for UI display)
- originalName: original name from beneficiaries table
- customName: user's custom name for this beneficiary

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Sergei 2026-01-22 13:02:12 -08:00
parent 9f0baea3fd
commit 9e77a8e059
2 changed files with 7 additions and 4 deletions

View File

@ -675,9 +675,10 @@ class ApiService {
// Map API response to Beneficiary type // Map API response to Beneficiary type
const beneficiaries: Beneficiary[] = (data.beneficiaries || []).map((item: any) => ({ const beneficiaries: Beneficiary[] = (data.beneficiaries || []).map((item: any) => ({
id: item.id, id: item.id,
name: item.name || item.email, name: item.originalName || item.name || item.email, // Original name from server
customName: item.customName || null, // User's custom name for this beneficiary customName: item.customName || null, // User's custom name for this beneficiary
displayName: item.customName || item.name || item.email, // For UI display displayName: item.displayName || item.customName || item.name || item.email, // Server-provided displayName
originalName: item.originalName || item.name, // Original name from beneficiaries table
avatar: item.avatarUrl || undefined, // Use uploaded avatar from server avatar: item.avatarUrl || undefined, // Use uploaded avatar from server
status: 'offline' as const, status: 'offline' as const,
email: item.email, email: item.email,
@ -729,9 +730,10 @@ class ApiService {
const beneficiary: Beneficiary = { const beneficiary: Beneficiary = {
id: data.id, id: data.id,
name: data.name || data.email, name: data.originalName || data.name || data.email, // Original name from server
customName: data.customName || null, // User's custom name for this beneficiary customName: data.customName || null, // User's custom name for this beneficiary
displayName: data.customName || data.name || data.email, // For UI display displayName: data.displayName || data.customName || data.name || data.email, // Server-provided displayName
originalName: data.originalName || data.name, // Original name from beneficiaries table
avatar: data.avatarUrl || undefined, avatar: data.avatarUrl || undefined,
status: 'offline' as const, status: 'offline' as const,
email: data.email, email: data.email,

View File

@ -85,6 +85,7 @@ export interface Beneficiary {
name: string; name: string;
customName?: string | null; // User's custom display name (e.g., "Mom", "Dad") customName?: string | null; // User's custom display name (e.g., "Mom", "Dad")
displayName: string; // Computed: customName || name (for UI display) displayName: string; // Computed: customName || name (for UI display)
originalName?: string; // Original name from beneficiaries table (same as name)
avatar?: string; avatar?: string;
device_id?: string; device_id?: string;
status: 'online' | 'offline'; status: 'online' | 'offline';