import { SessionDataDto } from '../dtos'; export class SessionViewModel implements SessionDataDto { userId: string; email: string; displayName?: string; driverId?: string; isAuthenticated: boolean; constructor(dto: SessionDataDto) { Object.assign(this, dto); } /** UI-specific: User greeting */ get greeting(): string { return `Hello, ${this.displayName || this.email}!`; } /** UI-specific: Avatar initials */ get avatarInitials(): string { if (this.displayName) { return this.displayName.split(' ').map(n => n[0]).join('').toUpperCase(); } return this.email[0].toUpperCase(); } /** UI-specific: Whether has driver profile */ get hasDriverProfile(): boolean { return !!this.driverId; } /** UI-specific: Authentication status display */ get authStatusDisplay(): string { return this.isAuthenticated ? 'Logged In' : 'Logged Out'; } }