<?php  namespace App\Models;  use App\Traits\HasLikes; use App\Traits\HasStorage; use App\Contracts\HasMedia; use App\Traits\HasTranslations; use App\Contracts\DiscountableItem; use App\Observers\ProductVariantObserver; use Illuminate\Database\Eloquent\Builder; use App\Services\Orders\MathMoneyOperations; use App\Http\Resources\ProductVariantResource; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\BelongsTo;  /**  * @property string $price  */ class ProductVariant extends Model implements DiscountableItem, HasMedia { 	use HasTranslations, HasStorage, HasLikes;  	public function scopeIncludes(object $query, ?string $lang = null): Builder{}  	public function getCurrentlyApplicableDiscount(): Discount|null{}  	public function applyDiscount(?Discount $discount = null): ?string{}  	public function getVatRate(string $countryCode = 'HR'): int|float{}  	public function getCode(): string{}  	public function isDiscountCodeApplicable(Discount $discount): bool{}  	public function getCategoriesId(): array{}  	public function mediaConfig(): array{}  	public function product(): BelongsTo{}  	public function canBeFree(): bool{}  	public function getSecondPrice(?string $startingPrice): ?string{}  	public function lowestPriceInLastMonth(): string{}  	public function prices(): HasMany{}  	public function getDiscount(): ?Discount{}  	public function getOrderItemName(): string{}  	public function getResource(): JsonResource{}  	public function scopeAvailable(Builder $query): Builder{}  	protected static function initObservers(): ?string 	{ 		return ProductVariantObserver::class; 	} }