refactor
This commit is contained in:
22
core/racing/domain/entities/MembershipRole.ts
Normal file
22
core/racing/domain/entities/MembershipRole.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user