httpCode = $httpCode; $this->details = $details; } public function getHttpCode() { return $this->httpCode; } public function getDetails() { return $this->details; } } class WorkflowNotFoundException extends WorkflowException { public function __construct($message = "Not Found", $details = [], Throwable $previous = null) { parent::__construct($message, 404, 404, $details, $previous); } } class WorkflowNotAllowedException extends WorkflowException { public function __construct($message = "Bad Request", $details = [], Throwable $previous = null) { parent::__construct($message, 400, 400, $details, $previous); } } class WorkflowRuleFailedException extends WorkflowException { public function __construct($message = "Unprocessable Entity", $details = [], Throwable $previous = null) { parent::__construct($message, 422, 422, $details, $previous); } } class WorkflowConflictException extends WorkflowException { public function __construct($message = "Conflict", $details = [], Throwable $previous = null) { parent::__construct($message, 409, 409, $details, $previous); } }