36 lines
997 B
TypeScript
36 lines
997 B
TypeScript
import { DriverRegistrationStatusDTO } from '../types/generated/DriverRegistrationStatusDTO';
|
|
|
|
export class DriverRegistrationStatusViewModel {
|
|
isRegistered!: boolean;
|
|
raceId!: string;
|
|
driverId!: string;
|
|
|
|
constructor(dto: DriverRegistrationStatusDTO) {
|
|
Object.assign(this, dto);
|
|
}
|
|
|
|
/** UI-specific: Status message */
|
|
get statusMessage(): string {
|
|
return this.isRegistered ? 'Registered for this race' : 'Not registered';
|
|
}
|
|
|
|
/** UI-specific: Status color */
|
|
get statusColor(): string {
|
|
return this.isRegistered ? 'green' : 'red';
|
|
}
|
|
|
|
/** UI-specific: Badge variant */
|
|
get statusBadgeVariant(): string {
|
|
return this.isRegistered ? 'success' : 'warning';
|
|
}
|
|
|
|
/** UI-specific: Registration button text */
|
|
get registrationButtonText(): string {
|
|
return this.isRegistered ? 'Withdraw' : 'Register';
|
|
}
|
|
|
|
/** UI-specific: Whether can register (assuming always can if not registered) */
|
|
get canRegister(): boolean {
|
|
return !this.isRegistered;
|
|
}
|
|
} |