| ⇢ | A | PromotionCodeService added | |
| ⇢ | A | PatternAlreadyInUseException added | |
| ⇢ | A | PromotionController added | |
| ⇢ | A | PatternNotComplexEnoughException added |
| ⇢ | A | PromotionCodeService::generateIndividualCodes() added | |
| ⇢ | A | PromotionTestFixtureBehaviour::createPromotionWith... added | |
| ⇢ | A | PromotionCodeService::replaceIndividualCodes() added | |
| ⇢ | A | PromotionCodeService::resetPromotionCodes() added | |
| ⇢ | A | PromotionCodeService::getRandomChar() added | |
| ⇢ | A | PromotionCodeService::generateCode() added | |
| ⇢ | A | PromotionCodeService::isCodePatternAlreadyInUse() added | |
| ⇢ | A | PatternAlreadyInUseException::__construct() added | |
| ⇢ | A | PatternAlreadyInUseException::getErrorCode() added | |
| ⇢ | A | PatternAlreadyInUseException::getStatusCode() added | |
| ⋮ | view more | ||
| A | ↛ | PromotionCodesLoader::generateCodeFixed() removed | |
| A | ↛ | PromotionActionController::generateCodeFixed() removed | |
| ⇢ | A | PromotionCodeApiService.replaceIndividualCodes added | |
| ⇢ | A | PromotionCodeApiService.generateIndividualCodes added | |
| ⇢ | A | PromotionCodeApiService.generatePreview added |