/** * 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 { private readonly data: EmailSignupViewData; constructor(data: EmailSignupViewData) { super(); this.data = data; } get email(): string { return this.data.email; } get message(): string { return this.data.message; } get status(): EmailSignupViewData["status"] { return this.data.status; } get isSuccess(): boolean { return this.status === 'success'; } get isError(): boolean { return this.status === 'error'; } get isInfo(): boolean { return this.status === 'info'; } }