diff --git a/src/Models/CartModel.php b/src/Models/CartModel.php index ff08659..5ccdec1 100644 --- a/src/Models/CartModel.php +++ b/src/Models/CartModel.php @@ -33,86 +33,4 @@ class CartModel extends Model { return $this->hasMany(CartItem::class); } - - /** - * This will is the price of the CartItem considering the set quantity. If you need the single - * price just set the parameter to true. - */ - public function price(): Attribute - { - return new Attribute( - get: fn (int $value) => new Money($value), - set: fn (Money $value) => $value, - ); - } - - /** - * This will is the price of the CartItem considering the set quantity. If you need the single - * price just set the parameter to true. - */ - public function priceAll(): Attribute - { - return new Attribute( - get: fn () => $this->price->multiply($this->qty), - ); - } - - /** - * This is the discount granted for this CartItem. It is based on the given price and, in case - * discount is a float, multiplied or, in case it is an absolute Money, subtracted. It will return - * a minimum value of 0. - */ - public function discount(): Attribute - { - return new Attribute( - get: fn () => { - if ($this->discount instanceof Money) { - return $this->price_all->subtract($this->discount) - } else { - return $this->price_all->multiply(sprintf('%.14F', $this->discount), Config::get('cart.rounding', Money::ROUND_UP)), - } - }, - ); - } - - /** - * This is the final price of the CartItem but without any tax applied. This does on the - * other hand include any discounts. - */ - public function subtotal(): Attribute - { - return new Attribute( - get: fn () => Money::max(new Money(0, $this->price->getCurrency()), $this->price()->subtract($this->discount())), - ); - } - - /** - * This is the tax, based on the subtotal (all previous calculations) and set tax rate. - */ - public function tax(): Attribute - { - return new Attribute( - get: fn () => $this->subtotal()->multiply(sprintf('%.14F', $this->taxRate), Config::get('cart.rounding', Money::ROUND_UP)), - ); - } - - /** - * This is the total price, consisting of the subtotal and tax applied. - */ - public function total(): Attribute - { - return new Attribute( - get: fn () => $this->subtotal()->add($this->tax()), - ); - } - - /** - * This is the total price, consisting of the subtotal and tax applied. - */ - public function totalWeight(): Attribute - { - return new Attribute( - get: fn () => $this->qty * $this->weight, - ); - } }