/** * EmailSignupViewModel * * View model for email signup responses */ import { ViewModel } from "../contracts/view-models/ViewModel"; import type { EmailSignupViewData } from "../view-data/EmailSignupViewData"; export class EmailSignupViewModel extends ViewModel { constructor(private readonly viewData: EmailSignupViewData) { super(); } get email(): string { return this.viewData.email; } get message(): string { return this.viewData.message; } get status(): EmailSignupViewData["status"] { return this.viewData.status; } get isSuccess(): boolean { return this.status === 'success'; } get isError(): boolean { return this.status === 'error'; } get isInfo(): boolean { return this.status === 'info'; } }