3 declare(strict_types=1);
51 private static $discriminatorClasses = [
52 'centPrecision' => MoneyModel::class,
53 'highPrecision' => HighPrecisionMoneyModel::class,
77 if (is_null($this->type)) {
79 $data = $this->
raw(self::FIELD_TYPE);
83 $this->type = (string) $data;
95 if (is_null($this->fractionDigits)) {
97 $data = $this->
raw(self::FIELD_FRACTION_DIGITS);
101 $this->fractionDigits = (int) $data;
113 if (is_null($this->centAmount)) {
115 $data = $this->
raw(self::FIELD_CENT_AMOUNT);
116 if (is_null($data)) {
119 $this->centAmount = (int) $data;
133 if (is_null($this->currencyCode)) {
135 $data = $this->
raw(self::FIELD_CURRENCY_CODE);
136 if (is_null($data)) {
139 $this->currencyCode = (string) $data;
179 if (is_object($value) && isset($value->$fieldName)) {
181 $discriminatorValue = $value->$fieldName;
182 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
183 return self::$discriminatorClasses[$discriminatorValue];
186 if (is_array($value) && isset($value[$fieldName])) {
188 $discriminatorValue = $value[$fieldName];
189 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
190 return self::$discriminatorClasses[$discriminatorValue];
195 $type = TypedMoneyModel::class;