*/ public function order(): BelongsTo { return $this->belongsTo(Order::class); } /** @return \Illuminate\Database\Eloquent\Casts\Attribute */ protected function unitPriceDiscountedHt(): Attribute { return Attribute::make( get: fn (): Money => $this->unit_price->subtract($this->unit_discount) ); } /** @return \Illuminate\Database\Eloquent\Casts\Attribute */ protected function totalGrossHt(): Attribute { return Attribute::make( get: fn (): Money => $this->total_ht->add($this->total_discount) ); } #[\Override] protected function casts(): array { return [ 'quantity' => 'integer', 'unit_price' => MoneyCast::class, 'unit_tax' => MoneyCast::class, 'unit_discount' => MoneyCast::class, 'tax_rate' => TaxRate::class, 'total_ttc' => MoneyCast::class, 'total_ht' => MoneyCast::class, 'total_tax' => MoneyCast::class, 'total_discount' => MoneyCast::class, 'product' => OrderLineProductCast::class, ]; } }