24 lines
604 B
TypeScript
24 lines
604 B
TypeScript
'use client';
|
|
|
|
import type { AuthSessionDTO } from '@/lib/types/generated/AuthSessionDTO';
|
|
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
|
|
|
|
/**
|
|
* Session Presenter
|
|
*
|
|
* Converts AuthSessionDTO to SessionViewModel for client-side presentation.
|
|
* Pure and deterministic - no side effects.
|
|
*/
|
|
export class SessionPresenter {
|
|
/**
|
|
* Present session data as a view model
|
|
*/
|
|
present(sessionDto: AuthSessionDTO | null): SessionViewModel | null {
|
|
if (!sessionDto || !sessionDto.user) {
|
|
return null;
|
|
}
|
|
|
|
return new SessionViewModel(sessionDto.user);
|
|
}
|
|
}
|