22 lines
610 B
TypeScript
22 lines
610 B
TypeScript
import { RacingDomainValidationError } from '../errors/RacingDomainError';
|
|
|
|
export type MembershipRoleValue = 'owner' | 'admin' | 'steward' | 'member';
|
|
|
|
export class MembershipRole {
|
|
private constructor(private readonly value: MembershipRoleValue) {}
|
|
|
|
static create(value: MembershipRoleValue): MembershipRole {
|
|
if (!value) {
|
|
throw new RacingDomainValidationError('Membership role is required');
|
|
}
|
|
return new MembershipRole(value);
|
|
}
|
|
|
|
toString(): MembershipRoleValue {
|
|
return this.value;
|
|
}
|
|
|
|
equals(other: MembershipRole): boolean {
|
|
return this.value === other.value;
|
|
}
|
|
} |