harden business rules
This commit is contained in:
@@ -221,9 +221,14 @@ export class League implements IEntity<LeagueId> {
|
||||
|
||||
// Validate participant count against visibility and max
|
||||
const participantCount = ParticipantCount.create(props.participantCount ?? 0);
|
||||
const participantValidation = visibility.validateDriverCount(participantCount.toNumber());
|
||||
if (!participantValidation.valid) {
|
||||
throw new RacingDomainValidationError(participantValidation.error!);
|
||||
|
||||
// Only validate minimum requirements if there are actual participants
|
||||
// This allows leagues to be created empty and populated later
|
||||
if (participantCount.toNumber() > 0) {
|
||||
const participantValidation = visibility.validateDriverCount(participantCount.toNumber());
|
||||
if (!participantValidation.valid) {
|
||||
throw new RacingDomainValidationError(participantValidation.error!);
|
||||
}
|
||||
}
|
||||
|
||||
if (!maxParticipants.canAccommodate(participantCount.toNumber())) {
|
||||
|
||||
Reference in New Issue
Block a user