id) { throw new \RuntimeException('Pagar.me bulk anticipation creation returned an empty id.'); } return $this->id; } public static function fromArray(array $payload): static { return new self( id: static::arrString($payload, 'id'), status: static::arrString($payload, 'status'), amount: static::arrInt($payload, 'amount'), fee: static::arrInt($payload, 'fee'), fraudCoverageFee: static::arrInt($payload, 'fraud_coverage_fee'), anticipationFee: static::arrInt($payload, 'anticipation_fee'), automaticTransfer: static::arrBool($payload, 'automatic_transfer'), type: static::arrString($payload, 'type'), timeframe: static::arrString($payload, 'timeframe'), paymentDate: static::arrString($payload, 'payment_date'), createdAt: static::arrString($payload, 'created_at'), updatedAt: static::arrString($payload, 'updated_at'), anticipationTax: static::arrGet($payload, 'anticipation_tax'), ); } public function toArray(): array { return array_filter([ 'id' => $this->id, 'status' => $this->status, 'amount' => $this->amount, 'fee' => $this->fee, 'fraud_coverage_fee' => $this->fraudCoverageFee, 'anticipation_fee' => $this->anticipationFee, 'automatic_transfer' => $this->automaticTransfer, 'type' => $this->type, 'timeframe' => $this->timeframe, 'payment_date' => $this->paymentDate, 'created_at' => $this->createdAt, 'updated_at' => $this->updatedAt, 'anticipation_tax' => $this->anticipationTax, ], static fn ($v) => $v !== null); } }